Ansible主机的行为:设置Vagrant或Docker

时间:2016-10-07 16:40:05

标签: docker vagrant ansible

我使用Ansible配置Vagrant框,我的ansible / site.yml包含以下hosts条目:

---
- hosts: all

我决定设置一个CI来测试ansible /下的Ansible代码。但是对于Docker,Ansible抱怨道:

PLAY [all] ***************************************************************
skipping: no hosts matched

然后我将hosts条目更改为localhost,现在它可以在Docker中运行!但现在它拒绝在Vagrant下运行!

PLAY [localhost] ***************************************************************
skipping: no hosts matched

我没有一起使用Vagrant和Docker!在我的机器中使用Vagrant,在CI中使用Docker,但两者都运行相同的Ansible playbook!

TL; DR: Vagrant仅适用于hosts: all,而Docker仅适用于hosts: localhost

1 个答案:

答案 0 :(得分:1)

您的CI环境中的空库存似乎开始ansible-playbook 添加-i 'local,' -c local参数以定义一个主机local和连接模式设置为local的广告资源。
您的命令行应如下所示:

ansible-playbook -i 'local,' -c local playbook.yml

在这种情况下,hosts: all可以正常工作。