はじめに
このドキュメントでは、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 ジョブを確認します。
アーカイブ収集がトリガーされるたびにConfiguration Archive Collectionジョブが作成され、そのプロセスに関連付けられます。そのジョブのステータスをAdministration > Dashboards > Job Dashboardで確認してから、User Jobs > Configuration Archive Collectionに移動します。
デバイスごとに1つのジョブを使用すると、特定のノードでコレクションアーカイブが失敗した場合に、Configuration Archive Collectionジョブのトラブルシューティングが容易になります。

|
手順 3 |
障害がないか確認します。
構成アーカイブコレクションでエラーが発生する理由はさまざまです。(NCS2000に適用される)一部の例は、この手順で後述する「トラブルシューティング:設定アーカイブ」コレクションに記載されています。
|
3. EPNMからのコンフィギュレーションファイルのダウンロード
手順
手順 1 |
Inventory > Device Management > Configuration Archiveの順に選択します
|
手順 2 |
コンフィギュレーションファイルをダウンロードするデバイスの横にあるチェックボックスをオンにします。
|
手順 3 |
Export Latest Archivesドロップダウンリストから、コンフィギュレーションファイルをダウンロードするためのオプションを1つ選択します。
-
Sanitized:ダウンロードされたファイルで、デバイスのクレデンシャルパスワードがマスクされています。
-
Unsanitized:デバイスのクレデンシャルパスワードは、ダウンロードされたファイルで確認できます。
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 |
EPNMで、ユーザsftpuserのリポジトリを作成します。
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ドロップダウンリストから、以前にConfigure Repositoryセクションで設定したexternal_config_backup repositoryを選択します。

Backup Repositoryウィンドウには、次の2つのチェックボックスもあります。
- 最新の構成のみをエクスポート:最新のファイルのみをエクスポートする場合は、このオプションをクリックします。それ以外の場合、EPNMは「Archives」タブにリストされているすべてのファイルをエクスポートします。
- 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ツールを使用して行われます)が非セキュアに設定されています。 これはSecureとして設定する必要があります。

これを修正するには、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