2016-12-08 9 views
0

У меня есть эта линия в моей PlayBook:hostvars для локального хоста (мастер анзибль) только захватывая несколько фактов

- debug: msg="{{ hostvars['127.0.0.1'] }}" 

и по какой-то причине хватает только несколько фактов, в первую очередь вокруг установки мастера.

- hosts: mfg-pc:master 
    become: yes 
    become_method: sudo 
    gather_facts: True 
    tasks: 
    - debug: msg="{{ hostvars['127.0.0.1'] }}" 

Пример фактов собрались:

{ 
    "msg": { 
     "ansible_check_mode": false, 
     "ansible_connection": "local", 
     "ansible_python_interpreter": "/usr/bin/python", 
     "ansible_version": { 
      "full": "2.2.0.0", 
      "major": 2, 
      "minor": 2, 
      "revision": 0, 
      "string": "2.2.0.0" 
     }, 
     "group_names": [ 
      "ungrouped" 
     ], 
     "groups": { 
      "all": [ 

К сожалению, это не захватить полный список переменных, которые я получаю с:

ansible -m setup 127.0.0.1 

Мне нужен полный список из фактов, поскольку я пытаюсь использовать хост (Ansible master) для временного штампа файла, который я генерирую. Такое поведение кажется несовместимым с другой машиной, на которой я ее запускал, и я не могу для меня определить, почему. Любые рекомендации будут оценены.

+0

Проверьте свой инвентарь: вы говорите 'хостов: MFG-ПК: master', но на выходе там is '" group_names ": [" ungrouped "]' –

ответ

1

вы не собирают факты из localhost в вашем PlayBook, так что вы Shou Я не ожидаю, что они будут иметь их.

Вы должны добавить игру, которая будет выполнять setup (неявно) против вашего localhost, например:

--- 
- hosts: localhost 
    connection: local 

- hosts: mfg-pc:master 
    become: yes 
    become_method: sudo 
    gather_facts: True 
    tasks: 
    - debug: msg="{{ hostvars['127.0.0.1'] }}" 
+0

Исправить меня, если я ошибаюсь, но это не сработает, если я использую флаг limit и ограничиваю его группой хостов, которая не включает localhost, правильно? Я считаю, что это причина моей путаницы, это работало с более ранней версией ansible (около 1.9), в то время как в последней версии localhost не всегда включается. Я просто найду способ только условно запустить части, которые я хочу на целевых устройствах, и пропустить мастер/localhost. Благодарю. – EnemyBagJones

0

Проверить параметр gather_subset в конфигурационный файл ansible.cfg. Для возвращает все факты он должен быть установлен в всех:

gather_subset = all 

Если необходимо, чтобы локализовать ваш конфигурационный файл ansible.cfg, тип:

ansible --version 

Он должен возвращает строку, как это :

config file = /home/.../ansible.cfg 

 Смежные вопросы

  • Нет связанных вопросов^_^