简介
本文档介绍演进的可编程网络管理器(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 步 |
定义用于存档收集的参数: 选择管理>设备管理>配置存档,然后在设备选项卡下选择需要收集配置的设备,点击计划存档收集,然后完成重复区域中的计划设置。您可以一次选择多个设备(并定义集合的通用名称)或为每台设备创建一个作业(并指定与设备本身相关的作业名称,如图所示)。 如果要在大量设备上执行操作,请将存档安排在最不可能影响生产的时间段。 |
步骤 2 |
检查配置存档收集作业: 每次触发存档收集时,都会创建配置存档收集作业并将其与该进程关联,您可以在Administration > Dashboards > Job Dashboard下检查其状态,然后转至User Jobs > Configuration Archive Collection。 如果特定节点的收集存档失败,则为每台设备使用一个作业可以更轻松地排除配置存档收集作业故障: |
步骤 3 |
检查是否有故障: 配置存档收集失败可能有不同的原因。一些示例(适用于NCS2000)在本过程后面的配置存档故障排除收集部分中列出。 |
3. 从EPNM下载配置文件
步骤
第 1 步 |
选择资产 > 设备管理 > 配置存档 |
步骤 2 |
选中要下载配置文件的设备旁边的复选框。 |
步骤 3 |
在Export Latest Archives下拉列表中,选择以下其中一个选项以下载配置文件:
-
Sanitized -在下载的文件中屏蔽设备凭证密码。
-
Unsanitized -设备凭证密码在下载的文件中可见。
根据基于角色的访问控制(RBAC)中的用户权限集显示Unsanitized选项。这与NCS2000备份文件无关,因为它们不是基于文本的文件。
此过程提示您下载包含启动配置运行配置或数据库配置的.zip文件,具体取决于设备支持的内容。
|
4. 设置外部服务器
支持的存储库包括FTP、SSH FTP (SFTP)和网络文件系统(NFS)。在本例中,假设使用CentOS Linux版本8服务器构建SFTP服务器。创建服务器的过程不在本文讨论范围之内。
5. 在EPNM中配置目标存储库(Cisco IOS)
在此步骤中,外部服务器的参数在EPNM cars shell中进行定义。
步骤
第 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 directory/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按钮。 从备份到存储库下拉列表中,选择external_config_backup repository(以前在配置存储库部分中配置了该存储库): 备份存储库窗口中还有2个复选框:
- 仅导出最新配置:如果您只需要最新的文件,请点击此选项。否则,EPNM将导出存档选项卡中列出的所有文件。
- 使用GnuPG加密导出文件:您也可以选择使用GnuPG加密导出文件(GNU Privacy Guard,一个免费的开源软件工具,提供加密隐私和身份验证)。如果您选择使用GnuPG加密,则必须提供加密密码。
|
步骤 2 |
或者,单击Run立即开始导出过程。否则,要计划和定义重复周期,请参阅项目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 Configuration Versions终结点[2]完成此操作:
GET https://
/webacs/api/v4/data/ConfigVersions?.full=true&deviceIpAddress=x.x.x.x
请注意,从JSON响应中,启动配置和运行配置均可用于此设备。此外,本例中的差异类型为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访问参数(通过CTC工具进行访问)设置为Non Secure。 需要将其设置为Secure。
要修复此问题,请使用CTC工具访问NCS2000,请转至Node view, Provisioning tab, 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。这些方法可用于自动执行连接到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