Jor*_*Ell 26 variables conditional ansible ansible-playbook
我在命令行上传递了一个ansible变量:
ansible-playbook -e environment=staging ansible/make_server.yml
Run Code Online (Sandbox Code Playgroud)
我想在我的角色中加载一些变量,这取决于环境的价值.我尝试了很多不同的方法,例如:
- include_vars: staging_vars.yml
when: environment | staging
Run Code Online (Sandbox Code Playgroud)
和
- include_vars: staging_vars.yml
when: "{{environment}} == "staging"
Run Code Online (Sandbox Code Playgroud)
和
- include_vars: staging_vars.yml
when: "{{environment}} | match('staging')"
Run Code Online (Sandbox Code Playgroud)
但似乎没什么用.我该怎么做呢?
细节:
Ram*_*nte 35
注意调用的变量environment,它可能会导致问题,因为Ansible在内部使用它.我不记得它是否在文档中,但这是一个邮件列表线程:
https://groups.google.com/forum/#!topic/ansible-project/fP0hX2Za4I0
我们使用一个名为的变量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"
Run Code Online (Sandbox Code Playgroud)
但您也可以只包括您的环境:
- include_vars: "{{ stage }}_vars.yml"
Run Code Online (Sandbox Code Playgroud)
或者,使用vars_filesPlaybook级别:
vars_files:
- vars/{{ stage }}_vars.yml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53624 次 |
| 最近记录: |