简介
本文档介绍演进可编程网络管理器(EPNM)如何从其中心位置管理设备的备份配置文件。
背景信息
- 本文档基于EPNM 6.1.1版编写
- 对于运行版本5.1.x的系统,思科漏洞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区域中的计划设置。您可以一次选择多个设备(并定义集合的通用名称),也可以为每个设备创建一个作业(并指定与设备本身相关的作业名称,如图所示)。
如果要在大量设备上执行此操作,请将存档安排在最不可能影响生产的一段时间。

|
第 2 步 |
检查配置存档收集作业:
每次触发存档收集时,都会创建配置存档收集作业并将其与该流程关联,您可以在Administration > Dashboards > Job Dashboard下检查其状态,然后转至User Jobs > Configuration Archive Collection。
如果特定节点的收集存档失败,则每台设备使用一个作业可以更轻松地排除配置存档收集作业故障:

|
第 3 步 |
检查是否有任何故障:
配置存档收集失败可能有不同的原因。一些示例(适用于NCS2000)列于本过程后面的排除配置存档故障部分中。
|
3.从EPNM下载配置文件
步骤
第 1 步 |
选择Inventory > Device Management > Configuration Archive
|
第 2 步 |
选中要下载配置文件的设备旁边的复选框。
|
第 3 步 |
在Export Latest Archives下拉列表中,选择以下选项之一以下载配置文件:
-
Sanitized — 在下载的文件中屏蔽设备凭证密码。
-
Unsanitized — 设备凭证密码在下载的文件中可见。
Unsanitized选项根据基于角色的访问控制(RBAC)中的用户权限集显示。 这与NCS2000备份文件无关,因为它们不是基于文本的文件。
此过程提示您下载包含启动配置运行配置或数据库配置的.zip文件,具体取决于设备支持的内容。
|
4.设置外部服务器
支持的存储库包括FTP、SSH FTP(SFTP)和网络文件系统(NFS)。 在本例中,假设使用CentOS Linux版本8服务器构建SFTP服务器。创建服务器的过程不在本文的讨论范围之内。
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备份设备配置。
- 使用您在第4项 — 设置外部服务器中定义的密码替换xxxx。
- 外部服务器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部分中配置了该存储库:

Backup Repository窗口中还包含2个复选框:
- 仅导出最新配置:如果您只需要最新的文件,请单击此选项。否则,EPNM将导出存档选项卡中列出的所有文件。
- 使用GnuPG加密导出文件:您还可以选择使用GnuPG加密导出文件(GNU Privacy Guard,一个免费的开源软件工具,提供加密隐私和身份验证)。 如果选择使用GnuPG加密,则必须提供加密密码。
|
第 2 步 |
或者,点击运行以立即启动导出过程。否则,要计划和定义重复,请参阅项目7。在此程序后面的EPNM GUI中计划导出作业。
每次触发此进程时,都会创建一个设备配置备份 — 外部作业并将其与该进程相关联,您可以在“管理”(Administration)>“控制面板”(Dashboards)>“作业控制面板”(Job Dashboard)下检查其状态,然后在“系统作业”(System Jobs)>“基础设施”(Infrastructure)下检查。
|
7.在EPNM GUI中安排导出作业
在此步骤中,在EPNM GUI中定义将配置文件导出到外部服务器的作业。
步骤
第 1 步 |
选择管理>仪表板> 作业仪表板,然后转到系统作业> 基础设施。
|
第 2 步 |
单击Device Config Backup-External旁边的复选框,单击Edit Schedule按钮并填写计划。

|
第 3 步 |
单击Submit按钮。
|
第 4 步 |
单击Device Configuration Backup-External超链接检查作业是否成功完成。

|
8.使用REST API获取配置文件
有多种配置文件服务选项可用(例如,diff、批量导出和版本操作)。 本节显示如何根据ip地址为x.x.x.x的设备检索备份文件的基本示例
首先,您需要查询设备以获取所需配置文件的字段。可以使用GET配置版本终结点[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配置文件。
配置存档收集故障排除
超时
相关错误消息:使用https从设备备份数据库失败。执行HTTP请求期间的套接字超时:“读取超时”
根本原因:在EPNM能够从设备获取数据库之前发生超时。

“配置存档”任务为每个获取活动使用“设备CLI超时”值。一个配置存档任务需要1到5个文件。因此,总体作业超时值使用以下逻辑确定:总体作业超时=文件数*设备CLI超时。要配置CLI超时值,请选择Inventory > Device Management > Network Devices,单击编辑设备图标,选择Telnet/SSH选项,然后在Timeout 字段中输入值。

EMS在NCS2000中未启用为“安全”
相关错误消息:“从使用https的设备备份数据库失败。无法建立到设备的telnet连接 — 原因:连接被拒绝或超时。"
根本原因:NCS2000中的EMS Access参数(通过CTC工具对其进行访问)设置为Non Secure。必须将其设置为Secure。

要修复此问题,请使用CTC工具访问NCS2000,依次转到Node view、Provisioning tab、Security、Access选项卡,将EMS Access下的Access State更改为Secure。

找不到设备 ID
相关错误消息:“找不到设备存档。设备的ID可能无效,也可能已从系统中删除。”
根本原因:如果NCS2000设备已在EPNM中删除,则其在EPNM数据库中的设备ID将更改。但是,配置存档收集作业仍引用旧ID,因此它失败。解决方法是删除并重新创建相关设备的配置存档收集作业。
结论
本文档详细描述了如何从EPNM数据库中存储的网络设备访问配置文件。
提供了三个访问文件的选项:直接通过EPNM,导出到外部服务器和REST API。这些方法可用于自动执行连接到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 Address>/webacs/api/v1/index?_docs