2016-11-21 2 views
0

Я собираю факты на своем локальном хосте.Синтаксис синтаксического синтаксиса - когда: список

localhost | SUCCESS => { 
    "ansible_facts": { 
     "ansible_dns": { 
      "nameservers": [ 
       "192.168.1.2", 
       "192.168.1.3" 
      ], 
      "search": [ 
       "example.com", 
      ] 
     } 
    }, 
    "changed": false 
} 

Мне нужно, чтобы иметь возможность получить доступ сервера имен: 192.168.1.2 и 192.168.1.3

Я попробовал следующее и все еще получаю ошибку в синтаксисе. Я не вижу никаких документов в Интернете, которые показывают мне, как получить доступ к вложенным значениям.

# Method 1 
- name: Allow httpd access to files on CIFS volumes that are labeled with the cifs_t type 
    seboolean: name=httpd_use_cifs state=true persistent=yes 
    when: ansible_dns == nameservers == '192.168.1.2' and ansible_dns == nameservers == '192.168.1.3' 

# Method 2 
- name: Allow httpd access to files on CIFS volumes that are labeled with the cifs_t type 
    seboolean: name=httpd_use_cifs state=true persistent=yes 
    when: nameservers == '192.168.1.2' and nameservers == '192.168.1.3' 

ответ

0

Вы можете получить доступ вложенные элементы с точкой: ansible_dns.nameservers.

Не уверен, что условие, которое Вы хотите построить, но один из возможных способов:
when: "'192.168.1.2' in ansible_dns.nameservers and '192.168.1.3' in ansible_dns.nameservers"

+0

я использовал 'ansible_dns.nameservers ==«192.168.1.7''. Я уверен, что ваш метод тоже сработал бы! Когда я фильтровал 'ansible local -m setup -a 'filter = ansible_dns.nameservers', а. (Точка) не работала, я предположил, что это не будет работать в Playbook. –

+0

EDIT: Просто шучу. Ваше заявление «в» работает, а мое не делает :) –

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