はじめに
このドキュメントでは、Evolved Programmable Network Manager(EPNM)がデバイスのバックアップコンフィギュレーションファイルを中央から管理する方法について説明します。
背景説明
- このドキュメントは、EPNMバージョン6.1.1に基づいて作成されています
- バージョン5.1.xを実行しているシステムでは、Cisco Bug ID CSCvz12497が適用され、ジョブダッシュボードからのデバイス設定バックアップ外部ジョブの編集が防止されます
設定バックアップファイルの取得
デバイスからのバックアップをEPNMデータベースに保存するプロセスは「構成アーカイブ」と呼ばれ、定期的に実行するように調整できます。
次のブロック図は、ネットワークデバイスからバックアップファイルを取得するようにEPNMを設定する手順と、これらのファイルをEPNMから取得する3つのオプションを示しています。
ステップ1では、EPNMによるコンフィギュレーションファイルの収集の処理方法に関する全体的なプリファレンスを定義します。たとえば、デバイスごとに保持するコンフィギュレーションファイルの数や、設定の変更時にバックアップをトリガーするかどうかを選択できます。
その後、ステップ2で、設定ファイルを取得するためにEPNMがネットワークデバイスをポーリングする頻度を設定します。
ファイルがEPNMデータベースに保存されると、次の3つのオプションを使用して取得できます。
- EPNMからコンフィギュレーションファイルを直接ダウンロードします(ブロック図のステップ3)。
- コンフィギュレーションファイルを外部サーバにエクスポートします。この場合は、外部サーバを設定して、EPNMでリポジトリとして設定する必要があります(ステップ4、5、6、および7)
- REST APIを使用してコンフィギュレーションファイルを取得します(ステップ8)。この方式は、データベース形式のコンフィギュレーションファイルを使用するNCS2000デバイスでは機能しません
1. デバイスバックアップの設定
これにより、アーカイブがトリガーされたタイミング、デバイスごとに保持されるファイルの数、デバイスがネットワークに追加された直後にバックアップコンフィギュレーションファイルを自動的に作成するかどうかなど、アーカイブ収集のデフォルト動作が定義されます。
手順
手順 1 |
Administration > Settings > System Settingsの順に選択し、次にInventory > Configuration Archiveの順に選択して、アーカイブ収集のデフォルトの動作を定義します。 |
2. デバイス構成ファイルの取得頻度を構成する
このステップでは、EPNMがネットワーク内のデバイスからコンフィギュレーションファイルを取得する頻度を定義します。データベースに保持されるファイルの数は、「項目1:デバイスバックアップの設定」で定義した内容によって異なります。
手順
手順 1 |
アーカイブ・コレクションのパラメータを定義します。 Administration > Device Management > Configuration Archiveの順に選択し、Devicesタブで、設定を収集する必要があるデバイスを選択します。次に、Schedule Archive Collectionをクリックして、Recurrence領域のスケジュール設定を完了します。一度に複数のデバイスを選択し、コレクションの汎用名を定義するか、デバイスごとに1つのジョブを作成します(図に示すように、デバイス自体に関連するジョブの名前を指定します)。 多数のデバイスで操作を実行する場合は、本番環境に影響を与える可能性が最も低い時間にアーカイブをスケジュールします。 |
手順 2 |
Configuration Archive Collection ジョブを確認します。 アーカイブコレクションがトリガーされるたびに、設定アーカイブコレクションジョブが作成され、そのプロセスに関連付けられます。このジョブのステータスは、Administration > Dashboards > Job Dashboardで確認してから、User Jobs > Configuration Archive Collectionに移動します。 デバイスごとに1つのジョブを使用すると、特定のノードでコレクションアーカイブが失敗した場合に、コンフィギュレーションアーカイブコレクションジョブのトラブルシューティングが容易になります。 |
手順 3 |
障害がないか確認します。 構成アーカイブ収集の失敗には、さまざまな理由があります。(NCS2000に適用される)一部の例は、この手順で後述する「トラブルシューティング:設定アーカイブ」コレクションに記載されています。 |
3. EPNMからのコンフィギュレーションファイルのダウンロード
手順
手順 1 |
Inventory > Device Management > Configuration Archiveの順に選択します |
手順 2 |
コンフィギュレーションファイルをダウンロードするデバイスの横にあるチェックボックスをオンにします。 |
手順 3 |
Export Latest Archivesドロップダウンリストで、コンフィギュレーションファイルをダウンロードするためのオプションの1つを選択します。
-
サニタイズ:デバイスクレデンシャルパスワードは、ダウンロードされたファイル内でマスクされます。
-
サニタイズなし:デバイスクレデンシャルパスワードは、ダウンロードされたファイルで表示されます。
Unsanitizedオプションは、Role Based Access Control(RBAC)で設定されたユーザ権限に基づいて表示されます。NCS2000バックアップファイルはテキストベースのファイルではないため、これは無関係です。
この手順では、デバイスでサポートされている内容に応じて、スタートアップコンフィギュレーションの実行コンフィギュレーションまたはデータベースコンフィギュレーションを含む.zipファイルをダウンロードするように求められます。
|
4. 外部サーバのセットアップ
サポートされるリポジトリは、FTP、SSH FTP(SFTP)、およびネットワークファイルシステム(NFS)です。この例では、SFTPサーバがCentOS Linuxリリース8サーバで構築されていると仮定しています。サーバを作成する手順については、この記事では説明しません。
5. EPNMでの宛先リポジトリの設定(Cisco IOS)
このステップでは、外部サーバのパラメータがEPNMの「cars」シェルで定義されます。
手順
手順 1 |
Cisco EPN Manager CLI管理ユーザとしてサーバにログインします。「Cisco EPN ManagerサーバとのSSHセッションの確立」を参照してください。 |
手順 2 |
EPNMで、コンフィギュレーションモードに入ります。 epnm/admin# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
epnm/admin(config)# |
手順 3 |
ユーザsftpuserのリポジトリをEPNMに作成します。 epnm6/admin# conf t
Enter configuration commands, one per line. End with CNTL/Z.
epnm6/admin(config)# repository external_config_backup
epnm6/admin(config-Repository-external_config_backup)# url sftp://
//home/sftpuser
epnm6/admin(config-Repository-external_config_backup)# user sftpuser password plain xxxx
epnm6/admin(config-Repository-external_config_backup)# end
epnm6/admin# write memory
Generating configuration...
epnm6/admin# この例では、外部サーバ上のSFTP経由でデバイス設定をバックアップします。
- xxxxを「項目4:外部サーバの設定」で定義したパスワードで置き換えます。
- 外部サーバのIPアドレスの後にある二重のバー「//」は、SFTPサーバの「/」ディレクトリを示します。sftpuserディレクトリ/home/sftpuserを定義するには、二重のバーの後にhome/sftpuserを追加するだけです。
|
手順 4 |
リポジトリが外部サーバからアクセス可能かどうかをテストするには、showコマンドを使用します。 epnm/admin# show repository external_config_backup
% Repository is empty |
手順 5 |
EPNMシステムがハイアベイラビリティに設定されている場合は、非アクティブサーバでステップ3を繰り返します。 |
6. EPNM(GUI)での宛先リポジトリの設定
この手順では、外部サーバのパラメータはEPNM GUIで定義されます。
手順
手順 1 |
Inventory > Device Management > Configuration Archiveの順に選択し、DevicesタブでBackup to Repositoryボタンをクリックします。 Backup to Repositoryドロップダウンリストから、external_config_backup repositoryを選択します。このリポジトリは、以前にConfigure Repositoryセクションで設定されています。 「バックアップリポジトリ」ウィンドウには、次の2つのチェックボックスもあります。
- 最新の構成のみをエクスポート:最新のファイルのみをエクスポートする場合は、このオプションをクリックします。それ以外の場合、EPNMは「アーカイブ」タブにリストされているすべてのファイルをエクスポートします。
- GnuPGを使用したエクスポートファイルの暗号化:エクスポートされたファイルをGnuPGを使用して暗号化することもできます(GNU Privacy Guardは、暗号化のプライバシーと認証を提供するフリーでオープンソースのソフトウェアツールです)。GnuPGを使用して暗号化する場合は、暗号化パスワードを指定する必要があります。
|
手順 2 |
オプションで、Runをクリックすると、すぐにエクスポート処理が開始されます。それ以外の場合、定期的なアイテムのスケジュールと定義については、項目7を参照してください。EPNM GUIでのエクスポートジョブのスケジュールは、この手順の後半で行います。 このプロセスがトリガーされるたびにDevice Config Backup-Externalジョブが作成され、そのプロセスに関連付けられます。このジョブのステータスは、Administration > Dashboards > Job Dashboardで確認してから、System Jobs > Infrastructureで確認できます。 |
7. EPNM GUIでのエクスポートジョブのスケジュール
この手順では、コンフィギュレーションファイルを外部サーバにエクスポートするジョブがEPNM GUIで定義されます。
手順
手順 1 |
Administration > Dashboards > Job Dashboardの順に選択し、System Jobs > Infrastructureの順に選択します。 |
手順 2 |
Device Config Backup-Externalの横にあるチェックボックスをクリックし、Edit Scheduleボタンをクリックしてスケジュールを入力します。 |
手順 3 |
Submitボタンをクリックします。 |
手順 4 |
Device Configuration Backup-Externalハイパーリンクをクリックして、ジョブが正常に完了したかどうかを確認します。 |
8. REST APIを使用してコンフィギュレーションファイルを取得する
コンフィギュレーションファイル用のサービスには、複数のオプション(差分、一括エクスポート、バージョン管理など)があります。このセクションでは、ipアドレスx.x.x.xのデバイスに基づいてバックアップファイルを取得する方法の基本的な例を示します
最初に、デバイスに照会して、目的のコンフィギュレーションファイルのフィールドを取得する必要があります。これは、GET Configuration Versionsエンドポイント[2]を使用して実行できます。
GET https://
/webacs/api/v4/data/ConfigVersions?.full=true&deviceIpAddress=x.x.x.x
JSON応答から、このデバイスのスタートアップコンフィギュレーションと実行コンフィギュレーションの両方が使用可能であることがわかります。また、この場合のdiff TypeはOUT_OF_SYNCです。これは、コンフィギュレーションファイルの以前のバージョンと比べると、このバージョンが異なることを意味します。
{
"queryResponse": {
"@last": 0,
"@first": 0,
"@count": 1,
"@type": "ConfigVersions",
"@domain": "ROOT-DOMAIN",
"@requestUrl": "https://
/webacs/api/v4/data/ConfigVersions?.full=true&deviceIpAddress=x.x.x.x", "@responseType": "listEntityInstances", "@rootUrl": "https://
/webacs/api/v4/data", "entity": [ { "@dtoType": "configVersionsDTO", "@type": "ConfigVersions", "@url": "https://
/webacs/api/v4/data/ConfigVersions/5029722742", "configVersionsDTO": { "@displayName": "5029722742", "@id": 5029722742, "comments": "Archived By Job Name: Job_Configuration_Archive_Collection_10_10_00_021_AM_8_28_2024, Run Id: 6333919609", "createdAt": "2024-08-28T13:10:07.112Z", "createdBy": "root", "deviceIpAddress": "x.x.x.x", "deviceName": "CBR8", "diffType": "OUT_OF_SYNC", "fileInfos": { "fileInfo": [ { "fileId": 5029723744, "fileState": "STARTUPCONFIG", "fileType": "TEXT" }, { "fileId": 5029723743, "fileState": "RUNNINGCONFIG", "fileType": "TEXT" } ] }, "isFirst": true, "isLast": true, "outOfBand": true } } ] } }
次に、前の手順で取得したファイルIDを使用してコンフィギュレーションファイルをダウンロードします。実行コンフィギュレーションをダウンロードする場合は、次のエンドポイントを使用できます。
GET https://
/webacs/api/v4/op/configArchiveService/extractUnsanitizedFile?fileId=5029723743
応答には、実行コンフィギュレーションがテキスト形式で含まれています。
{
"mgmtResponse": {
"@domain": "ROOT-DOMAIN",
"@requestUrl": "https://
/webacs/api/v4/op/configArchiveService/extractUnsanitizedFile?fileId=5029723743", "@responseType": "operation", "@rootUrl": "https://
/webacs/api/v4/op", "extractFileResult": [ { "fileData":"!\n! Last configuration change at 18:12:00 EDT Sun Aug 25 2024 by rtp1\n!\nno issu config-sync policy bulk prc\nversion 16.12\nservice timestamps debug datetime msec\nservice timestamps log datetime localtime show-timezone\nservice password-encryption\nservice internal\nservice udp-small-servers\nservice sequence-
tcp\nnetconf-yang\nnetconf-yang cisco-ia snmp-community-string testing-mib-yang\nnetconf-yang ssh port 57000\nrestconf\nend" } ] } }
NCS2000の設定ファイルは、形式(DATABASE)が異なるため、この方式では取得できないことに注意してください。
設定アーカイブ収集のトラブルシューティング
[タイムアウト(Timeout)]
関連エラーメッセージ:Backup Database from device using https failed.HTTP要求の実行中にソケットがタイムアウトしました:読み取りがタイムアウトしました
根本原因:タイムアウトは、EPNMがデバイスからデータベースを取得する前に発生します。
構成アーカイブ・タスクでは、各フェッチ・アクティビティに対してデバイスCLIタイムアウト値が使用されます。1つの構成アーカイブ作業には、1 ~ 5個のファイルが必要です。その結果、全体的なジョブタイムアウト値は、全体的なジョブタイムアウト =ファイル数*デバイスのCLIタイムアウトというロジックを使用して決定されます。 CLIのタイムアウト値を設定するには、Inventory > Device Management > Network Devicesの順に選択し、デバイスの編集アイコンをクリックし、Telnet/SSHオプションを選択して、Timeoutフィールドに値を入力します。
NCS2000でEMSが「セキュア」として有効化されていない
関連エラーメッセージ:「Backup Database from device using https failed.Failed to establish telnet connection to device- Cause : Connection refused or timed-out.」というエラーメッセージが表示されます。
根本原因:NCS2000のEMSアクセスパラメータ(CTCツールを介してアクセスが実行される)が非セキュアに設定されています。 セキュアとして設定する必要があります。
これを修正するには、CTCツールを使用してNCS2000にアクセスし、Node view、Provisioningタブ、Security、Accessタブの順に移動し、EMS Accessの下のAccess StateをSecureに変更します。
デバイスIDがありません
関連エラーメッセージ:「Device archive(s) could not be found.デバイスのIDが無効であるか、システムから削除されている可能性があります。
根本原因:NCS2000デバイスがEPNMで削除されている場合、EPNMデータベース内のそのデバイスIDが変更されます。ただし、設定アーカイブ収集ジョブは引き続き古いIDを参照しているため、失敗します。回避策は、関連デバイスの設定アーカイブ収集ジョブを削除し、再作成することです。
結論
このドキュメントでは、EPNMデータベースに保存されているネットワークデバイスからコンフィギュレーションファイルにアクセスする方法について詳しく説明しました。
ファイルへのアクセスには、EPNMを介した直接アクセス、外部サーバへのエクスポート、およびREST APIを介したエクスポートの3つのオプションが与えられました。これらの方法を使用して、EPNMのノースバウンドインターフェイスに接続されたシステムで実行できるタスクを自動化できます。デバイスからコンフィギュレーションファイルを取得するためのトラブルシューティングのヒントも提供されています。
参考資料
[1] EPNM構成ガイド
https://www.cisco.com/c/en/us/td/docs/net_mgmt/epn_manager/5_1_3/user/guide/bk-cisco-evolved-programmable-network-manager-5-1-3-user-and-administrator-guide1/bk_CiscoEPNManager_4_0_UserAndAdministratorGuide_chapter_011.html#task_1237296
[2] EPNM REST APIオンラインリファレンス
https://<EPNM IPアドレス>/webacs/api/v1/index?_docs