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, в зависимости от модели и производителя.

В настоящее время поддерживаемые стили обновления:

В настоящее время не поддерживается:

  • 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
Лицензия
Unknown
Загрузки
25000
Владелец