Ansible Inventory - использование записей хоста в группе в цикле - PullRequest
0 голосов
/ 09 октября 2018

Предыстория: у меня есть динамическая учетная запись, созданная ранее запущенным процессом, я не знаю IP до тех пор, пока эта задача не будет завершена.У меня есть 2 группы: серверы БД и веб-серверы, определенные в файле инвентаризации.Конкретная задача, которую я пытаюсь выполнить, - создать some_user@'dynamic_ip_of_webserver_group'.

Я думаю, что я близок, но кое-что не совсем верно.В моей главной задаче роли dbserver у меня есть:

- name: Create DB User
      mysql_user:
        name: dbuser
        host: "{{ item }}"
        password: "{{ mysql_wordpress_password }}"
        priv: "someDB.*:ALL"
      with_items:
        - "{{ ansible_hostname }}"
        - 127.0.0.1
        - ::1
        - localhost
        - "{{ hostvars[groups['webservers']] }}"

Это ошибки с:

TASK [dbservers : Create DB User] *******************************************************************************************************************************************************************
fatal: [10.10.10.13]: FAILED! => {"msg": "ansible.vars.hostvars.HostVars object has no element [u'10.10.10.30', u'10.10.10.240']"}

Он показывает правильные IP-адреса, и есть только 2, так что оба они верны.Я думаю, что он пытается получить доступ к элементу инвентаря как объект вместо фактического ввода?

Файл инвентаризации:

[webservers]
10.10.10.30
10.10.10.240

1 Ответ

0 голосов
/ 09 октября 2018

Просто:

- "{{ groups['webservers'] }}"

Это работает, потому что with_items выравнивает первый вложенный уровень списков.

...