21 декабря 2022 г.
1068

Использование AWX

AWX - это проект, позволяющий выполнять сценарии ansible используя web-интерфейс.

Projects

В разделе Projects хранятся проекты. Проект - это набор playbook'ов, которые расположены локально на сервере с awx или в репозитории.

    Для создания проекта нужно нажать Add и указать его параметры
  • Name - название проекта
  • Organization - сущность для разграничения доступа, типа namespace, по умолчанию default
  • Source Control Type - тип репозитория, можно выбрать систему управления версиями или локальный каталог
  • Source Control URL - адрес репозитория
  • Source Control Branch/Tag/Commit - можно указать ветку или тег или коммит, опционально
  • Source Control Credential - реквизиты для доступа к репозиторию, они должны быть созданы заранее
    Можно включить опции
  • Clean - удалить все локальные изменения перед обновлением
  • Delete - при обновлении проекта удалять локальную копию репозитория и загружать заново
  • Update Revision on Launch - обновление версии проекта, каждый раз когда задание выполняется
  • Allow Branch Override -

Inventories

    В разделе Inventories нажимать кнопку Add. На выбор будет предложено создать:
  • Inventory - обычный Inventory
  • Smart Inventory - позволяет генерировать inventory на основе уже существующих хостов, основываясь на каких-либо параметрах, например, на типе операционной системы
    При создании обычного inventory нужно ввести имя и, если нужно, переменные в поле Variables, затем нажать Save. Inventory появится в списке, у inventory есть следующие вкладки
  • Access - здесь контролируется, кто из пользователей или групп пользователей имеет доступ к Inventory
  • Groups - список хост-групп
  • Hosts - список хостов
  • Sources - список источников для inventory. Можно выгружать inventory из AWS/Azure/OpenStack/RHEV и ещё ряда сервисов, можно указать inventory-файл, который находится внутри Project'а или же указать в качестве источника свой собственный скрипт, который генерирует Dynamic Inventory
  • Jobs - список запущенных playbook'ов, ассоциированных с хостами из текущего inventory

На вкладке Hosts добавляются хосты, для этого нужно нажать Add и ввести имя или адрес хоста.

На вкладках Hosts и Groups есть кнопка Run Command, она позволяет выполнять действия на удаленных хостах без playbook'а.

Credentials

Если нужно, чтобы AWX подключался к защищенному хранилищу, то для этого можно создать Credential.

Для этого нужно перейти в раздел Credentials, ввести название, тип и учетные данные.

    Тип Machine позволяет ввести учетные данные для подключения к серверу и помимо имени пароля и ключа у него есть следующие параметры:
  • Private Key Passphrase - пароль для ключа, если ключ создан с паролем
  • Privilege Escalation Method - метод повышения привилегий. Например: sudo, su, pfexec и и т.д.
  • Privilege Escalation Username - пользователь, под которым Ansible должен получить привилегии
  • Privilege Escalation Password - пароль для повышения привилегий

У ряда полей есть чекбокс Prompt on launch. При активации этого чекбокса соответствующее ему поле будет предложено заполнить вручную при каждом запуске playbook'а, с которым ассоциированы данные реквизиты. Таким образом можно не сохранять пароль внутри AWX, а запрашивать его при каждом запуске playbook'а.

Templates

    Для запуска playbook'а нужно сначала создать Template, для этого зайти в раздел Templates, нажать Add, выбрать Add job template. Или в Проекте зайти на вкладку Job Templates, нажать Add. Откроется окно в котором нужно ввести параметры^
  • Name - название шаблона
  • Job Type - запуск playbook'а или только проверка playbook'а
  • Inventory - inventory, с которым будет запускаться playbook
  • Project - выбор проекта
  • Playbook - выбор playbook'а из проекта
  • Limit - список хостов и групп, на которых будет запущен playbook
  • Verbosity - насколько подробно Ansible будет выводить результат выполнения (аналог ключей -v -vv -vvv)
  • Job tags - список тегов — задачи, с которыми должны быть запущены. Если не указывать, будет выполнены все задачи описанные в ролях
  • Skip tags - список тегов — задачи, с которыми не будут выполняться
  • Labels - метки, которые будут ассоциироваться с данным шаблоном. Можно использовать для фильтрации в самом AWX
  • Show diff - показывать изменения, которые делает Ансибл (аналог ключа --diff)

Для запуска нужно нажать кнопку в виде ракеты в списке или по кнопке Launch из самого шаблона.