Начало работы#

В этом руководстве рассматривается развертывание Astra Automation Controller и его использование для настройки управляемого узла.

В качестве стенда используются две ВМ VirtualBox, созданные с помощью Vagrant. Они обладают следующими характеристиками:

  • ВМ для Astra Automation Controller:

    • количество ядер CPU – 4;

    • объем RAM, ГБ – 8;

    • объем хранилища, ГБ – 30;

    • операционная система – Astra Linux Special Edition 1.7.4 без графического интерфейса;

    • IP-адрес – 192.168.56.11.

  • Управляемый узел:

    • количество ядер CPU – 2;

    • объем RAM, ГБ – 2;

    • объем хранилища, ГБ – 30;

    • операционная система – Astra Linux Special Edition 1.7.4 без графического интерфейса;

    • IP-адрес – 192.168.56.101.

Для настройки обеих ВМ используется подключение по протоколу SSH, для работы с контроллером – веб-браузер.

Подготовка к работе#

Для создания стенда выполните следующие действия:

  1. Установите VirtualBox, Vagrant и его расширение для работы с образами Astra Linux согласно инструкции.

  2. Создайте каталог для хранения файлов проекта. Далее этот каталог называется каталогом проекта.

  3. В каталоге проекта создайте Vagrantfile со следующим содержимым:

    # frozen_string_literal: true
    
    Vagrant.configure('2') do |config|
      config.vm.box = 'alse-vanilla-base/1.7.4'
      config.vm.box_url = 'https://dl.astralinux.ru/vagrant/alse-vanilla-base%2F1.7.4'
    
      # Astra Automation Controller
      config.vm.define 'aac' do |aac|
        aac.vm.hostname = 'aac'
    
        aac.vm.provider 'virtualbox' do |vb|
          vb.cpus = 4
          vb.memory = 8192 # 8 GB
        end
    
        aac.vm.network 'private_network',
                       ip: '192.168.56.11'
      end
    
      # Управляемый узел для развертывания NGINX
      config.vm.define 'node01' do |node01|
        node01.vm.hostname = 'node01'
    
        node01.vm.provider 'virtualbox' do |vb|
          vb.cpus = 2
          vb.memory = 2248 # 2 GB
        end
    
        node01.vm.network 'private_network',
                          ip: '192.168.56.101'
      end
    end
    
  4. Для создания и запуска ВМ с помощью Vagrant в каталоге проекта выполните команду:

    vagrant up
    

Установка контроллера#

Для установки контроллера выполните следующие действия:

  1. Чтобы подключиться к ВМ для контроллера, в каталоге проекта выполните команду:

    vagrant ssh aac
    
  2. В каталоге /etc/apt/sources.list.d/ создайте файл astra-automation.list со ссылкой на репозиторий Astra Automation:

    deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 <version> main
    

    Доступные версии продукта опубликованы в таблице История обновлений. Например, для установки версии 1.0-upd2 вместо <version> подставьте значение 1.0-upd2.

  3. Обновите список доступных пакетов:

    sudo apt update
    
  4. Установите пакет astra-automation-setup:

    sudo apt install astra-automation-setup --yes
    
  5. Перейдите в каталог /opt/rbta/aa/astra-automation-setup/:

    cd /opt/rbta/aa/astra-automation-setup/
    
  6. Раздел [automationcontroller] в файле inventory приведите к следующему виду:

    [automationcontroller]
    aac.example.com  ansible_host=192.168.56.11  ansible_connection=local
    

    Здесь:

    • aac.example.com – название узла;

    • 192.168.56.11 – IP-адрес настраиваемого узла.

  7. Запустите установку:

    sudo ./aa-setup
    

    Дождитесь завершения выполнения команды, это может занять некоторое время. По окончании установки в терминал выводится строка вида:

    aac      : ok=233  changed=130  unreachable=0    failed=0    skipped=55    rescued=0    ignored=4
    

    Установка считается успешной, если в поле failed указано значение 0.

  8. Для отключения от ВМ выполните команду:

    exit
    

Настройка управляемого узла#

Чтобы к управляемому узлу можно было подключаться по SSH, в настройках сервера следует разрешить парольную аутентификацию. Для этого:

  1. Чтобы подключиться к управляемому узлу, в каталоге проекта выполните команду:

    vagrant ssh node01
    
  2. В каталоге /etc/ssh/sshd_config.d/ создайте файл pass-auth.conf со следующим содержимым:

    PasswordAuthentication yes
    
  3. Перезапустите службу SSH:

    sudo systemctl restart ssh.service
    
  4. Для отключения от ВМ выполните команду:

    exit
    

