Ответ
В YAML-инвентаре Ansible хосты объявляются как ключи в секции hosts. Каждый хост может иметь переменные подключения, такие как ansible_host и ansible_user.
Пример базового инвентаря inventory.yml:
all:
hosts:
web_server_1:
ansible_host: 192.168.1.10
ansible_user: deploy
ansible_ssh_private_key_file: ~/.ssh/id_rsa
database_server:
ansible_host: db.internal.company.com
children:
web_servers:
hosts:
web_server_1:
database_servers:
hosts:
database_server:
Ключевые моменты:
- Структура: Корневой элемент —
all. Хосты перечисляются вhosts:. - Группы: Группы создаются в секции
children. В примереweb_serversиdatabase_servers— это группы, содержащие соответствующие хосты. - Переменные: Параметры подключения (IP, пользователь, ключ) задаются как переменные для каждого хоста.
- Важно: YAML чувствителен к отступам. Используйте пробелы, а не табуляцию.
Ответ 18+ 🔞
Э, слушай, смотри, как это всё работает. Ёпта, YAML-инвентарь в Ansible — это ж не просто список, это целая структура, как карта местности для твоего деплоя.
Вот, смотри, простейший пример inventory.yml:
all:
hosts:
web_server_1:
ansible_host: 192.168.1.10
ansible_user: deploy
ansible_ssh_private_key_file: ~/.ssh/id_rsa
database_server:
ansible_host: db.internal.company.com
children:
web_servers:
hosts:
web_server_1:
database_servers:
hosts:
database_server:
А теперь разжёвываю, что тут к чему:
- Структура: Всё начинается с
all. Это как корень всего дерева, ёбаный корень. Хосты — это ключики внутриhosts:. Просто пишешь имя и под ним — параметры. - Группы: А вот это уже хитрая жопа. Секция
children— это где ты создаёшь свои банды серверов. Создал группуweb_servers— и кидаешь туда хосты, которые туда относятся. Потом можешь на всю банду сразу команды запускать, а не по одному. Удобно, блядь. - Переменные подключения: Это самое важное.
ansible_host— это куда стучаться (IP или домен).ansible_user— под кем заходить. Аansible_ssh_private_key_file— это путь к твоему секретному ключу, без него тебя просто пошлют нахуй с паролем. - Важнейший момент, на котором все обламываются: YAML, сука, помешан на пробелах. Используй ТОЛЬКО пробелы для отступов. Никаких табов! Одна табуляция — и весь твой файл накрывается медным тазом с ошибкой синтаксиса. Сам от себя охуеешь, пока ищешь, где эта невидимая залупа конская затесалась.