Базовый сценарий#
Базовый сценарий использования CLI Automation Controller включает в себя следующие действия:
Подготовка организационной структуры.
Подготовка инвентаря.
Подготовка проекта.
Подготовка задания.
Запуск задания и проверка его статуса.
Подготовка организационной структуры#
Для подготовки организационной структуры выполните следующие действия:
Сгенерируйте персональный токен доступа с помощью команды awx login:
CONTROLLER_HOST=<address> CONTROLLER_USERNAME=<username> CONTROLLER_PASSWORD=<password> awx login
Подставьте собственные значения параметров вместо употребленных в примере:
<address> – URL контроллера, например,
https://192.168.56.11
;<username> – название учетной записи пользователя, например,
admin
;<password> – пароль, например,
awx
.
Эта команда возвращает токен в формате JSON, например:
Сохраните полученный токен в надежном месте – в случае утраты его нужно будет сгенерировать заново. Восстановить существующий токен невозможно.
Экспортируйте токен в переменную окружения
CONTROLLER_OAUTH_TOKEN
с помощью команды export:export CONTROLLER_OAUTH_TOKEN=<token>
Получите идентификатор среды исполнения с помощью команды awx execution_environments list:
awx execution_environments list -f human
Эта команда возвращает информацию об имеющихся средах исполнения:
Пример ответа
Создайте организацию с помощью команды awx organization create:
awx organizations create \ --name "<your_organization_name>" \ --default_environment <execution_environment_id>
Подставьте собственные значения параметров вместо употребленных в примере:
<your_organization_name> – название организации, например,
Jupiter
;<execution_environment_id> – идентификатор среды исполнения, например,
1
.
Эта команда возвращает информацию о созданной организации:
Пример ответа
Получите идентификатор полномочия Ansible Galaxy с помощью команды awx credentials list:
awx credentials list -f human
Эта команда возвращает информацию об имеющихся полномочиях:
Пример ответа
Свяжите полномочие Ansible Galaxy с организацией при помощи команды awx organization associate:
awx organizations associate \ --galaxy_credential <credential_id> \ <organization_id>
Подставьте собственные значения параметров вместо употребленных в примере:
<credential_id> – идентификатор полномочия для доступа к Ansible Galaxy, например,
2
;<organization_id> – идентификатор организации, созданной ранее, например,
3
.
Эта команда возвращает информацию о добавленном полномочии:
Пример ответа
Подготовка инвентаря#
Для подготовки инвентаря выполните следующие действия:
Создайте инвентарь с помощью команды awx inventories create:
awx inventories create \ --name "<your_inventory_name>" \ --organization "<your_organization_name>"
Подставьте собственные значения параметров вместо употребленных в примере. Здесь <your_inventory_name> – название инвентаря, например,
Demo Inventory
.Эта команда возвращает информацию об инвентаре:
Пример ответа
Добавьте управляемый узел в инвентарь с помощью команды awx host create:
awx host create \ --name "<node_name>" \ --inventory <inventory_id> \ --variables "<node_variables>"
Подставьте собственные значения параметров вместо употребленных в примере:
<node_name> – название управляемого узла, например,
node01
;<inventory_id> – идентификатор инвентаря, например,
3
;<node_variables> – переменные для доступа к управляемому узлу, например,
{'ansible_host': '192.168.56.101', 'ansible_user': 'vagrant'}
.
Эта команда возвращает информацию об управляемом узле:
Пример ответа
Создайте полномочие для доступа к управляемому узлу с помощью команды awx credentials create:
awx credentials create \ --name '<credential_name>' \ --credential_type 'Machine' \ --organization <organization_id> \ --inputs '<node_inputs>'
Подставьте собственные значения параметров вместо употребленных в примере:
<credential_name> – название полномочия для доступа к управляемому узлу, например,
NGINX
;<node_inputs> – данные для доступа к управляемому узлу, например,
{"username": "vagrant", "password": "vagrant"}
.
Эта команда возвращает информацию о созданном полномочии:
Пример ответа
Подготовка проекта#
Для подготовки проекта выполните следующие действия:
Создайте полномочие для доступа к Automation Hub с помощью команды awx credentials create
awx credentials create \ --name '<credential_name>' \ --credential_type 'Source Control' \ --organization <organization_id> \ --inputs '<AAH_inputs>'
Подставьте собственные значения параметров вместо употребленных в примере:
<credential_name> – название полномочия для доступа к Automation Hub, например,
Automation Hub
;<AAH_inputs> – данные для доступа к Automation Hub, например,
{"ssh_key_data": "@~/.ssh/hub.astra-automation.ru", "ssh_key_unlock": "****"}
:ssh_key_data
– путь к файлу, в котором хранится приватный ключ для доступа к Automation Hub;ssh_key_unlock
– пароль для защиты приватного ключа, который был установлен при его создании.
Примечание
С подробной информацией о создании ключа доступа можно ознакомиться в секции Доступ к реестрам Automation Hub.
Эта команда возвращает информацию о созданном полномочии:
Пример ответа
Создайте проект с помощью команды awx projects create:
awx projects create \ --wait \ --organization <organization_id> \ --name='<your_project_name>' \ --scm_type git \ --scm_url 'ssh://git@hub.astra-automation.ru:2222/aa-gca/AA/aac-samples.git' \ --credential <credential_id>
Подставьте собственные значения параметров вместо употребленных в примере:
<organization_id> – идентификатор организации, созданной ранее, например,
3
;<your_project_name> – название проекта, например,
Demo NGINX Project
;<credential_id> – идентификатор полномочия для доступа к Automation Hub, например,
5
.
Примечание
В качестве источника при создании проекта используется репозиторий с примерами с Automation Hub.
Эта команда возвращает информацию о созданном проекте:
Пример ответа
Подготовка задания#
Для подготовки задания выполните следующие действия:
Создайте шаблон задания для установки NGINX с помощью команды awx job_templates create:
awx job_templates create \ --name='<job_templates_name>' \ --project '<your_project_name>' \ --playbook nginx/site.yml \ --inventory '<your_inventory_id>'
Подставьте собственные значения параметров вместо употребленных в примере:
<job_templates_name> – название шаблона задания, например,
NGINX Deployment
;<your_inventory_id> – идентификатор инвентаря, созданного ранее, например,
3
.
Эта команда возвращает информацию о созданном шаблоне задания в формате:
Пример ответа
Свяжите шаблон задания с полномочием для доступа к управляемому узлу с помощью команды awx job_templates associate:
awx job_templates associate \ --id <job_template_id> \ --credential <credential_id>
Подставьте собственные значения параметров вместо употребленных в примере:
<job_template_id> – идентификатор созданного ранее шаблона задания, например,
19
;<credential_id> – идентификатор полномочия для доступа к управляемому узлу, например,
4
.
Эта команда возвращает информацию о добавленном полномочии:
Пример ответа
Запуск задания и проверка его статуса#
Для запуска и проверки статуса задания воспользуйтесь командой awx job_templates launch:
awx job_templates launch '<job_templates_name>' --monitor -f human
Эта команда возвращает информацию о запущенном шаблоне задания:
Пример ответа
Если в поле failed
указано значение 0
, значит задание завершилось успешно.