gpt4 book ai didi

ansible - 如何在ansible命令行中添加可选变量,并检查它们在剧本中是否存在?

转载 作者:行者123 更新时间:2023-12-04 13:59:53 25 4
gpt4 key购买 nike

我仅在命令行中给出标志的情况下才想运行特定任务。例如,我想使用以下命令运行ansible-playbook命令:--extra-vars "composer-install=true"。我将以某种方式需要一个任务来检查composer-install变量是否已设置,如果设置且等于true,则运行给定的任务,该任务运行composer install。我不太确定该如何做最后一部分。

最佳答案

出现错误的原因是因为您正在访问从未设置的变量。您似乎正在使用extra-var的指示来表示要运行 Composer 的安装(即,您永远不会传递--extra-vars =“composer-install = false”),因此可以使用is defined :

- shell: composer install
when: composer-install is defined

但是变量可以通过过滤器传递,这在这种情况下很有用,因为它仍然允许您传递true/false,而根本不定义变量仍然可以工作:
- shell: composer install
when: composer-install|default(false)

可以在这里找到更多关于条件的信息: 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

关于ansible - 如何在ansible命令行中添加可选变量,并检查它们在剧本中是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com