2015-04-04 77 views
0

試圖運行我的Ansible並出現問題。 這裏是我的hosts文件:爲什麼Ansible跳過主機組並且什麼都不做

[dse] 
node1 192.168.56.10 
node2 192.168.56.20 
node3 192.168.56.30 

[opscenter] 
opscenter 192.168.56.40 

[sparkmasters] 
node3 192.168.56.30 

[sparkworkers] 
node1 192.168.56.10 
node2 192.168.56.20 
node3 192.168.56.30 

這裏是我的陽明的一部分:

--- 
- hosts: [ "node1", "node2", "node3", "node4" ] 
    user: vagrant 
    sudo: True 
    vars: 
     username: spark 
    tasks: 
    - include: some tasks 


    roles: 
    - some roles 


- hosts: sparkmasters 
    vars: 
    spark.version: 1.2 
    roles: 
    - spark_master 

- hosts: sparkworkers 
    vars: 
    spark.version: 1.2 
    roles: 
    - spark_workers 

我看到[ 「節點1」, 「節點2」, 「節點3」, 「節點4」]運行的,但主機:sparkmasters和主機:sparkworkers被跳過與消息:

PLAY [sparkmasters] ************************ ***********************************跳過:沒有主機匹配

播放[sparkworkers] ************************************** *****************跳過:沒有主機匹配

玩家推薦 ********************* *********************************************** node1:好的= 21 =改變可達12 = 0
失敗= 0

==>節點1:運行供應者:ansible ...

不要有任何想法,爲什麼。如果我更改組名稱爲主機陣列,那麼它開始工作...

我該怎麼做錯了?

所以我加調試:

- name: Display hostvars 
    debug: var=hostvars 

而且看到這一點:

"hostvars": { 
     "node1": { 
      "ansible_all_ipv4_addresses": [ 
       "10.0.2.15", 
       "192.168.56.10" 
      ], 

和這個巨大的JSON具有與我的主機 我沒有想法,更多的元數據是什麼我應該在那裏看到嗎?我沒有找到任何信息與當前主機組信息

+0

除了刪除所有不需要的空間之外,您可能想要做的唯一一件事是'debug:msg =「hostvars = {{hostvars}}」'並查看所有組和主機是否由清單文件。 – Kashyap 2015-04-05 08:30:59

回答

2

它ansible +顛沛流離特色:https://serverfault.com/questions/585722/ansible-not-executing-host-specific-playbook-in-vagrant-multi-machine-provisioni

所以我添加gropus聲明遊民文件並開始工作:

config.vm.provision "ansible" do |ansible| 
    ansible.playbook = "deploy.yml" 
    ansible.groups = { 
     "dse" => ["dsenode01","dsenode02","dsenode03"], 
     "opscenter" => ["dsenode03"], 
     "sparkmasters" => ["dsenode01"], 
     "sparkworkers" => ["dsenode01","dsenode02","dsenode03"] 
    } 
    end