この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章の内容は、次のとおりです。
PowerOn Auto Provisioning(POAP)は、ネットワークに初めて導入されたデバイスに対して、ソフトウェア イメージのアップグレードとコンフィギュレーション ファイルのインストールのプロセスを自動化します。
POAP 機能を備えたデバイスは、起動時にスタートアップ コンフィギュレーションが見つからないと、POAP モードを開始し、DHCP サーバを検索し、自分のインターフェイス IP アドレス、ゲートウェイ、および DNS サーバ IP アドレスを自力で設定します。デバイスは TFTP サーバの IP アドレスまたは HTTP サーバの URL を取得し、コンフィギュレーション スクリプトをダウンロードします。このスクリプトはスイッチをイネーブルにして、適切なソフトウェア イメージとコンフィギュレーション ファイルをダウンロードしてインストールします。
(注) | DHCP 情報は、POAP 処理中にだけ使用されます。 |
POAP には、次のネットワーク インフラが必要です。
インターフェイス IP アドレス、ゲートウェイ アドレス、およびドメイン ネーム システム(DNS)サーバをブートストラップする DHCP サーバ。
ソフトウェア イメージのインストールと設定のプロセスを自動化するコンフィギュレーション スクリプトが保管されている TFTP サーバ。
必要なソフトウェア イメージとコンフィギュレーション ファイルが保管されている 1 台以上のサーバ。
シスコから提供される参照スクリプトでは、次の機能がサポートされています。
スイッチ固有の識別子(シリアル番号など)を取得します。
スイッチ上に nx-os ソフトウェア イメージがまだ存在しない場合は、ファイルをダウンロードします。nx-os イメージがスイッチ上にインストールされ、次回のリブート時に使用されます。
ダウンロードされた設定がスイッチの次回のリブート時に適用されるようにスケジュールします。
スタートアップ コンフィギュレーションとして設定を保存します。
Python プログラミング言語と Tool Command Language(tcl)を使用して開発されたコンフィギュレーション スクリプトのサンプルが用意されています。これらのスクリプトのいずれかを、自分のネットワーク環境に合わせてカスタマイズできます。次のリンクで Python スクリプトにアクセスして、Cisco Nexus 9000 シリーズ スイッチ上の POAP を実行できます。https://github.com/datacenter/nexus9000/tree/master/nx-os/poap。
Python プログラミング言語は CLI Commands を実行できる 2 つの API を使用します。これらの API については、次の表で説明します。これらの API の引数は CLI コマンドの文字列です。
API |
説明 |
---|---|
cli() |
制御文字、特殊文字を含む CLI コマンドの未処理の出力を返します。 |
clid() |
XML をサポートする CLI コマンドの場合、この API はコマンド出力を Python ディクショナリとして返します。 この API は、show コマンドの出力の検索に役立ちます。 |
POAP プロセスには次のフェーズがあります。
これらのフェーズ内では、他の処理や分岐点が発生します。次に、POAP 処理のフロー図を示します。
デバイスの電源を初めて投入すると、デバイスは製造時にインストールされたソフトウェア イメージをロードし、起動に使用するコンフィギュレーション ファイルを探します。コンフィギュレーション ファイルが見つからなかった場合、POAP モードが開始されます。
起動中、POAP を中止して通常のセットアップに進むかどうかを確認するプロンプトが表示されます。POAP を終了することも、続行することもできます。
(注) | POAP を続行する場合、ユーザの操作は必要ありません。POAP を中止するかどうかを確認するプロンプトは、POAP 処理が完了するまで表示され続けます。 |
POAP モードを終了すると、通常のインタラクティブなセットアップ スクリプトが開始されます。POAP モードを続行すると、すべての前面パネルのインターフェイスはデフォルト設定で設定されます。
スイッチは、前面パネルのインターフェイスまたは MGMT インターフェイスで、DHCP サーバからの DHCP オファーを要請する DHCP 検出メッセージを送信します。(次の図を参照してください)。Cisco Nexus スイッチ上の DHCP クライアントは、クライアント ID オプションにスイッチ シリアル番号を使用して、それ自体を DHCP サーバに識別させます。DHCP サーバはこの ID を使用して、IP アドレスやスクリプト ファイル名などの情報を DHCP クライアントに返すことができます。
POAP には、3600 秒(1 時間)以上の DHCP リース期間が必要です。POAP は、DHCP リース期間を確認します。DHCP リース期間が 3600 秒(1 時間)に満たない場合、POAP は DHCP ネゴシエーションを実行しません。
要件を満たす複数の DHCP オファーが受信された場合は、1 つのオファーがランダムに選択されます。デバイスは、選択された DHCP サーバとの DHCP ネゴシエーション(要求と確認応答)を実行し、DHCP サーバはスイッチに IP アドレスを割り当てます。POAP 処理の後続のステップでエラーが発生すると、IP アドレスは DHCP に戻されます。
要件を満たす DHCP オファーが存在しない場合、スイッチは DHCP ネゴシエーション(要求と確認応答)を実行せず、IP アドレスは割り当てられません。
Cisco NX-OS Release 7.0(3)I4(1) から、POAP はブレークアウトされたポートのいずれかの背後にある DHCP サーバ を検出するため、ポートを動的にブレークアウトします。以前はブレークアウト ケーブルがサポートされていなかったため、POAP に使用される DHCP サーバは、通常のケーブルに直接接続する必要がありました。
POAP はどのブレークアウト マップ(たとえば、10gx4、50gx2、25gx4、10gx2)が DHCP サーバに接続されたリンクを立ち上げるかを決定します。いずれのポートでもブレークアウトがサポートされていない場合、POAP は動的なブレークアウト プロセスをスキップします。ブレークアウト ループの完了後、POAP は 通常どおり DHCP 検出フェーズを進めます。
(注) | 動的なブレークアウトの詳細については、デバイスのインターフェイス コンフィギュレーション ガイドを参照してください。 |
デバイスが DHCP 確認応答の情報を使用してデバイス自体をブートストラップした後で、スクリプト ファイルが TFTP サーバからダウンロードされます。
スイッチは、コンフィギュレーション スクリプトを実行します。これにより、ソフトウェア イメージのダウンロードとインストール、およびスイッチ固有のコンフィギュレーション ファイルのダウンロードが行われます。
ただし、この時点では、コンフィギュレーション ファイルはスイッチに適用されません。スイッチ上で現在実行中のソフトウェア イメージがコンフィギュレーション ファイル内の一部のコマンドをサポートしていない可能性があるためです。新しいソフトウェア イメージがインストールされた場合、スイッチのリブート後にそのソフトウェア イメージの実行が開始されます。その時点でスイッチにコンフィギュレーションが適用されます。
(注) | スイッチの接続が切断されると、スクリプトは停止し、スイッチはオリジナルのソフトウェア イメージとブートアップ変数をリロードします。 |
スイッチが再起動し、アップグレードされたソフトウェア イメージ上でコンフィギュレーションが適用(リプレイ)されます。その後、スイッチは、実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。
POAP 設定時の注意事項および制約事項は次のとおりです。
POAP が機能するためには、スイッチ ソフトウェア イメージが POAP をサポートしている必要があります。
POAP では、スイッチが設定されて動作可能になった後のスイッチのプロビジョニングをサポートしません。スタートアップ コンフィギュレーションのないスイッチの自動プロビジョニングだけがサポートされます。
仮想ポート チャネル(vPC)リンクでスタティック ポート チャネルを使用している vPC ペアの一部である Cisco Nexus デバイスを、POAP を使用してブートストラップする場合、Cisco Nexus デバイスは POAP の起動時にそのすべてのリンクをアクティブにします。vPC のリンクの端に二重接続されているデバイスは、Cisco Nexus デバイスに接続されているポート チャネル メンバ リンクにそのトラフィックの一部またはすべての送信を開始する場合があり、トラフィックが失われることがあります。
この問題を回避するには、リンクが POAP を使用してブートストラップされている Cisco Nexus デバイスへのトラフィックの転送を誤って開始しないように、vPC リンクにリンク集約制御プロトコル(LACP)を設定します。
POAP を使用して、LACP ポート チャネル経由で Cisco Nexus 9000 シリーズ スイッチのダウンストリームに接続されている Cisco Nexus デバイスをブートストラップした場合、メンバー ポートをポート チャネルの一部としてバンドルできないと、Cisco Nexus 9000 シリーズ スイッチはデフォルトでそのメンバー ポートを一時停止します。この問題を回避するには、インターフェイス コンフィギュレーション モードから no lacp suspend-individual コマンドを使用して、そのメンバー ポートを一時停止しないように Cisco Nexus 9000 シリーズ スイッチを設定します。
重要な POAP の更新は syslog に記録され、シリアル コンソールから使用可能になります。
重大な POAP エラーは、ブートフラッシュに記録されます。ファイル名のフォーマットは date-time_poap_PID_[init,1,2].log です。ここで、date-time のフォーマットは YYYYMMDD_hhmmss で、PID はプロセス ID になります。
スクリプト ログは、ブートフラッシュ ディレクトリに保存されます。ファイル名のフォーマットは date-time_poap_PID_script.log です。ここで、date-time のフォーマットは YYYYMMDD_hhmmss で、PID はプロセス ID になります。
スクリプトのログ ファイルの形式を設定できます。スクリプト ファイルのログ形式は、スクリプトで指定されます。スクリプトのログ ファイルのテンプレートにはデフォルトの形式があります。ただし、スクリプト実行ログ ファイルに別の形式を選択できます。
POAP 機能にライセンスは必要ありません。デフォルトでイネーブルになっています。ただし、POAP 機能が正しく動作するためには、ネットワークの導入前に適切なライセンスがネットワーク内のデバイスにインストールされている必要があります。
(注) | 適切なライセンスをインストールすることなく、POAP 機能を一時的に使用するには、コンフィギュレーション ファイルで license grace-period コマンドを指定できます。この回避策では、適切なライセンスを後からインストールすることができます。 |
POAP を使用するようネットワーク環境がセットアップされていることを確認します。
設定を確認します。
POAP を使用してデバイスのブートストラップ後の設定を確認するには、次のコマンドのいずれかを使用します。
コマンド |
目的 |
---|---|
show running-config |
実行コンフィギュレーションを表示します。 |
show startup-config |
スタートアップ コンフィギュレーションを表示します。 |
Cisco NX-OS Release 7.0(3)I4(1) から導入された POAP パーソナリティ機能では、ユーザ データ、Cisco NX-OS およびサードパーティのパッチと構成ファイルのバックアップと復元が有効になりました。以前のリリースでは、POAP は設定の復元しかサポートできませんでした。
POAP パーソナリティは、スイッチのトラッキング対象ファイルによって定義されます。パーソナリティ ファイルの設定およびパッケージ リストは ASCII ファイルです。
バイナリ バージョンはパーソナリティ ファイルに記録されますが、実際のバイナリ ファイルは含まれません。バイナリ ファイルは一般的に大きいため、特定のポジトリからアクセスされます。
パーソナリティ ファイルは、通常、一時フォルダ内に抽出された .tar ファイルです。次に例を示します。
switch# dir bootflash: 042516182843personality # timestamp name
46985 Dec 06 23:12:56 2015 running-config Same as “show running-configuration” command.
20512 Dec 06 23:12:56 2015 host-package-list Package/Patches list
58056 Dec 06 23:12:56 2015 data.tar User Data
25 Dec 06 23:12:56 2015 IMAGEFILE Tracked image metadata
スイッチでローカルに、またはサーバでリモートに、POAP パーソナリティのバックアップを作成できます。スイッチから取得されるパーソナリティのバックアップは、同じモデルのスイッチでのみ復元される必要があります。
(注) | switch(config)# scheduler schedule name weeklybkup switch(config-schedule)# time weekly mon:07:00 switch(config-schedule)# job name personalitybkup switch(config-schedule)# exit switch(config)# scheduler job name personalitybkup switch(config-job)# personality backup bootflash:/personality-file ; copy bootflash:/personality-file tftp://10.1.1.1/ vrf management |
1.
personality
backup [bootflash:uri |
scp:uri]
コマンドまたはアクション | 目的 |
---|
POAP パーソナリティをシステムの実行中の状態から取得するか、認定された(スタートアップ)状態から取得するかを指定できます。
1.
configure terminal
2.
パーソナリティ
3.
track [running-state | startup-state | datalocal-directories-or-files]
4.
binary-locationsource-uri-folder
POAP スクリプト実行フェーズ中に、現在起動しているスイッチ イメージが Cisco NX-OS Release 7.0(3)I4(1) 以降である場合、スクリプト内のパーソナリティ モジュールは POAP パーソナリティを復元します。必要に応じて、正しいソフトウェア イメージにスイッチをアップグレードします。
(注) | パーソナリティの復元は、パーソナリティのバックアップに使用するのと同じソフトウェア イメージで実行されます。新しいイメージへのアップグレードは、POAP パーソナリティの機能ではサポートされていません。新しいイメージにアップグレードするには、通常の POAP スクリプトを使用します。 |
(注) | 何らかの理由でパーソナリティ スクリプトの実行が失敗した場合(ブートフラッシュに十分なスペースがない、またはスクリプト実行エラーなど)、POAP プロセスは DHCP 検出フェーズに戻ります。 |
復元プロセスは次の処理を実行します。
ブートフラッシュ内のパーソナリティ ファイルを展開および解凍します。
パーソナリティ ファイルを検証します。
パーソナリティ ファイルからコンフィギュレーションおよびパッケージ リスト ファイルを読み取り、ダウンロードするバイナリのリストを作成します。
現在のイメージまたはパッチがパーソナリティ ファイルで指定されたものと異なる場合、バイナリをブートフラッシュにダウンロードし(存在しない場合)、正しいイメージをリブートして、パッケージまたはパッチを適用します。
「/」に関連するユーザ データ ファイルを解凍または展開します。
POAP パーソナリティのコンフィギュレーション ファイルをスタートアップ コンフィギュレーションにコピーします。
スイッチをリブートします。
次のサンプル POAP スクリプト(poap.py)には、パーソナリティ機能が含まれています。
#md5sum="b00a7fffb305d13a1e02cd0d342afca3" # The above is the (embedded) md5sum of this file taken without this line, # can be # created this way: # f=poap.py ; cat $f | sed '/^#md5sum/d' > $f.md5 ; sed -i "s/^#md5sum=.*/#md5sum=$(md5sum $f.md5 | sed 's/ .*//')/" $f # This way this script's integrity can be checked in case you do not trust # tftp's ip checksum. This integrity check is done by /isan/bin/poap.bin). # The integrity of the files downloaded later (images, config) is checked # by downloading the corresponding file with the .md5 extension and is # done by this script itself. from poap.personality import POAPPersonality import os # Location to download system image files, checksums, etc. download_path = "/var/lib/tftpboot" # The path to the personality tarball used for restoration personality_tarball = "/var/lib/tftpboot/foo.tar" # The protocol to use to download images/config protocol = "scp" # The username to download images, the personality tarball, and the # patches and RPMs during restoration username = "root" # The password for the above username password = "passwd754" # The hostname or IP address of the file server server = "2.1.1.1" # The VRF to use for downloading and restoration vrf = "default" if os.environ.has_key('POAP_VRF'): vrf = os.environ['POAP_VRF'] # Initialize housekeeping stuff (logs, temp dirs, etc.) p = POAPPersonality(download_path, personality_tarball, protocol, username, password, server, vrf) p.get_personality() p.apply_personality() sys.exit(0)