Типовой проект#

Использование типовой структуры проектов Ansible позволяет упростить их создание, использование и поддержку.

Файлы и каталоги#

Структура типового проекта Ansible, для запуска которого используется Automation Controller или Ansible Navigator имеет следующий вид:

project/
├── playbooks/
│   ├── playbook1.yml
│   ├── playbook2.yml
│   │   ...
│   └── playbookK.yml
├── inventory/
│   ├── inventory1.yml
│   ├── inventory2.yml
│   │   ...
│   └── inventoryL.yml
├── files/
│   ├── file1
│   ├── file2
│   │   ...
│   └── fileM
├── vars/
│   ├── vars1.yml
│   ├── vars2.yml
│   │   ...
│   └── varsN.yml
└── execution-environment.yml

Указанные файлы и каталоги используются для следующих целей:

  • playbooks/.

    Каталог с файлами playbook. Если проект содержит только один файл playbook, допускается разместить его в корневом каталоге проекта.

  • inventory/.

    Каталог с файлами инвентаря. Рекомендуемый формат файлов – YAML.

    Если инвентарь состоит из одного файла, допускается разместить его в корневом каталоге проекта. Рекомендуемое имя файла в этом случае – inventory.yml.

    Примечание

    Инвентарь необходимо заполнять только в том случае, когда проект разрабатывается для определенного списка управляемых узлов.

  • files/.

    Каталог с файлами, используемыми при сборке образа среды исполнения.

  • vars/.

    Каталог с файлами с переменными, используемыми в playbook.

    Если все переменные хранятся в одном файле, допускается разместить его в корневом каталоге проекта. Рекомендуемое имя файла в этом случае – vars.yml.

  • execution-environment.yml.

    Файл определения среды исполнения, используемой для запуска playbook. Подробности см. в инструкции по созданию собственных образов среды исполнения.

Примечание

Если для указания зависимостей вы используете файл requirements.yml, поместите его в корневой каталог проекта.

Применение проекта#

Для запуска проекта рекомендуется использовать Automation Controller или Ansible Navigator.

Automation Controller#

Чтобы использовать Automation Controller для запуска проекта, выполните следующие действия:

  1. Создайте полномочия нужного типа, следуя инструкции.

    Понадобятся как минимум следующие полномочия:

    Тип полномочия

    Тип ресурса

    Реестр контейнеров

    Private Automation Hub

    Система управления версиями (Source Control)

    Система управления кодом, в которой хранится проект

    Машина (Machine)

    Управляемые узлы

  2. Добавьте в Automation Controller образ среды исполнения, следуя инструкции по загрузке образов.

  3. Создайте проект согласно инструкции по созданию проектов.

  4. Создайте инвентарь нужного типа и добавьте в него сведения об управляемых узлах.

  5. Используйте playbook из проекта для создания шаблона заданий.

  6. Запустите задание, следуя инструкции по запуску заданий на основе шаблона.

Ansible Navigator#

Чтобы использовать Ansible Navigator для запуска проекта, выполните следующие действия:

  1. Загрузите код проекта в рабочий каталог.

  2. Создайте в корневом каталоге проекта файл ansible.cfg, в котором укажите необходимые настройки, например, путь к инвентарю.

  3. Для запуска playbook используйте команду:

    ansible-navigator run --eei <image> path/to/playbook.yml
    

    Здесь:

    • <image> – название образа среды исполнения, используемого для запуска заданий;

    • /path/to/playbook.yml – путь к файлу playbook относительно корневого каталога проекта.