oneos_upgrader

oneos_upgrader

Роль Ansible для обновления устройств Ekinops OneAccess, работающих на программном обеспечении OneOS. Существуют 2 основных версии ОС: OneOS 5 и OneOS 6.

OneOS 5 очень похож на Cisco IOS-XE, и образ программного обеспечения должен находиться во флеш-памяти, а для загрузки необходимо указать команду boot.

OneOS 6 имеет основную и резервную банки программного обеспечения, и в каждом банке может быть загружено разное ПО. Необходимо указать, какой банк должен быть основным, прежде чем перезагрузить маршрутизатор.

Эта роль автоматически поддерживает обе версии.

Требования

  • ansible.utils
  • mwallraf.ekinops

Ошибки

В случае ошибки процесс будет прерван для данного хоста, что может означать, что отчет о состоянии не будет сгенерирован. Неудачные хосты также не отображаются в отчете.

Теги роли

Существуют 4 тега, которые вы можете использовать для определения режима работы роли. Если теги не указаны, будет выполнено полное обновление:

  • report: только предварительные проверки и генерация отчетов о состоянии (по умолчанию этот тег всегда запускается)
  • staging: выполнение всех возможных задач для подготовки обновления, но без остановки работы, в большинстве случаев это означает, что после процесса подготовки требуется только перезагрузка
  • upload: только процесс загрузки файлов, загружаются только файлы, необходимые для обновления
  • upgrade: выполнение всех необходимых шагов для завершения обновления

Переменные по умолчанию

Следующие переменные настроены по умолчанию, но могут быть переопределены при необходимости:

  • auto_configure_pre_requisites: переключает автоматическую настройку предварительных условий (например, включить сервер SCP) ПО УМОЛЧАНИЮ = true

Вычисляемые переменные

Следующие переменные будут вычислены на основе заданных переменных и текущей конфигурации:

  • running_os_is_compliant: указывает, соответствует ли работающая ОС требованиям (по сравнению с wanted_os_version)
  • boot_os_is_compliant: указывает, соответствует ли загружаемая ОС требованиям (по сравнению с wanted_boot_version)
  • scp_is_enabled: указывает, включен ли SCP или нет

Процесс обновления

В зависимости от тегов процесс обновления может различаться. По умолчанию будет выполнено полное обновление.

Режим отчета

В режиме отчета будут выполнены только базовые проверки и сгенерирован отчет, который указывает, следует ли обновлять маршрутизатор и достаточно ли места на диске.

Использование:

ansible-playbook -i hosts playbook.yml --tags report

Задачи плейбука:

  • подключиться и получить данные
  • установить дополнительные факты для определения состояния маршрутизатора и процесса обновления
  • отобразить отладочное сообщение для каждого хоста

Подробности:

  • задачи:
  • oneos_upgrader : СБОР ДАННЫХ > имя хоста ТЕГИ: [всегда]
  • oneos_upgrader : СБОР ДАННЫХ > получить системные данные ТЕГИ: [всегда]
  • oneos_upgrader : СБОР ДАННЫХ > получить данные ssh ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > получить желаемую статистику файла ОС ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > желаемая_статистика_файла_ос ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > получить желаемую статистику загрузочного файла ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > желаемая_статистика_загрузочного_файла ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > получить желаемую статистику файла восстановления ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > желаемая_статистика_файла_восстановления ТЕГИ: [всегда]
  • oneos_upgrader : СБОР ДАННЫХ > показать память ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > факт_памяти ТЕГИ: [всегда]
  • oneos_upgrader : ОСНОВНОЕ > запуск задач сбора данных, специфичных для ОС ТЕГИ: [report, staging, upgrade]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > рассчитать, необходимы ли обновления ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > scp_is_enabled ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > проверить, существуют ли файлы на диске или в банке программного обеспечения ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > требование к загрузке файла ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > файл_восстановления_существует_на_диске ТЕГИ: [всегда]
  • oneos_upgrader : УСТАНОВИТЬ ДАННУЮ > расчет достаточного_места_на_диске ТЕГИ: [всегда]
  • oneos_upgrader : ОТЧЕТ > получить детали хоста ТЕГИ: [report, staging, upgrade]
  • DEBUG > вывод всех переменных ТЕГИ: [всегда]
  • Шаблонизация файла в /etc/file.conf ТЕГИ: [всегда]

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

  post_tasks:
    - name: ОТЧЕТ > сохранить в файл
      ansible.builtin.template:
        src: "roles/oneos_upgrader/templates/report_overview.j2"
        dest: report.txt
      tags:
        - всегда

Режим подготовки

В режиме подготовки выполняются все необходимые проверки, загружаются все файлы, и обновление готовится без перебоев в работе.

Использование:

ansible-playbook -i hosts playbook.yml --tags staging

Задачи плейбука:

  • подключиться и получить данные
  • установить дополнительные факты для определения состояния маршрутизатора и процесса обновления
  • если на устройстве нет свободного места, старые файлы будут удалены
    • повторный расчет места на диске
  • если есть какие-либо предварительные настройки, они будут применены (например, включить SCP)
  • загрузка файлов, если это необходимо
    • если нет места для всех файлов, сначала будут скопированы загрузочные файлы
  • банк программного обеспечения или загрузочный файл готовится, ЕСЛИ нет ожидания обновления загрузочного образа

Если требуется несколько обновлений (BOOT + RECOVERY + OS), то нельзя подготовить все одновременно. Если на диске достаточно места для всех файлов, загрузка будет завершена. Загрузка файла может быть выполнена только для первого файла (например, BOOT), так как для продолжения требуется перезагрузка. Поэтому многоступенчатые обновления следует выполнять поэтапно, иначе дополнительные шаги будут выполнены во время процесса обновления.

О проекте

Ansible role for upgrading Ekinops-OneAccess OneOS devices

Установить
ansible-galaxy install mwallraf/oneos_upgrader
Лицензия
Unknown
Загрузки
75
Владелец