Модуль 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 запуск модуля возможен с помощью командной строки:

ansible localhost -m astra_update -a "upgrade=full check_install_disk=no repo=$URL" --diff --become
Где:

  • -m –-- параметр для указания модуля ansible, в нашем случае это ansible-astra-update;
  • localhost –-- сеть, в которой находятся узлы или имя конкретного узла из /etc/ansible/hosts;
  • $URL –-- переменная окружения, которая будет заменена на фактический URL-адрес репозитория.

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

Параметры

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

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

Строка

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

  1. check  –-- проверить, можно ли устанавливать обновление. Изменения в систему не вносятся. Является эквивалентом параметра "" инструмента astra-update. Это действие по умолчанию.
  2. full –-- установить обновление полностью автоматически, не задавая вопросов, выполняя автоматическое выключение и включение функций безопасности. Является эквивалентом параметра "" инструмента astra-update.
  3. tools –-- обновить сначала инструменты обновления. Является эквивалентом параметра "-p" инструмента astra-update
package

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

Список

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

repository

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

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


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

Модуль 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: tools
        check_install_disk: no
        use_current_sources_list: yes
        pkg:
          - astra-update
  • Обновление системы с использованием пакетов из указанного репозитория:
- 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/
  • No labels