我在Ansible剧本中使用的模式(或可能的反模式)是在剧本开头需要设置一些事实。问题是,如果我只运行一个特定的标记任务,那些事实是未定义的,并且剧本中止:
- name: main.yml
hosts: 127.0.0.1
gather_facts: false
tasks:
- set_fact: foo=bar
- name: do something that uses 'foo' fact
...
tags: [do-something]
命令:
ansible-playbook main.yml -t do-something
错误:
fatal: [127.0.0.1 -> 127.0.0.1] => One or more undefined variables : 'foo' is undefined
我是否可以在仅执行特定标记任务时以可见的方式声明事实?