tim*_*fly 6 ansible ansible-playbook
我想只在命令行中给出一个标志时才运行一个特定的任务.例如,我想使用以下命令运行ansible-playbook命令:--extra-vars "composer-install=true".我会以某种方式需要一个检查composer-install变量是否已设置的任务,如果设置并且等于true,则运行运行的给定任务composer install.我不太确定如何做最后一部分.
出现错误的原因是因为您正在访问从未设置过的变量.您似乎使用extra-var的存在作为您希望运行composer install的指示(即您永远不会传递--extra-vars ="composer-install = false"),因此您可以使用is defined:
- shell: composer install
when: composer-install is defined
Run Code Online (Sandbox Code Playgroud)
但变量可以通过过滤器传递,这对于这种情况很有用,因为它仍然允许你传递true/false而不定义变量仍然有效:
- shell: composer install
when: composer-install|default(false)
Run Code Online (Sandbox Code Playgroud)
有关条件的更多信息可以在这里找到:http://docs.ansible.com/playbooks_conditionals.html
jinja2过滤器非常有用,原因不止一个,所以更多关于这些:http://docs.ansible.com/playbooks_variables.html#jinja2-filters
最后是完整的内置jinja2过滤器列表:http: //jinja.pocoo.org/docs/dev/templates/#builtin-filters
| 归档时间: |
|
| 查看次数: |
7899 次 |
| 最近记录: |