Рассмотрим установку astra-automation и развёртывание простого сценария. В данном примере рассмотрим простое развёртывание «Контроллер на одном узле» (https://docs.astra-automation.ru/1.1/installation/inventory/aac/single-node/). Вариант когда контроллер и СУБД развёрнуты на одном узле не подходит для промышленной эксплуатации, но он прост в развёртывании, нетребователен к ресурсам и подходит для тестирования и опробации.
Если используется внутренняя СУБД, указывать ее параметры не требуется – она будет развернута на том же узле, что и контроллер.
Сама установка согласно инструкции https://docs.astra-automation.ru/1.1/installation/
Основные параметры при развёртывании на которые стоит обратить внимание.
1. В каталоге /etc/apt/sources.list.d/
создайте файл astra-automation.list
со ссылкой на репозиторий Astra Automation:
deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 1.1-upd1
main
2. Установка произойдёт в каталог /opt/rbta/aa/astra-automation-setup. Развертывание считается успешным, если для всех узлов в поле failed
указано значение 0
.
Прошу обратить внимание на данные лог с сообщениями об ошибках, он довольно подробный и можно увидеть где и с чем у выс проблемы (так же и при обновлении!!!) Поверьте внимательное чтение может сохранить вам до нескольких часов ковыряния непонятно с чем.
3. Настраиваем SSH для доступа к узлам
Для генерации пар ключей SSH на установочном узле выполните следующие действия:
В каталоге /opt/rbta/aa/astra-automation-setup/
создайте подкаталог ssh-keys/
.
sudo mkdir -p /opt/rbta/aa/astra-automation-setup/ssh-keys/
Перейдите в созданный каталог:
cd /opt/rbta/aa/astra-automation-setup/ssh-keys/
Для каждого узла создайте пару ключей SSH:
sudo ssh-keygen -C "<comment>" -f ./<filename> -N "<password>"
Чтобы разрешить подключение к узлу по SSH с использованием ключей, выполните следующие действия:
-
В каталоге /etc/ssh/sshd_config.d/
создайте файл ssh_auth_keys
со следующим содержимым:
PubkeyAuthentication yes
Authorized KeysFile .ssh/authorized_keys .ssh/authorized_keys2
Перезапустите сервер SSH:
sudo systemctl restart ssh
Если узел разрешает подключение по SSH с использованием пароля, публичную часть ключей SSH можно разместить с помощью утилиты ssh-copy-id
:
ssh-copy-id -i <filename> <user>@<host>
Для настройки узлов с помощью Ansible необходимо разрешить на них использование команды sudo
без ввода пароля.
Чтобы выключить запрос пароля при использовании sudo
, выполните команду:
sudo astra-sudo-control disable
4. Использование коллекций Anseble можно посмотреть по данной ссылке https://docs.astra-automation.ru/1.1/automation-hub/collections/. Увы но будем использовать локальный файл для запуска. (в документации очень много полезного добавлен начиная с версии 1.1 Added in version 1.1-upd1., эх чуть раньше бы.)
Настройка контроллера и запуск проекта.
Запустите веб-браузер и перейдите по адресу http://<IP>/
, где <IP> – IP-адрес узла, на котором развернут Automation Controller.
Авторизуйтесь в веб-интерфейсе контроллера с учетными данными администратора контроллера.
Значения по умолчанию:
Создаём и заполняем инвентарь:
-
На панели навигации выберите ().
-
Нажмите кнопку Добавить (Add) и выберите Добавить инвентарь (Add inventory).
-
В форме Создать новый инвентарь (Create new inventory) в поле Название (Name) введите строку You_inventory_name
. В поле Организация выберете значение Default.
-
Нажмите кнопку Сохранить (Save). Откроется окно просмотра свойств созданного инвентаря.
-
Выберите вкладку Управляемые узлы (Managed Nodes).
-
Нажмите кнопку Добавить (Add).
-
Заполните форму Создать новый узел (Create New Node):
- Нажмите кнопку Сохранить (Save).
Создаём проект.
Как писал ранее делаем ручное создание. Для этого необходимо перейти на узел с AA через ssh. Переходим в место расположения проектов по умолчанию : /var/lib/awx/projects и создаём там папку для нашёго проекта test_project
-
На панели навигации выберите ().
-
Нажмите кнопку Добавить (Add).
-
Заполните форму Создать новый проект (Create new project):
-
Название (Name): test_project
.
-
Организация : Default
-
Тип системы управления исходными данными (Source Control Type): Ручное управление
.
-
Каталог playbook: test_projec
-
-
Нажмите кнопку Сохранить (Save).
Создаём шаблон задания.
Опять же предварительно создаём исполняемый playbook внутри нашего проекта. Переходим /var/lib/awx/projects/test_project
и создаём там файл os_users.yml
со следующим содержимым (в данном случае создадим пользователя):
---
- name: Manage OS users
hosts: all
become: true
gather_facts: false
tasks:
- name: Add the user "testuser"
ansible.builtin.user:
name: 'testuser'
password: "123"
update_password: on_create
shell: /bin/bash
state: present
Дальнейшие действия выполняем в веб интерфейсе AA:
-
На панели навигации выберите ().
-
Нажмите кнопку Добавить (Add) и в открывшемся меню выберите Добавить шаблон задания (Add job template).
-
Заполните форму Создать новый шаблон задания (Create New Job Template):
-
Название (Name):
test_user
.
-
Тип задания (Job Type): Выполнение (Run)
.
-
Инвентарь (Inventory):
You_inventory_name
.
-
Проект (Project):
test_project
.
-
Playbook:
os_users.yml
.
-
Нажмите кнопку Сохранить (Save). Откроется окно просмотра свойств шаблона.
-
Для запуска задания нажмите кнопку Запустить (Run). Откроется окно просмотра журнала выполнения задания.
-
Дождитесь перехода задания в статус Успех
(Success), после чего обновите страницу браузера. В окне вывода будет отображен журнал выполнения задания, например:
Как видем задание выполнено и отработало без ошибок. Можем пройти на нашу упровляему систему и проверить появился ли там данный пользователь. (если ошибок при выполнении недыло и вы корректно расположили ssh ключи то пользователь будет создан, правда очень порублен в правах.)