Variables Ansible:检查变量是否等于字符串
我在命令行中传入了一个ansible变量:Variables Ansible:检查变量是否等于字符串,variables,conditional,ansible,ansible-playbook,Variables,Conditional,Ansible,Ansible Playbook,我在命令行中传入了一个ansible变量: ansible-playbook -e environment=staging ansible/make_server.yml 我想根据环境的值在我的角色中加载一些变量。我尝试了很多不同的方法,例如: - include_vars: staging_vars.yml when: environment | staging 及 及 但似乎什么都不管用。我该怎么做 详情: 我使用的是ansible 1.7.2 小心使用名为环境的变量,它可能会导致
ansible-playbook -e environment=staging ansible/make_server.yml
我想根据环境的值在我的角色中加载一些变量。我尝试了很多不同的方法,例如:
- include_vars: staging_vars.yml
when: environment | staging
及
及
但似乎什么都不管用。我该怎么做
详情:
- 我使用的是ansible 1.7.2
环境的变量,它可能会导致问题,因为Ansible在内部使用它。我不记得它是否在文档中,但这里有一个邮件列表线程:
我们使用一个名为stage
的变量
看起来你会得到一排这样的东西:
- include_vars: testing_vars.yml
when: stage == "testing"
- include_vars: staging_vars.yml
when: stage == "staging"
- include_vars: production_vars.yml
when: stage == "production"
但您也可以只包括您的环境:
- include_vars: "{{ stage }}_vars.yml"
或者,在剧本级别上使用vars\u文件
:
vars_files:
- vars/{{ stage }}_vars.yml
环境是可以工作的,但您所说的环境是在内部使用的,Ansible在文档中说不要使用它。案例很重要:)
- include_vars: "{{ stage }}_vars.yml"
vars_files:
- vars/{{ stage }}_vars.yml