Im0.cisco_upgrader
im0.cisco_upgrader
この役割は、さまざまなCiscoネットワークデバイスに新しい画像を展開するのを支援します。
要件
- Ansible 2.7以上
- Ansibleネットワークエンジン
- アップグレードするための適切なCiscoルーターまたはスイッチ
- デバイスに適したios/catos画像
- Python pip
scp
モジュールがインストールされていること
役割変数
Image
: 画像のファイル名。ImagePath
: 画像ファイルのパス。 デフォルト:./
。State
: 画像を手動で再起動するために「ステージ」するか、デバイスを「アップグレード」して再起動します。UpgradeType
: アップグレードタイプは、ios-bin-upgrade
、cat-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ネットワークデバイスのアップグレード方法は、機種によって異なります。
現在サポートされているアップグレードスタイル:
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
制限
以下の制限をtodoリストと考えてください。 現在の制限には以下が含まれます:
flash:
以外のファイルシステムパスをサポートしていない。ios
およびcatos
のアップグレードのみをサポート。scp
コピー方法のみをサポート。- 自動検出のアップグレード方法は現在未実装。
- デバイスがオンラインに戻るまでの待機時間の管理が不十分。 これを管理するための新しいパラメータを導入する必要があります。
ライセンス
GPLv3
著者情報
- John Imison
- Matthew Eason