Вот несколько методов с примерами кода для работы с хостами Ansible:
Метод 1: использование статического файла инвентаризации
Создайте статический файл инвентаризации под названием «hosts» и определите в нем свои хосты и группы.
# hosts file
[webservers]
web1.example.com
web2.example.com
[databases]
db1.example.com
db2.example.com
Метод 2: использование сценария динамической инвентаризации
Вы можете использовать сценарий динамической инвентаризации для динамического создания инвентаризации на основе вашей инфраструктуры. Ниже приведен пример использования сценария динамической инвентаризации «ec2.py» для инстансов Amazon EC2.
Установить коллекцию Ansible AWS:
ansible-galaxy collection install amazon.aws
# ansible.cfg
[defaults]
inventory = ./ec2.py
host_key_checking = False
Запустите сценарий динамической инвентаризации:
ansible-inventory -i ec2.py --list
Метод 3: использование флагов командной строки
Вы также можете указать хосты непосредственно в командной строке, используя флаг -i.
ansible -i "web1.example.com,web2.example.com,db1.example.com" -m ping all
Метод 4: использование инвентаризации YAML
Ansible поддерживает использование файла инвентаризации YAML. Вот пример:
# inventory.yml
all:
hosts:
web1.example.com:
web2.example.com:
db1.example.com:
db2.example.com:
children:
webservers:
hosts:
web1.example.com:
web2.example.com:
databases:
hosts:
db1.example.com:
db2.example.com:
Метод 5. Использование Ansible Tower или AWX
Если вы используете Ansible Tower или AWX, вы можете управлять своим инвентарем через их веб-интерфейс.
Это всего лишь несколько методов работы с хостами Ansible. Вы можете выбрать тот, который лучше всего соответствует вашей инфраструктуре и требованиям.