Настройка контроллера#

  1. Запустите веб-браузер и перейдите по адресу http://192.168.56.11/.

    При первом подключении браузер выводит предупреждение о том, что подключение не защищено. Это нормальное поведение, поскольку для защиты подключения контроллер использует самоподписанный сертификат. При использовании браузера на основе Chromium выполните следующие действия:

    1. Нажмите кнопку Дополнительные.

    2. Нажмите ссылку Перейти на сайт 192.168.56.11 (небезопасно).

  2. Авторизуйтесь в веб-интерфейсе контроллера с учетными данными по умолчанию:

    • Имя пользователя (Username): admin.

    • Пароль (Password): awx.

  3. Создайте новую запись в инвентаре:

    1. На панели навигации выберите Ресурсы ‣ Инвентарь (Resources ‣ Inventories).

    2. Нажмите кнопку Добавить (Add) и в открывшемся меню выберите Добавить инвентарь (Add inventory).

    3. Заполните форму Создать новый инвентарь (Create new inventory):

      • Название (Name): NGINX inventory.

    4. Нажмите кнопку Сохранить (Save).

  4. Добавьте управляемый узел в инвентарь:

    1. На странице созданного инвентаря выберите вкладку Управляемые узлы (Hosts).

    2. Нажмите кнопку Добавить (Add).

    3. Заполните форму Создать новый узел (Create new host):

      • Название (Name): node01.

      • Переменные (Variables): выберите формат YAML и введите строки:

        ---
        ansible_host: "192.168.56.101"
        ansible_user: "vagrant"
        
    4. Нажмите кнопку Сохранить (Save).

  5. Создайте полномочие для доступа к управляемому узлу:

    1. На панели навигации выберите Ресурсы ‣ Полномочия (Resources ‣ Credentials).

    2. Нажмите кнопку Добавить (Add).

    3. Заполните форму Создать новые учетные данные (Create New Credentials):

      1. Название (Name): произвольное название записи, например, NGINX.

      2. Тип полномочия (Credential Type): Машина (Machine).

      3. Имя пользователя (Username): vagrant.

      4. Пароль (Password): vagrant.

    4. Нажмите кнопку Сохранить (Save).

  6. Создайте полномочие для доступа к реестру Astra Automation Hub:

    1. На панели навигации выберите Ресурсы ‣ Полномочия (Resources ‣ Credentials).

    2. Нажмите кнопку Добавить (Add).

    3. Заполните форму Создать новые учетные данные (Create New Credentials):

      1. Название (Name): произвольное название полномочия, например, Astra Automation Hub.

      2. Тип полномочия (Credential Type): Управление версиями (Source control).

      3. Закрытый ключ SCM (SCM Private Key): содержимое приватного ключа SSH, используемого для доступа к реестру Astra Automation Hub.

      4. Парольная фраза закрытого ключа (Private Key Passphrase): если приватный ключ SSH защищен паролем, укажите его в этом поле.

    4. Нажмите кнопку Сохранить (Save).

  7. Создайте новый проект:

    1. На панели навигации выберите Ресурсы ‣ Проекты (Resources ‣ Projects).

    2. Нажмите кнопку Добавить (Add).

    3. Заполните форму Создать новый проект (Create New Project):

      1. Название (Name): укажите произвольное название проекта, например, Развертывание NGINX.

      2. Тип системы управления исходными данными (Source Control Type): Git.

      3. URL системы управления исходными данными (Source Control URL):

        ssh://git@hub.astra-automation.ru:2222/aa-gca/AA/aac-samples.git
        
      4. Полномочия на систему управления исходными данными (Source Control Credential): выберите созданное ранее полномочие Astra Automation Hub.

    4. Нажмите кнопку Сохранить (Save).

    5. Дождитесь окончания создания проекта – это может занять некоторое время.

      Об успешном создании проекта свидетельствует значение Успех (Successfull) в поле Статус последнего задания (Last Job Status).

  8. Создайте шаблон задания:

    1. На панели навигации выберите Ресурсы ‣ Шаблоны (Resources ‣ Templates).

    2. Нажмите кнопку Добавить (Add) и в открывшемся меню выберите Добавить шаблон задания (Add job template).

    3. Заполните форму Создать новый шаблон задания (Create New Job Template):

      1. Название (Name): укажите произвольное название проекта, например, Развертывание NGINX.

      2. Тип задания (Job Type): Выполнение (Run).

      3. Инвентарь (Inventory): выберите созданную ранее запись NGINX inventory.

      4. Проект (Project): выберите созданный ранее проект.

      5. Playbook: выберите playbook nginx/site.yml.

      6. Учетные данные (Credentials): выберите созданное ранее полномочие NGINX.

    4. Нажмите кнопку Сохранить (Save).

  9. Запустите задание:

    1. На панели навигации выберите Ресурсы ‣ Шаблоны (Resources ‣ Templates).

    2. В строке с созданным шаблоном задания в колонке Действия (Actions) нажмите кнопку запуска.

    3. Дождитесь выполнения playbook.

Проверка развернутой инфраструктуры#

Чтобы проверить корректность развертывания веб-сервера NGINX, выполните следующие действия:

  1. Чтобы подключиться к управляемому узлу, в каталоге проекта выполните команду:

    vagrant ssh node01
    
  2. Проверьте статус службы nginx:

    systemctl status nginx.service
    

    При успешном развертывании в терминал выводится сообщение вида:

    ● nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
       Active: active (running) since Mon 2023-12-11 20:47:14 MSK; 40s ago
         Docs: man:nginx(8)
      Process: 12234 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
     Main PID: 11947 (nginx)
        Tasks: 3 (limit: 2546)
       Memory: 3.3M
          CPU: 30ms
       CGroup: /system.slice/nginx.service
               ├─11947 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
               ├─12235 nginx: worker process
               └─12236 nginx: worker process
    

Освобождение ресурсов#

Если созданные ВМ больше не нужны, для их остановки и удаления в каталоге проекта выполните команду:

vagrant destroy --force

Заключение#

В этом сценарии вы познакомились с основными шагами по развертыванию Astra Automation Controller и его использованию для настройки управляемых узлов. Из всей последовательности шагов важно выделить следующие действия:

  • Подготовка окружения.

  • Указание учетных данных администратора контроллера в файле inventory.

  • Создание записей в инвентаре.

  • Создание полномочий, используемых для доступа к управляемым узлам и реестру Astra Automation Hub.

  • Создание проекта.

  • Настройка шаблона задания.

  • Запуск задания.