Skip to content

Cisco ACI バージョンアップ時は事前に Pre-upgrade Validation を実施する

Cisco ACI の OS バージョン変更時は例えば下記などに留意する必要があります。

  • アップグレードパスは満たしているか? (直接アップグレード可能か? 中間バージョンの経由が必要か?)
  • 利用している APIC / スイッチはアップグレード先 OS でサポートされているか? (変更先の OS バージョンで「APIC やスイッチがサポートされていない」ということが無いか?)
  • アップグレード前後で振る舞いの変更が無いか? (UI の変更ならまだしも、「挙動が変わってしまう」「機能が廃止される」ということが無いか?)

その他にも「確認しておくのが好ましい項目」は多数あります。 こういった注意点は下記などに記載されています。

Cisco ACI Upgrade Checklist

Cisco ACI Upgrade Checklist はチェックリスト形式になっており、バージョン変更前に確認すべき項目がまとめられています。

file

ACI-Pre-Upgrade-Validation-Script

ACI は標準機能として、OS バージョン変更前に「ある程度の必要項目を満たしているか?」を確認する機能を持っています。 ただ、この標準機能以外にも GitHub で ACI-Pre-Upgrade-Validation-Script というスクリプトが OSS として公開されています。 このスクリプトは ACI の全てのバージョンに対して実行可能であり、確認可能な項目と詳細は Validation Reference に記載されています。

このスクリプトは「APIC 上で直接実行する」ことを前提に作成されているようで、まずは「スクリプトを APIC 上に保存する」必要があります。 APIC が「DNS 設定済み」且つ「インターネットにアクセス可能」であれば APIC 上で curl を実行して GitHub から直接、ダウンロードすることが出来ます。 ですが、この条件を満たさない場合は例えば以下のように一旦、スクリプトを作業用 PC へダウンロードし、それを SCP で APIC へアップロードします。

1
2
curl https://raw.githubusercontent.com/datacenter/ACI-Pre-Upgrade-Validation-Script/master/aci-preupgrade-validation-script.py -O
scp aci-preupgrade-validation-script.py admin@10.0.0.1:/data/techsupport/

スクリプトを APIC 上に保存したら実行します。 実行例は以下の通りです。 このスクリプトは 1 分もかからず、終了します。

apic# bash
admin@apic:~> cd /data/techsupport/
admin@apic:techsupport> python aci-preupgrade-validation-script.py
    ==== 2024-06-15T22-06-55+0900, Script Version v2.1.0  ====

!!!! Check https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script for Latest Release !!!!

To use a non-default Login Domain, enter apic#DOMAIN\\USERNAME
Enter username for APIC login          : admin
Enter password for corresponding User  :

Checking current APIC version...6.0(5j)
(snip)
[Check 62/64] Invalid FEX Relation Source...                                                                                          PASS
[Check 63/64] LLDP Custom Interface Description Defect...                                                                             PASS
[Check 64/64] Route-map Community Match Defect...                                                                                     PASS

=== Summary Result ===

PASS                        : 54
FAIL - OUTAGE WARNING!!     :  3
FAIL - UPGRADE FAILURE!!    :  1
MANUAL CHECK REQUIRED       :  1
POST UPGRADE CHECK REQUIRED :  0
N/A                         :  5
ERROR !!                    :  0
TOTAL                       : 64

    Pre-Upgrade Check Complete.
    Next Steps: Address all checks flagged as FAIL, ERROR or MANUAL CHECK REQUIRED

    Result output and debug info saved to below bundle for later reference.
    Attach this bundle to Cisco TAC SRs opened to address the flagged checks.

      Result Bundle: /data/techsupport/preupgrade_validator_2024-06-15T22-06-55+0900.tgz

==== Script Version v2.1.0 FIN ====

スクリプトの実行結果は標準出力に表示されますが、同じ内容が .tgz ファイルとしても保存されます。 環境によってファイルサイズは上下する可能性がありますが、今回の検証環境では 32K バイト程度でした。

このファイルを展開すると以下のように幾つかのファイルが含まれています。 標準出力に表示されたものと同じ内容は .txt ファイルに含まれています。 これを JSON 形式で保存したものが .json ファイルとして保存されます。 通常は .txt ファイルを見れば十分ですが、ツール実行時のデバッグログが .log ファイルとして保存されます (通常、.log ファイルを閲覧する必要はありません)。

$ tar zxvf preupgrade_validator_2024-06-15T22-06-55+0900.tgz
x preupgrade_validator_logs/
x preupgrade_validator_logs/preupgrade_validator_debug.log
x preupgrade_validator_logs/preupgrade_validator_2024-06-15T22-06-55+0900.json
x preupgrade_validator_logs/preupgrade_validator_2024-06-15T22-06-55+0900.txt

ACI-Pre-Upgrade-Validation-Script の確認項目

前述の通り、ACI-Pre-Upgrade-Validation-Script が確認する項目は Validation Reference に記載されています。 このメモを作成している時点では 64 項目をチェックしており、詳細は下記の通りです。

file