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

我提供了一个带有Ansible的Vagrant框,而我的ansible / site.yml包含以下hosts条目:

 --- - hosts: all 

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

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

然后我改变主机条目到localhost ,现在它在Docker中工作! 但现在它拒绝运行在stream浪汉之下!

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

我不是一起使用Vagrant和Docker! Vagrant被用在我的机器和Docker中,但都运行相同的Ansible playbook!

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

看起来你在你的CI环境中开始了一个空的库存。
添加-i 'local,' -c local参数来定义一个主机local和连接模式设置为local库存。
你的命令行应该如下所示:

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

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