Можно ли писать файлы Ansible hosts / inventory в YAML?

на странице "рекомендации" приведен пример использования hosts.yml файлы hosts:

YAML-based hosts file

в документах, однако, я могу найти только синтаксис INI для записи файлов hosts.

каков синтаксис для файлов инвентаризации в YAML?

3 ответов


Да.

Это было устаревший в версии 0.6 в 2012 году и вновь в фиксации, впервые включенной в версию 2.1 в 2016 году.

на пример файла на GitHub содержит рекомендации и примеры:

  • комментарии начинаются с '#' символ
  • пустые строки игнорируются
  • записи верхнего уровня считаются группы
  • узлы должны быть указано в узлах группы: и они должны быть ключом (: terminated)
  • группы могут иметь детей, хосты и ключи vars
  • все, что определено под хостами, считается var
  • вы можете ввести имена хостов или ip-адреса
  • имя хоста/IP может быть членом нескольких групп

Ex 1: ungrouped hosts, поместите в группу "ungrouped"

ungrouped:
  hosts:
      green.example.com:
          ansible_ssh_host: 191.168.100.32
      blue.example.com:
      192.168.100.1:
      192.168.100.10:

Ex 2: коллекция хостов, принадлежащих группа 'webservers'

webservers:
  hosts:
      alpha.example.org:
      beta.example.org:
      192.168.1.100:
      192.168.1.110:

Ex 3: Вы можете создавать хосты с помощью диапазонов и добавлять дочерние группы и vars в группу. Дочерняя группа может определить все, что вы обычно добавляете в группу

testing:
  hosts:
      www[001:006].example.com:
  vars:
      testing1: value1
  children:
      webservers:
          hosts:
              beta.example.org:

Я только что обнаружил Ansible INI в YAML инвентаризации конвертер on github который отлично работал для меня:

этот репозиторий содержит скрипт Python для преобразования Ansible запасы в формате INI в формате YAML.

по какой-то причине, преобразование закончилось круга хозяев ([01:03]), будучи отделенным от = вместо показанного и правильного :.


предыдущие ответы верны, но вот простые хосты.yaml и INI, как бок о бок на скриншоте, и я просто копирую фактические хосты.yaml здесь тоже так, если вы хотите скопировать и вставить и отредактировать его для себя

--- 
all: 
  hosts:               
    xmp: 
      ansible_connection: ssh
      ansible_host: "192.1.0.1"
      ansible_port: 7822
      ansible_user: nanoseco

enter image description here

дополнительная информация:

https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html