我的手册包含另一个主题时遇到了一些问题。我使用剧本来推出一个干净的虚拟机。之后,我想运行另一个剧本,以某种方式配置虚拟机。我已将新主机添加到库存并具有ssh访问权限。包含带有变量名称的演示手册,该变量名称在另一个主机上定义
我们的团队为每个servertype建立了一个项目。我在早期阶段(针对本地主机运行)检索了正确的项目路径,并使用set_fact将其置于“servertype_project”中。 我希望这个工作(在剧本层面,针对新的虚拟机上运行):
- name: "Run servertype playbook ({{ project }}) on VM"
vars:
project: "{{ hostvars['localhost']['servertype_project'] }}"
include: "{{ project }}/ansible/playbook.yml"
但此消息未通过语法检查:
错误! {{HOSTVARS [ '本地主机'] [ 'servertype_project']}}: 'HOSTVARS' 是未定义
我可以检索正确的字符串,如果我指的是{{HOSTVARS [ '本地主机'] [ 'servertype_project'] }}从一个任务中,而不是从我可以包含另一个剧本的级别。
由于该值是在运行时确定的,我认为set_fact是存储变量的正确方法,但该方法是主机特定的。有什么办法可以将它传递给该主机?还是我错过了一些全球性的类似var的选项?