2015-04-04 2 views
0

пытается запустить мой Ansible и имеет проблему. здесь файл мои хозяева:Почему 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 

Вот часть моего YML:

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

Я вижу, что [ "node1", "node2", "node3", "node4"] работает , но хосты: sparkmasters и хосты: sparkworkers пропускаются с сообщением:

PLAY [sparkmasters] ************************ *********************************** Пропуск: ни один из хостов не соответствует

PLAY [sparkworkers] ****************************************** ***************** Пропуск: не найдено совпадений

PLAY RECAP ********************* *********************************************** node1: ok = 21 = 12 изменена недостижим = 0
не удалось = 0

==> node1: Бег Provisioner: анзибль ...

не имею ни малейшего представления, почему. Если я меняю имя группы на массив хостов, то она начинает работать ...

Что делать неправильно?

Так я добавил отладки:

- 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

ответ

2

Это анзибль + бродячие специальностей: 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 
Смежные вопросы