Как запустить задание, используя только программный интерфейс AWX?
Конечно, можно было бы ограничиться лишь инструментом cURL для выполнения этих и других операций из командной строки по протоколу НТТР, но в Апsible имеется намного более удобный инструмент: Tower-cli.
В отличие от приложения Апsible Тower, клиент командной строки Tower-cli является открытым программным обеспечением и доступен в репозитории GitHub на условиях лицензии АрасНе 2.0 и совместим с AWX.
Чтобы установить Tower-cli, воспользуемся диспетчером пакетов для Руthоп рiр3.
Клиента tower-cli можно установить на уровне системы, если имеются привилегии гооt, или, как в данном случае, для локального пользователя:
sudo pip3 install ansible-tower-cli
Если установка выполняется с привилегиями обычного пользователя, клиент будет установлен в каталог ~/.lосаl/bin/.
Не забудьте добавить путь ~/.lосаl/bin в переменную окружения РАТН.
Прежде чем взаимодействовать с АРI, нужно настроить параметры учетной записи доступа к AWX:
# tower-cli config host http://192.168.3.151
# tower-cli config username admin
# tower-cli config password pAssw0rd
# tower-cli config verify_ssl False
Проверка конфигурации:
# tower-cli config
Первое, что нам наверняка понадобится автоматизировать, это запуск задания из шаблона после успешной сборки на сервере непрерывной интеграции.
Клиент tower-cli существенно упрощает эту задачу. Достаточно лишь знать идентификатор или имя шаблона задания, которое требуется запустить.
Чтобы узнать имя шаблона, можно воспользоваться ключиком list:
# tower-cli job_template list
Отыскав требуемый шаблон, его можно запустить, указав действие launch и аргумент --job-template плюс имя или идентификатор выбранного шаблона.
tower-cli job launch --job-template 9
Для мониторинга выполняющегося задания команда tоwег-сli jоЬ поддерживает действие monitor с аргументом - идентификатором задания.
Эта команда запустится и будет ждать завершения задания:
tower-cli job monitor 78
Используя немного волшебства командной строки и утилиту jq можно объединить запуск и мониторинг задания в одну команду:
tower-cli job monitor $(tower-cli job launch --job-template 9 | jq '.id')
С помошью tower-cli можно лекго выполннть бекап AWX в разрезе Credentials, Organizations, Users, Hosts и Templates
в формате JSON:
# tower-cli receive --all > 27032018.json
Восстановление из бекапа:
# tower-cli send 27032018.json
На сегодня все. Успехов.
No comments:
Post a Comment
А что вы думаете по этому поводу?