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 serstage
para preparar la imagen para un reinicio manual (y configuraciones de inicio), oupgrade
, que preparará y reiniciará el dispositivo.UpgradeType
: Los tipos de actualización sonios-bin-upgrade
,cat-software-install
oauto
.BackupImage
: Verdadero o falso, si se realiza una copia de seguridad de la imagen existente del switch. Soloios-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:
ios-bin-upgrade
, sigue las instrucciones de actualización basadas en el sitio web de Cisco: https://www.cisco.com/c/en/us/support/docs/routers/3800-series-integrated-services-routers/49044-sw-upgrade-proc-ram.html / https://www.cisco.com/c/en/us/support/docs/switches/catalyst-2950-series-switches/41542-191.htmlcat-software-install
, sigue las instrucciones de actualización basadas en el sitio web de Cisco: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3850/software/release/16-3/release_notes/ol-16-3-3850.html#pgfId-1110759
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
ycatos
. - 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
Upgrade a number of different Cisco network devices operating systems
ansible-galaxy install Im0.cisco_upgrader