我有一本包含两个不同剧本的剧本
Sample.yml
- name : Play1
hosts: Host1
tasks:
...
- name: Play2
hosts: Host2
tasks:
...
我需要使用两个不同的主机( Host1和Host2 )运行此剧本,并且这两个不同的主机存在于清单中的两个单独的文件( Hostfile1和Hostfile2 )中/目录。
inventory/
Hostfile1
Hostfile2
.
.
HostfileN
我想知道在运行剧本时如何包括两个不同的主机文件。我知道通过在命令行中包含整个文件夹( inventory / )可以实现此目的,但是我在清单/文件夹中有很多主机文件,因此此选项将加载未使用的主机文件。
我试图像下面那样跑
ansible-playbook -i inventory/Hostfile1,Hostfile2 sample.yml
但这没用。因此,有人知道如何通过在命令行中提供多个主机文件来运行剧本吗?
答案 0 :(得分:1)
只需多次提供-i
ansible-playbook -i inventory/Hostfile1 -i inventory/Hostfile2 sample.yml
答案 1 :(得分:1)
我想澄清以上答案。该提案不起作用的原因是,如果ansible在-i标志的值中看到“,”,则将其视为库存清单。以您的示例为例:
ansible-playbook -i目录/ Hostfile1,Hostfile2 sample.yml
Ansible将尝试在机器“ inventory / Hostfile1”和“ Hostfile2”上运行剧本“ sample.yml”。
这就是为什么您必须多次指定-i的原因。