Можно ли писать файлы Ansible hosts / inventory в 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
дополнительная информация:
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html