ansible \任何理由为什么.yml角色元素不运行角色/ x / tasks / main.yml

时间:2016-06-20 19:54:53

标签: ansible ansible-playbook

我完全像所有教程一样,没有拼写错误,甚至可以单独运行main.yml / roles / x

但是当我运行应该调用它的游戏时 - 没有真正发生的事情

---
- name: Install / Upgrade tagger
  hosts: tagger
  roles:
    - tagger

/roles/tagger/tasks/main.yml

---
- command: echo 1

需要说我在localhost中运行所有内容。 也尝试了

 ansible-playbook -i "localhost" -c local tagger.yml 

ansible-playbook -i" localhost" -c local tagger.yml

 [WARNING]: Host file not found: localhost

 [WARNING]: provided hosts list is empty, only localhost is available


PLAY [build tagger docker] *****************************************************

TASK [setup] *******************************************************************
ok: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0   

1 个答案:

答案 0 :(得分:1)

使用您提供的命令行:

$ ansible-playbook -i "localhost" -c local tagger.yml 
ERROR: Unable to find an inventory file, specify one with -i ?

明显更正(添加逗号):

$ ansible-playbook -i "localhost," -c local tagger.yml 

PLAY [Install / Upgrade tagger] *********************************************** 
skipping: no hosts matched

PLAY RECAP ******************************************************************** 

这仍然与您的输出不匹配,但它确实表明了问题。 localhost永远不会tagger。也许您使用的是hosts.ini文件而没有告诉我们这个文件?或者是与我不同的特定版本的ansible?无论如何,我将hosts: tagger更改为hosts: all,如下所示:

---
- name: Install / Upgrade tagger
  hosts: all
  roles:
    - tagger

然后我重申:

$ ansible-playbook -i "localhost," -c local tagger.yml

PLAY [Install / Upgrade tagger] *********************************************** 

GATHERING FACTS *************************************************************** 
ok: [localhost]

TASK: [tagger | command echo 1] *********************************************** 
changed: [localhost]

PLAY RECAP ******************************************************************** 
localhost                  : ok=2    changed=1    unreachable=0    failed=0   

所以有两个必要的修复。