我使用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
。
答案 0 :(得分:1)
您的CI环境中的空库存似乎开始ansible-playbook
添加-i 'local,' -c local
参数以定义一个主机local
和连接模式设置为local
的广告资源。
您的命令行应如下所示:
ansible-playbook -i 'local,' -c local playbook.yml
在这种情况下,hosts: all
可以正常工作。