要在Ansible中使用when条件来触发任务,可以使用Ansible提供的extra-vars选项来传递变量。以下是一个示例解决方案:
在playbook中定义一个带有when条件的任务,例如:
- name: Run task conditionally
shell: echo "Task is executed"
when: my_variable is defined and my_variable == "some_value"
在命令行中使用--extra-vars选项来传递变量,例如:
ansible-playbook playbook.yml --extra-vars "my_variable=some_value"
这将使得my_variable的值为"some_value",从而满足任务中的when条件,任务将会执行。
如果不想在命令行中手动指定变量的值,可以将变量定义在一个单独的文件中,例如:
# vars.yml
my_variable: some_value
然后在命令行中使用--extra-vars选项来指定变量文件,例如:
ansible-playbook playbook.yml --extra-vars "@vars.yml"
这样,变量文件中定义的变量值将会传递给playbook中的任务,满足when条件时任务将会执行。
希望这个示例解决方案能对你有所帮助!