cisco_upgrader
im0.cisco_upgrader
Эта роль помогает в развертывании новых образов на различных устройствах Cisco.
Требования
- Ansible 2.7+
- Ansible Network Engine
- Подходящий маршрутизатор или коммутатор Cisco для обновления
- Подходящие образы ios/catos для вашего устройства
- Установлен модуль Python pip
scp
Переменные роли
Image
: Имя файла образа.ImagePath
: Путь к имени файла образа. По умолчанию:./
.State
: Либоstage
для подготовки образа к будущей ручной перезагрузке (и настройкам загрузки), либоupgrade
, который подготовит и перезагрузит устройство.UpgradeType
: Типы обновления - этоios-bin-upgrade
,cat-software-install
илиauto
.BackupImage
: True или False, сделать резервную копию существующего образа с коммутатора. Только дляios-bin-upgrade
. По умолчанию:False
.
Важные замечания
Предупреждение: Эта роль вносит изменения в ваше сетевое устройство и перезагружает его. Это вызовет отключение.
Убедитесь, что вы тщательно протестировали на лабораторном устройстве перед запуском на производственных устройствах. Используйте на свой страх и риск.
Таймауты: Вам, вероятно, потребуется настроить некоторые переменные конфигурации ansible, в частности:
timeout = 60
[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800
В противном случае различные задачи, такие как расчет контрольной суммы md5, могут истечь со следующей ошибкой:
Полный трейсбек:
ПРЕДУПРЕЖДЕНИЕ: Ниже приведённый трейсбек может *не* быть связан с фактическим сбоем.
Файл "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", строка 145, в run_commands
return connection.run_commands(commands=commands, check_rc=check_rc)
Файл "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", строка 182, в __rpc__
raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)
фатальная ошибка: [device]: НЕУСПЕШНО! => {
"changed": false,
"invocation": {
"module_args": {
"auth_pass": null,
"authorize": null,
"commands": [
"verify /md5 flash:c2960-lanbasek9-mz.150-2.SE11.bin"
],
... опущено ...
}
},
"msg": "время выполнения команды истекло, значение таймаута - 10 секунд.\nСмотрите параметры настройки таймаута в Руководстве по отладке и устранению неполадок сети."
scp: Образ в настоящее время передается с использованием scp
. scp
включен на устройстве, если он не был включен ранее. В будущих обновлениях может быть включен tftp
как метод передачи.
Коммутаторы стека: Обновление стековых коммутаторов не было специально протестировано или предусмотрено.
Контрольная сумма MD5: Целостность предоставленного бинарного образа предполагается. Вы несете ответственность за то, чтобы убедиться, что используемый вами образ не был скомпрометирован.
Во время выполнения захватывается локальная контрольная сумма MD5, а затем контрольная сумма md5 после передачи сравнивается, чтобы убедиться, что передача данных прошла успешно.
Пример плейбука
Подготовить образ для ручной перезагрузки:
- 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
}
Обновить устройство и перезагрузить:
- name: Upgrade device
include_role:
name: im0.cisco_upgrader
vars:
Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
State: 'upgrade'
ImagePath: '/tmp'
UpgradeType: 'ios-bin-upgrade'
Детали UpgradeType
Существует несколько методов для обновления сетевых устройств Cisco, в зависимости от модели и производителя.
В настоящее время поддерживаемые стили обновления:
ios-bin-upgrade
, следует инструкциям по обновлению, основанным на сайте 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
, следует инструкциям по обновлению, основанным на сайте 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
В настоящее время не поддерживается:
nxos-upgrade
ios-xr-upgrade
Особое упоминание:
auto
, пытается выбрать соответствующий метод обновления на основе протестированных / известных моделей. В настоящее время: C881, C2960, C3750
Ограничения
Рассматривайте следующие ограничения как список задач. Текущие ограничения включают:
- Не поддерживает пути файловой системы, кроме
flash:
. - Поддерживает только обновления
ios
иcatos
. - Поддерживает только метод копирования
scp
. - Автоопределение метода обновления в настоящее время не реализовано.
- Необходим лучше контроль за временем ожидания, пока устройство не вернется в онлайн. Необходимо ввести новый параметр для управления этим.
Лицензия
GPLv3
Информация об авторе
- Джон Имисон
- Мэттью Исон
Upgrade a number of different Cisco network devices operating systems
ansible-galaxy install Im0/cisco_upgrader