Как создать дикт, используя Ansible инвентарь - PullRequest
2 голосов
/ 05 марта 2020

Мне нужна помощь в создании подсказки имен хостов и IP-адресов из Ansible инвентаря.

Вот мой инвентарь:

web:
  hosts:
    Webserver1:
      ansible_host: "10.10.10.10"
      Environment: "Dev"
      location: DC1
    Webserver2:
      ansible_host: "10.10.10.11"
      Environment: "Dev"
      location: DC1
    Webserver3:
      ansible_host: "10.11.10.10"
      Environment: "Dev"
      location: DC2

, и я хочу запустите playbook на моей локальной Ansible машине управления, чтобы создать диктовку следующим образом:

host_dict={Webserver1:10.10.10.10, Webserver2:10.10.10.11, Webserver3:10.11.10.10}

Любая помощь очень ценится. Спасибо

1 Ответ

0 голосов
/ 05 марта 2020

Вот простая демонстрация:

- name: a play that runs entirely on the ansible host
  hosts: localhost
  vars:
   host_dict:
    Webserver1: 10.10.10.10
    Webserver2: 10.10.10.11

  tasks:
    - debug: msg="{{ host_dict }}"

В YAML, если он не начинается с -, то это ключ словаря, в противном случае это список. Смотрите более продвинутые примеры здесь: https://docs.ansible.com/ansible/latest/plugins/lookup/dict.html

...