mwallraf.oneos_upgrader

oneos_upgrader

Rol de Ansible para actualizar dispositivos Ekinops OneAccess que ejecutan software OneOS. Hay 2 versiones principales del sistema operativo: OneOS 5 + OneOS 6.

OneOS 5 es muy similar a Cisco IOS-XE y la imagen del software debe estar presente en la memoria interna. Se requiere un comando de arranque para indicar qué software debe cargarse.

OneOS 6 tiene bancos de software primarios y redundantes, y cada banco puede tener un software diferente cargado. Debes indicar qué banco debe ser el primario antes de reiniciar el router.

Este rol soporta ambas versiones automáticamente.

Requisitos

  • ansible.utils
  • mwallraf.ekinops

Fallos

En caso de un fallo, el proceso se abortará para un host, esto podría significar que el informe no se generará. Los hosts fallidos tampoco se mostrarán en el informe.

Etiquetas del rol

Hay 4 etiquetas que puedes usar para definir el modo del rol. Si no se especifican etiquetas, se realizará una actualización completa:

  • report: solo ejecuta las verificaciones previas y genera un informe de estado (por defecto, esta etiqueta siempre se ejecutará)
  • staging: realiza todas las tareas posibles para preparar una actualización, pero no causará interrupciones; en la mayoría de los casos esto significa que solo se requiere un reinicio después del proceso de preparación
  • upload: solo realiza el proceso de carga de archivos, solo se cargarán los archivos necesarios para la actualización
  • upgrade: realiza todos los pasos necesarios para completar la actualización

Variables de rol predeterminadas

Las siguientes variables están configuradas por defecto, pero pueden ser reemplazadas si es necesario:

  • auto_configure_pre_requisites: activa la auto-configuración de los requisitos previos (ex. habilitar el servidor SCP) POR DEFECTO = verdadero

Variables calculadas

Las siguientes variables se calcularán en base a las variables dadas y la configuración en ejecución:

  • running_os_is_compliant: indica si el sistema operativo en ejecución ya es compatible o no (comparado con wanted_os_version)
  • boot_os_is_compliant: indica si el sistema operativo de arranque ya es compatible o no (comparado con wanted_boot_version)
  • scp_is_enabled: indica si el SCP está habilitado o no

Proceso de actualización

Dependiendo de las etiquetas, el proceso de actualización puede ser diferente. Por defecto, se realizará una actualización completa.

Modo de informe

En modo de informe, solo haremos algunas verificaciones básicas y generaremos un informe que indica si el router debe ser actualizado y si hay suficiente espacio en disco.

Uso:

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

Tareas del Playbook:

  • conectar y obtener datos
  • establecer datos adicionales para determinar el estado del router y el proceso de actualización
  • mostrar un mensaje de depuración para cada host

Detalles:

  • tareas:
  • oneos_upgrader : RECOGER DATOS > nombre_host ETIQUETAS: [siempre]
  • oneos_upgrader : RECOGER DATOS > obtener detalles del sistema ETIQUETAS: [siempre]
  • oneos_upgrader : RECOGER DATOS > obtener detalles de ssh ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > obtener estadísticas del archivo os deseado ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > estadísticas_os_deseado ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > obtener estadísticas del archivo de arranque deseado ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > estadísticas_archivo_arranque_deseado ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > obtener estadísticas del archivo de recuperación deseado ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > estadísticas_archivo_recuperación_deseado ETIQUETAS: [siempre]
  • oneos_upgrader : RECOGER DATOS > mostrar memoria ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > dato_memoria ETIQUETAS: [siempre]
  • oneos_upgrader : PRINCIPAL > ejecutar tareas específicas de gather_facts ETIQUETAS: [informe, preparación, actualización]
  • oneos_upgrader : ESTABLECER DATO > calcular si se requieren actualizaciones ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > scp_is_enabled ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > verificar si los archivos existen en disco o banco de software ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > requisito de carga de archivos ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > archivo_recuperación_existe_en_disco ETIQUETAS: [siempre]
  • oneos_upgrader : ESTABLECER DATO > cálculo_disco_espacio_suficiente ETIQUETAS: [siempre]
  • oneos_upgrader : INFORME > obtener detalles del host ETIQUETAS: [informe, preparación, actualización]
  • DEPURACIÓN > salida de todas las variables ETIQUETAS: [siempre]
  • Plantilla de un archivo a /etc/file.conf ETIQUETAS: [siempre]

Se prevé una plantilla para generar un informe general en CSV. Dado que esto se supone que se ejecutará como la última tarea en el play, debe ser llamado desde dentro del playbook.

  post_tasks:
    - name: INFORME > guardar en archivo
      ansible.builtin.template:
        src: "roles/oneos_upgrader/templates/report_overview.j2"
        dest: report.txt
      tags:
        - siempre

Modo de preparación

En modo de preparación, se realizan todas las verificaciones necesarias, se cargan todos los archivos y se prepara la actualización sin causar interrupciones.

Uso:

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

Tareas del Playbook:

  • conectar y obtener datos
  • establecer datos adicionales para determinar el estado del router y el proceso de actualización
  • si no hay espacio en el dispositivo, se eliminarán archivos antiguos
    • recalcular espacio en disco
  • si hay trabajos de pre-configuración, se implementarán (ex. habilitar SCP)
  • cargar archivos si es necesario
    • si no hay espacio para todos los archivos, primero se copiarán los archivos de arranque
  • se está preparando el banco de software o el archivo de arranque SI no hay actualizaciones pendientes de imágenes de arranque

Si se requieren múltiples actualizaciones (BOOT + RECOVERY + OS), no es posible preparar todo al mismo tiempo. Si hay suficiente espacio en disco para todos los archivos, la carga se completará. La carga del archivo solo se puede hacer en el primer archivo (ex. BOOT) porque requiere un reinicio para continuar. Así que las actualizaciones de múltiples etapas deben hacerse paso a paso o se realizarán los pasos adicionales durante el proceso de actualización.

Acerca del proyecto

Ansible role for upgrading Ekinops-OneAccess OneOS devices

Instalar
ansible-galaxy install mwallraf.oneos_upgrader
Licencia
Unknown
Descargas
93
Propietario