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 из самого шаблона.