IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Что такое Ansible Inventory

Ansible Inventory — это файл или набор файлов, которые содержат информацию о целевых хостах, на которых будет выполняться автоматизация. Inventory определяет, какие узлы (серверы, устройства и т.д.) Ansible будет управлять, а также позволяет группировать эти узлы и настраивать переменные для каждой группы или отдельных хостов.

Основные аспекты Ansible Inventory:

  1. Типы Inventory:
    • Static Inventory: Это простой текстовый файл (обычно hosts или inventory), где хосты и группы хостов определены статически.
    • Dynamic Inventory: Используется, когда инфраструктура динамична (например, в облачных окружениях). Ansible может использовать скрипты или плагины, чтобы автоматически генерировать Inventory на основе внешних источников, таких как AWS, GCP и другие.
  2. Формат Static Inventory: Static Inventory обычно представлен в формате INI или YAML.

    Пример INI-файла:

В этом примере:

  • [webservers] и [dbservers] — это группы хостов.
  • webserver1.example.com и dbserver1.example.com — это хосты, которые принадлежат соответствующим группам.
  • [all] — это секция для переменных, применимых ко всем хостам.

Пример YAML-файла:

  • В YAML-формате структура более иерархическая, что может быть полезно для сложных конфигураций.
  • Группы и подгруппы:
    • Группы позволяют организовывать хосты по функциональному признаку (например, webservers, dbservers).
    • Подгруппы можно создавать, чтобы иерархически организовать группы, что позволяет более гибко управлять инфраструктурой.
  • Переменные:
    • Переменные могут быть определены на уровне всей инфраструктуры, группы, хоста или динамически через внешний источник.
    • В INI-файлах переменные задаются через секции group:vars или host:vars.
    • В YAML-файлах переменные указываются в секциях vars или host_vars.
  • Dynamic Inventory:
    • Dynamic Inventory генерируется скриптами или плагинами, которые подключаются к API облачных провайдеров (например, AWS, Azure) и возвращают актуальный список хостов.
    • Пример команды для использования динамического Inventory:
    • В этом случае inventory_aws_ec2.yml — это динамический Inventory, который Ansible автоматически обновляет перед выполнением задач.

Пример простого использования:

Для запуска playbook на хостах из Inventory, достаточно использовать следующую команду:

Здесь inventory — это файл Inventory, в котором указаны хосты, а playbook.yml — это ваш playbook.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *