2017-09-02 90 views
0

嘗試所有的運氣,但沒有奏效。我需要設置環境變量檢查條件,然後在執行包含和使用2個任務時在main.yml上運行播放或任務。有條件的設置變量

main.yml

- include: createnonprod.yml 
when: "{{ environment }}" == 'dev' or "{{ environment }}" == 'qa' or " 
{{ environment }}" == 'preprod' 

- include: createprod.yml 
when: "{{ environment }}" == 'prod' 

環境上groups_vars變量文件 「所有」 環境設置:

"{{ lookup('env','ENVIRONMENT') }}" 

但這種邏輯檢查失敗

(OR)

我需要運行這個邏輯,以便它調用任務條件檢查的變量

create.yml

- name: Install all users from IAM of the AWS Account. 
    shell: "{{ scriptdir }}/install.sh -i {{ iamgroup }},{{ sudogroup }} -s {{ sudogroup }}" 
    when: "{{ environment }}" == 'dev' or "{{ environment }}" == 'qa' or "{{ environment }}" == 'preprod' 

- name: Install all users from IAM of the AWS Account. 
    shell: "{{ scriptdir }}/install.sh -i {{ iamgroup }},{{ sudogroup }} -s {{ sudogroup }}" 
    when: "{{ environment }}" == 'prod' 

請幫我一個可行的邏輯。我得到這個錯誤:

fatal: [localhost]: FAILED! => {"failed": true, "reason": "ERROR! 
Syntax Error while loading YAML.\n\n\nThe error appears to have been in 
'/tmp/ansible/roles/provision/users/tasks/create.yml': line 18, column 
22, but may\nbe elsewhere in the file depending on the exact syntax 
problem.\n\nThe offending line appears to be:\n\n when:\n - {{ 
env_type }} == 'dev'\n     ^here\nWe could be wrong, 
but this one looks like it might be an issue with\nmissing quotes. 
Always quote template expression brackets when they\nstart a value. For 
instance:\n\n with_items:\n  - {{ foo }}\n\nShould be written 
as:\n\n with_items:\n  - \"{{ foo }}\"\n"} 

回答

1

The When Statement

The when clause, which contains a raw Jinja2 expression without double curly braces

when: environment == 'dev' or environment == 'qa' or environment == 'preprod' 

when: environment == 'prod'