Найти в Дзене
Новости мира IT

Как написать правильный Inventory файл Ansible

Внезапно сам для себя столкнулся с проблемой неправильного написания инвентори файла Ansible. Споткнулся в общем-то на ровном месте. Правила описания удаленных серверов есть в официальной документации. Будьте внимательны! Дзен не поддерживает yaml форматирование. Проверьте расстановку пробелов, прежде чем запускать Ansible. Я предпочитаю использовать yaml разметку и на текущий момент, мой inventory.yml файл выглядит так: ---
app_servers:
hosts:
app_server_01:
ansible_host: 192.168.124.230
vars:
ansible_user: "ubuntu"
ansible_ssh_private_key_file: "~/.ssh/id_ed25519" Здесь, создана группа хостов app_servers, в которой указан только один удаленный сервер app_server_01. По аналогии можно добавить дополнительные хосты в эту группу или создать еще несколько групп. Для всей группы хостов указаны переменные ansible_user и ansible_ssh_private_key_file. Таким образом, при добавлении новых удаленных серверов в группу, будут использоваться указанные имя пользователя и ssh кл
Оглавление

Внезапно сам для себя столкнулся с проблемой неправильного написания инвентори файла Ansible. Споткнулся в общем-то на ровном месте. Правила описания удаленных серверов есть в официальной документации.

Будьте внимательны! Дзен не поддерживает yaml форматирование. Проверьте расстановку пробелов, прежде чем запускать Ansible.

Базовый инвентори

Я предпочитаю использовать yaml разметку и на текущий момент, мой inventory.yml файл выглядит так:

---
app_servers:
hosts:
app_server_01:
ansible_host: 192.168.124.230
vars:
ansible_user: "ubuntu"
ansible_ssh_private_key_file: "~/.ssh/id_ed25519"

Здесь, создана группа хостов app_servers, в которой указан только один удаленный сервер app_server_01. По аналогии можно добавить дополнительные хосты в эту группу или создать еще несколько групп.

Для всей группы хостов указаны переменные ansible_user и ansible_ssh_private_key_file. Таким образом, при добавлении новых удаленных серверов в группу, будут использоваться указанные имя пользователя и ssh ключ для подключения.

Также, можно указывать переменные и для отдельных хостов. Вот пример:

app_servers:
hosts:
app_server_01:
ansible_host: 192.168.124.230
app_server_02:
ansible_host: 192.168.124.231
http_port: 80
vars:
ansible_user: "ubuntu"
ansible_ssh_private_key_file: "~/.ssh/id_ed25519"

Объединение групп хостов

Группы хостов можно объединять в метагруппы. Вот пример из документации:

leafs:
hosts:
leaf01:
ansible_host: 192.0.2.100
leaf02:
ansible_host: 192.0.2.110

spines:
hosts:
spine01:
ansible_host: 192.0.2.120
spine02:
ansible_host: 192.0.2.130

network:
children:
leafs:
spines:

webservers:
hosts:
webserver01:
ansible_host: 192.0.2.140
webserver02:
ansible_host: 192.0.2.150

datacenter:
children:
network:
webservers:

Здесь, сперва описаны две группы удаленных серверов leafs и spines, затем они объединены в метагруппу network.

Затем, описана группа webservers, которая объединена в метагруппу datacenter, включающую в себя метагруппу network.

Telegram | VK