【发布时间】:2020-04-12 06:05:20
【问题描述】:
用例: 在 AWS 上为 Cisco CSR v1000 路由器创建 VPN,根据 AWS 生成的值生成一系列命令,替换模板中的令牌,配置路由器,然后保存startup-config - 以完全自动化的方式,从开发人员的笔记本电脑上完成。
我自己从一组我需要按顺序应用的命令中配置路由器,这就是我在网上搜索这个问题时看到的 - 我 ssh 进入路由器,然后“config t ",然后我手动粘贴命令。我不想进行这种手动剪切和粘贴操作 - 我想在路由器本身或我的笔记本电脑上运行语句,以将脚本中的命令应用于路由器配置 - 而不是必须剪切并粘贴它们。
我想我会在这里列出我到目前为止所想出的东西,因为很难找到如何在一个地方简单地完成这么多事情。以下假设适用:
- 我有一个 ~/.ssh/config 文件,它简化了我需要在命令行上指定的内容
- 这会将用户作为 ec2-user 提供,并指定正确的 SSH 密钥。
- 我正在使用 ssh-agent,它为我提供 SSH 密钥密码
- 本示例中路由器的 FQDN 是 csr01.mydomain.com
- 我要运行的命令集在 csr01-apply-config.cfg 中
- 我想将此文件上传到路由器,然后最好在一个操作中应用文件中的所有命令,因为此脚本可能需要进行更改,这可能会暂时中断连接
- 我想将所有此类应用文件存储在 flash:apply-configs 目录中
这就是我目前所拥有的——只是错过了一个关键步骤:
-
列出闪存中的文件:文件系统
# ssh csr01.mydomain.com dir flash: -
列出 nvram 中的文件:文件系统
# ssh csr01.mydomain.com dir nvram: - 创建一个目录来保存上传的配置应用文件
# ssh csr01.mydomain.com mkdir flash:apply-configs - 上传生成的配置应用文件
# scp csr01-apply-config.cfg csr01.mydomain.com:flash:/apply-configs/csr01-apply-config.cfg - 确认上传的文件存在
# ssh csr01.mydomain.com dir flash:apply-configs -
应用命令
>>>>>>>>>> 我如何在此处的文件中运行命令
例如,类似:# run flash:/apply-configs/csr01-apply-config.cfg看起来应该很简单,但我似乎找不到任何描述 如果这是可能的,如果可以,使用什么命令
-
显示运行配置
# ssh csr01.mydomain.com show run - 将运行配置写入内存
# ssh csr01.mydomain.com write mem - 将启动配置复制回笔记本电脑
# scp csr01.mydomain.com:nvram:startup-config csr01-startup-config-$(date +%Y%m%d-%H%M).cfg
【问题讨论】:
标签: cisco-ios