【问题标题】:Behaviour of Ansible hosts: setting on Vagrant or DockerAnsible 主机的行为:在 Vagrant 或 Docker 上设置
【发布时间】:2016-10-08 02:05:15
【问题描述】:

我用 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

【问题讨论】:

    标签: docker vagrant ansible


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多