Im0.cisco_upgrader

im0.cisco_upgrader

这个角色用于在一系列思科网络设备上部署新镜像。

要求

  • Ansible 2.7+
  • Ansible 网络引擎
  • 合适的思科路由器或交换机进行升级
  • 您设备的合适 ios/catos 镜像
  • 已安装 Python pip scp 模块

角色变量

  • Image: 镜像文件名。
  • ImagePath: 镜像文件名的路径。 默认值: ./
  • State: 可以选择 stage 镜像以便未来手动重启(和启动设置),或 upgrade,这将会进行镜像准备并重启设备。
  • UpgradeType: 升级类型为 ios-bin-upgradecat-software-installauto
  • BackupImage: 布尔值,表示是否备份交换机上现有的镜像。仅适用于 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)

致命错误: [设备]: 失败! => {
    "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: 升级设备
  include_role:
    name: im0.cisco_upgrader
  vars:
    Image: 'c2960-lanbasek9-mz.122-55.SE12.bin'
    State: 'upgrade'
    ImagePath: '/tmp'
    UpgradeType: 'ios-bin-upgrade'

UpgradeType 详细信息

根据设备的品牌和型号,有多种升级思科网络设备的方法。

当前支持的升级方式:

当前不支持的:

  • nxos-upgrade
  • ios-xr-upgrade

特别提及

  • auto,尝试根据测试/已知型号选择适当的升级方法。 当前支持的型号: C881、C2960、C3750

限制

请将以下限制视为待办事项列表。当前的限制包括:

  • 不支持 flash: 之外的文件系统路径。
  • 仅支持 ioscatos 的升级。
  • 仅支持 scp 复制方法。
  • 自动检测升级方法目前未实现。
  • 需要更好地控制设备重启后的等待时间。 引入一个新参数进行控制。

许可证

GPLv3

作者信息

  • John Imison
  • Matthew Eason
关于项目

Upgrade a number of different Cisco network devices operating systems

安装
ansible-galaxy install Im0.cisco_upgrader
许可证
Unknown
下载
25k
拥有者