Im0.cisco_upgrader

im0.cisco_upgrader

Este rol ayuda a implementar nuevas imágenes en una variedad de dispositivos de red de Cisco.

Requisitos

  • Ansible 2.7+
  • Motor de Red de Ansible
  • Router o switch de Cisco adecuado para actualizar
  • Imágenes ios/catos adecuadas para tu dispositivo
  • Módulo scp de Python pip instalado

Variables del Rol

  • Image: El nombre del archivo de imagen.
  • ImagePath: La ruta al archivo de imagen. Predeterminado: ./.
  • State: Puede ser stage para preparar la imagen para un reinicio manual (y configuraciones de inicio), o upgrade, que preparará y reiniciará el dispositivo.
  • UpgradeType: Los tipos de actualización son ios-bin-upgrade, cat-software-install o auto.
  • BackupImage: Verdadero o falso, si se realiza una copia de seguridad de la imagen existente del switch. Solo ios-bin-upgrade. Predeterminado: False.

Notas Importantes

Advertencia: Este rol realiza cambios en tu dispositivo de red y reinicia el dispositivo. Causará una interrupción.
Asegúrate de haberlo probado exhaustivamente en un dispositivo de laboratorio antes de ejecutarlo en dispositivos de producción. Usa bajo tu propio riesgo.

Time-outs: Probablemente necesitarás ajustar algunas variables de configuración de ansible, específicamente:

timeout = 60

[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800

De lo contrario, varias tareas, como el cálculo de la suma de verificación md5, pueden agotarse con un error como este:

El rastreo completo es:
ADVERTENCIA: El rastreo a continuación puede *no* estar relacionado con la falla real.
  Archivo "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", línea 145, en run_commands
    return connection.run_commands(commands=commands, check_rc=check_rc)
  Archivo "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", línea 182, en __rpc__
    raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)

fatal: [device]: FALLÓ! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "auth_pass": null,
            "authorize": null,
            "commands": [
                "verify /md5 flash:c2960-lanbasek9-mz.150-2.SE11.bin"
            ],
            ... omitido ...
        }
    },
    "msg": "se activó el tiempo de espera del comando, el valor de tiempo de espera es 10 segundos.\nConsulta las opciones de configuración de tiempo de espera en la Guía de Depuración y Solución de Problemas de Red."
}

scp: La imagen se transfiere actualmente usando scp. scp está habilitado en el dispositivo si aún no está habilitado. Las futuras actualizaciones pueden habilitar tftp como un método de transferencia.

Switches en pila: La actualización de switches en pila no ha sido probada ni provisionada específicamente.

Suma de verificación MD5: Se asume la integridad de la imagen binaria proporcionada. Es tu responsabilidad asegurarte de que la imagen que estás utilizando no esté comprometida.

En el momento de la ejecución, se captura una suma de verificación MD5 local y luego se compara con una suma de verificación md5 posterior a la transferencia para asegurar que la transferencia de datos fue exitosa.

Ejemplo de Playbook

Preparar una imagen para reinicio manual:

    - hosts: switches
      gather_facts: no
      roles:
         - { role: im0.cisco_upgrader, 
               Image: 'c2960-lanbasek9-mz.122-55.SE12.bin',
               State: stage,
               ImagePath: '/tmp',
               UpgradeType: 'ios-bin-upgrade',
               BackupImage: True
            }

Actualizar dispositivo y reiniciar:

- name: Actualizar dispositivo
  include_role:
    name: im0.cisco_upgrader
  vars:
    Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
    State: 'upgrade'
    ImagePath: '/tmp'
    UpgradeType: 'ios-bin-upgrade'

Detalles de UpgradeType

Hay múltiples métodos para actualizar dispositivos de red de Cisco, dependiendo de la marca y el modelo.

Estilos de actualización actualmente soportados:

Actualmente no soportados:

  • nxos-upgrade
  • ios-xr-upgrade

Mención especial:

  • auto, intenta seleccionar el método de actualización adecuado basado en modelos conocidos/puestos a prueba. Actualmente: C881, C2960, C3750.

Limitaciones

Considera las siguientes limitaciones como una lista de tareas pendientes. Las limitaciones actuales incluyen:

  • No admite rutas de sistema de archivos distintas a flash:.
  • Solo admite actualizaciones de ios y catos.
  • Solo admite el método de copia scp.
  • La detección automática de método de actualización actualmente no está implementada.
  • Necesita un mejor control sobre los tiempos de espera para que el dispositivo vuelva a estar en línea. Introducir un nuevo parámetro para controlar esto.

Licencia

GPLv3

Información del Autor

  • John Imison
  • Matthew Eason
Acerca del proyecto

Upgrade a number of different Cisco network devices operating systems

Instalar
ansible-galaxy install Im0.cisco_upgrader
Licencia
Unknown
Descargas
25k
Propietario