Возможно ли писать файлы Ysams/Ansible hosts/inventory?

На странице лучших практик есть пример, который использует файлы hosts.yml для хостов:

файл хостов на основе YAML

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

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

Ответы

Ответ 1

Да.

Он был устарел в версии 0.6 в 2012 году и повторно ввел в коммит, впервые включенный в версию 2.1 в 2016.

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

  • Комментарии начинаются с символа '#'
  • Пустые строки игнорируются
  • Элементы верхнего уровня считаются группами
  • Хосты должны быть указаны в узлах группы: они должны быть ключом (: завершено)
  • группы могут иметь дочерние элементы, хосты и ключи vars
  • Все, что определено под хостами, считается var
  • Вы можете ввести имена хостов или IP-адреса.
  • Имя хоста /ip может быть членом нескольких групп

Пример 1: Разгруппированные хосты, помещенные в группу 'ungrouped'

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

Пример 2: коллекция хостов, принадлежащих к группе веб-серверов

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

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

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

Ответ 2

Предыдущие ответы верны, но здесь просто hosts.yaml и INI, как бок о бок на скриншоте, и я просто копирую фактический hosts.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

Ответ 3

просто обнаружил Ansible INI в конвертере инвентаря YAML на github который отлично работал для меня:

This repository contains a Python script for converting Ansible inventories in INI format to YAML format.

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