Im0.cisco_upgrader

im0.cisco_upgrader

この役割は、さまざまなCiscoネットワークデバイスに新しい画像を展開するのを支援します。

要件

  • Ansible 2.7以上
  • Ansibleネットワークエンジン
  • アップグレードするための適切なCiscoルーターまたはスイッチ
  • デバイスに適したios/catos画像
  • Python pip scpモジュールがインストールされていること

役割変数

  • Image: 画像のファイル名。
  • ImagePath: 画像ファイルのパス。 デフォルト: ./
  • State: 画像を手動で再起動するために「ステージ」するか、デバイスを「アップグレード」して再起動します。
  • UpgradeType: アップグレードタイプは、ios-bin-upgradecat-software-install、またはautoのいずれかです。
  • BackupImage: スイッチから既存の画像をバックアップするかどうか。 ios-bin-upgradeのみ。 デフォルト: False

重要な注意事項

警告: この役割は、ネットワークデバイスに変更を加え、デバイスを再起動します。 これにより停止が発生します
本番デバイスで実行する前に、ラボデバイスで十分にテストしてください。 リスクを承知の上で使用してください。

タイムアウト: いくつかのansible設定変数を調整する必要があるかもしれません。特に:

timeout = 60

[persistent_connection]
command_timeout = 1800
persistent_connect_timeout = 1800

さもなければ、md5チェックサム計算などのさまざまなタスクが、次のようなエラーでタイムアウトすることがあります:

完全なトレースバックは次のとおりです:
WARNING: 以下のトレースバックは実際の失敗とは関連していないかもしれません。
  File "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/network/ios/ios.py", line 145, in run_commands
    return connection.run_commands(commands=commands, check_rc=check_rc)
  File "/tmp/ansible_ios_command_payload_VB1GqY/ansible_ios_command_payload.zip/ansible/module_utils/connection.py", line 182, in __rpc__
    raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code)

致命的: [device]: FAILED! => {
    "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の詳細

Ciscoネットワークデバイスのアップグレード方法は、機種によって異なります。

現在サポートされているアップグレードスタイル:

現在サポートされていないもの:

  • nxos-upgrade
  • ios-xr-upgrade

特別な言及

  • autoは、テスト済みまたは既知のモデルに基づいて適切なアップグレード方法を選択しようとします。 現在: C881, C2960, C3750

制限

以下の制限をtodoリストと考えてください。 現在の制限には以下が含まれます:

  • flash:以外のファイルシステムパスをサポートしていない。
  • iosおよびcatosのアップグレードのみをサポート。
  • scpコピー方法のみをサポート。
  • 自動検出のアップグレード方法は現在未実装。
  • デバイスがオンラインに戻るまでの待機時間の管理が不十分。 これを管理するための新しいパラメータを導入する必要があります。

ライセンス

GPLv3

著者情報

  • John Imison
  • Matthew Eason
プロジェクトについて

Upgrade a number of different Cisco network devices operating systems

インストール
ansible-galaxy install Im0.cisco_upgrader
ライセンス
Unknown
ダウンロード
25k
所有者