Модуль ansible astra-update является частью системы управления конфигурациями ansible и  предназначен для автоматизации применения инструмента astra-update. 

Данная статья применима к:

Установка

Модуль ansible-astra-update представлен пакетом ansible-module-astra-update. Пакет доступен в составе базового репозитория Astra Linux начиная с обновлений БЮЛЛЕТЕНЬ № 2023-0426SE17 (оперативное обновление 1.7.4 и БЮЛЛЕТЕНЬ № 2023-0727SE47 (оперативное обновление 4.7.4) .

Последовательность установки:

  1. Установить и настроить систему управления конфигурациями ansible .
  2. В /etc/apt/sources.list  добавить репозиторий, содержащий пакет ansible-module-astra-update:

  3. Выполнить обновление списка пакетов:

    sudo apt update

  4. Установить пакет с модулем ansible-astra-update с помощью графического менеджера пакетов (см.   Графический менеджер пакетов synaptic ) или из командной строки командой:

    sudo apt install ansible-module-astra-update

Для применения модуля ansible astra-update на подчиненных узлах должен быть установлен инструмент astra-update. Инструмент доступен начиная с Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным оперативным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (очередное обновление 7)

Установит ь инструмент astra-update на подчиненных узлах, указанных в  /etc/ansible/hosts c помощью ansible можно выполненной на сервере командой:

ansible all -m apt -a "update_cache=yes name=astra-update state=present"

Параметры модуля

Список параметров модуля ansible-astra-update для ansible. При запуске может быть выбрано одновременно несколько параметров.

ПараметрТип данныхОписания действия
upgrade

Строка

Используется для выбора варианта обновления:

  • check  –-- проверить, можно ли устанавливать обновление. Изменения в систему не вносятся. Является эквивалентом параметра "" инструмента astra-update. Это действие по умолчанию.
  • full –-- установить обновление полностью автоматически, не задавая вопросов, выполняя автоматическое выключение и включение функций безопасности. Является эквивалентом параметра "" инструмента astra-update.
  • tools –-- обновить сначала инструменты обновления. Является эквивалентом параметра "-p" инструмента astra-update. Данный ansible-модуль не работает при включенных функциях безопасности, потенциально создающих помехи установке обновлений (например, при включенном запрете установки бита исполнения). Для обновления инструмента обновления в такой ситуации можно использовать ansible-задачу следующего вида:
    tasks:
        - name: Обновить инструмент обновления
          apt: 
            name: astra-update
            state: latest
            update_cache: yes
        - name: Обновление пакетов
     Данная задача выполняет обновление пакета astra-update с помощью инструмента управления пакетами apt.
package
Также можно использовать псевдоним: pkg

Список

Список названий пакетов, указываемый при первоначальном обновлении инструментов

repository
Также можно использовать псевдоним:  repo

СписокСписок источников для обновления
use_current_sources_listЛогическийУстановка обновления из репозиториев /etc/apt/sources.list (без изменений самого файла). По умолчанию установлен в значение false
install_latest_kernel Логический Установить в процессе обновления последнее ядро linux
check_install_diskЛогическийИскать репозиторий установочного диска. По умолчанию установлен в значение true

Запуск модуля

После установки модуля и настройки ansible запуск модуля возможен с помощью командной строки, например:

ansible <адрес> -m astra_update -a "upgrade=full check_install_disk=no repo=<адрес_репозитория>" --diff --become
Где:

  • -m — параметр для указания модуля ansible, в нашем случае это ansible-astra-update;
  • <адрес> сеть, в которой находятся узлы или имя конкретного узла из /etc/ansible/hosts;
  • <адрес_репозитория> — адрес репозитория из которого будет выполняться установка.

Часто используемые параметры команды приведены в разделе ниже. Для выполнения команды не нужны права sudo.

Режимы работы

Модуль ansible-astra-update для ansible поддерживает следующие режимы работы ansible с узлами:

РежимПоддержка режима модулем astra-updateОписания действия
check

Полная

Режим сравнения. Этот режим позволяет проверить, какие изменения будут выполнены на целевых узлах, но фактически ничего не изменяет.

diff

Полная

Режим проверки. Этот режим позволяет видеть различия между текущим состоянием целевых узлов и изменениями, которые ansible собирается выполнить. Когда параметр diff_mode установлен в yes, ansible будет показывать изменения в файлах или конфигурациях, аналогично выводу утилиты diff, чтобы оценить изменения до их фактического применения.

Плейбуки

Плейбуки (playbooks) это файлы конфигурации ansible, написанные на языке YAML и содержащие описание действий, выполняемых на удаленных узлах. Плейбуки могут включать в себя различные задачи, такие как установка обновлений и отдельных программ, конфигурация системы на каждом узле, управление службами и т.д..

Примеры настройки плейбуков

Плейбуки создаются в каталоге /etc/ansible/playbooks как отдельные YAML-файлы.

При формировании плейбуков следует учитывать отступы и разграничивать секции отдельных инструкций как это показано в приведенных ниже примерах настройки. В противном случае при их выполнении будут возникать ошибки.

Ниже представлены примеры содержимого плейбуков для управления узлами из списка  /etc/ansible/hosts :

  • Для полного автоматического обновления системы, без взаимодействия с пользователем и автоматическим перезапуском функций безопасности:
    - name: Полное обновление ОС
      hosts: all
      become: true
      tasks:
        - name: Обновление пакетов
          astra_update:
            upgrade: full
            check_install_disk: no
            use_current_sources_list: yes
          diff: yes
  • Проверка возможности установки обновления без внесения изменений в систему:
    - name: Проверка обновлений
      hosts: all
      become: true
      tasks:
        - name: Проверить возможность установки обновления
          astra_update:
            upgrade: check
  • Дополнительный список пакетов для первоочередного обновления:
    - name: Обновление системы с помощью интернета
      hosts: all
      become: true
      tasks:
        - name: Обновление системы с использованием интернет-репозиториев
          astra_update:
            upgrade: full
            repository:
              - https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/
              - https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update/
  • Обновление системы с использованием пакетов из указанного репозитория:
    - name: Обновление инструментов обновления
      hosts: all
      become: true
      tasks:
        - name: Обновить инструменты обновления
          astra_update:
            upgrade: tools
            check_install_disk: no
            use_current_sources_list: yes
            pkg:
              - astra-update