通过MCP将网络工程师转变为自动化从业者
欢迎来到在“网络自动化论坛AutoCon4”上的WS:A3!
本实践工作坊将通过利用革命性的**模型上下文协议(MCP)**框架和AI辅助,改变您对网络操作的方法。您将使用运行JunOS的HPE Juniper Networks虚拟拓扑来开发智能自动化能力,以消除传统的UI驱动的操作。
到本工作坊结束时,您将能够:
本工作坊中的每个用例都遵循一致的结构,帮助您高效地导航和完成练习。
README.md文件。这种标准化的框架确保您可以专注于学习概念,而不是寻找材料。
这是本工作坊要做的用例列表:
这些8个用例位于/home/claude/workspace/的不同文件夹中。它们旨在帮助您了解代理AI如何协助您作为网络工程师的日常任务:
git blame等价物,实现全面的配置变更追踪,将每个配置行归因于其作者和提交。NETWORK.HEALTH.md方法论文档,定义您的网络健康标准,然后让AI代理根据您记录的标准验证和维护网络合规性。*.j2和变量{{ }}的理解*.yaml或*.yml的熟悉/home/claude/workspace/这里您可以找到所有扩展及其图标的截图,以帮助您安装它们:

您应该已经收到一封包含工作坊详细信息的电子邮件(如果没有,请询问工作坊支持团队)。它应该包括与工作坊相关的以下详细信息:
id_rsa_claude)您需要保留所有这些信息,不要与任何人分享(仅在需要时与工作坊支持团队分享)。
您可能已经完成了其中的一些步骤。如果是这样,请随意继续并跳过您已经完成的步骤。
在开始工作坊之前,您必须配置您的SSH客户端,以便无缝访问所有工作坊组件:
要访问工作坊VM,您需要使用通过电子邮件提供的SSH私钥(id_rsa_claude)进行SSH身份验证,或者您也可以在本仓库的utils/文件夹中找到它的副本(例如utils/id_rsa_claude)。
将私钥文件保存到本地机器的安全位置(例如~/.ssh/id_rsa_claude)。
确保密钥具有正确的权限600,以防止SSH由于过于宽松的访问权限而拒绝它。
chmod 600 ~/.ssh/id_rsa_claude
使用以下命令测试您对VM的连接:
ssh -i ~/.ssh/id_rsa_claude claude@${PROVIDED_VM_IP} -p ${PROVIDED_VM_PORT}
或者记住,如果未提供${PROVIDED_VM_PORT},则无需添加默认端口22(跳过-p选项)
ssh -i ~/.ssh/id_rsa_claude claude@${PROVIDED_VM_IP}
将${PROVIDED_VM_IP}替换为VM的IP地址,将${PROVIDED_VM_PORT}替换为邮件中提供的VM端口。公共SSH RSA密钥(~/.ssh/id_rsa_claude.pub)已添加到工作坊VM和cRPD设备的用户claude(~/.ssh/authorized_keys)中,因此您可以无密码地SSH进入工作坊VM和cRPD设备。
为了方便起见,在您的~/.ssh/config文件中添加以下代码。这将允许您只需键入ssh naf-ws-vm即可连接到工作坊VM。无需密码!请务必安全保管您的私钥,切勿与他人分享或将其提交到版本控制系统中。
向您的~/.ssh/config文件添加以下配置:
# 工作坊VM配置
Host naf-ws-vm
HostName ${PROVIDED_VM_IP}
User claude
Port ${PROVIDED_VM_PORT}
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
StrictHostKeyChecking no
IdentitiesOnly yes
配置通过VM访问容器化路由器(请注意ProxyCommand行中包含的跳转主机VM名为配置前的naf-ws-vm):
⚠️ 确保您没有其他Host条目定义了相同的名称(例如naf-ws-vm、pe1、pe2、pe3、pe4、pe5、pe6、p、ce1和/或ce2),否则在连接时会出现冲突。如果有,请添加前缀(例如naf),并在连接时记得使用它。
# cRPD设备(通过工作坊VM跳转主机(例如naf-ws-vm))
Host pe1
HostName 172.20.20.11
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
Host pe2
HostName 172.20.20.12
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
Host pe3 p
HostName 172.20.20.13
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
Host pe4 ce1
HostName 172.20.20.14
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
Host pe5 ce2
HostName 172.20.20.15
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
Host pe6
HostName 172.20.20.16
User claude
IdentityFile ${ABSOLUTE_PATH_TO_SSH_RSA_CLAUDE} # 例如 /Users/my_user/.ssh/id_rsa_claude
ProxyCommand ssh -l claude naf-ws-vm nc %h 22 2>/dev/null
StrictHostKeyChecking no
使用以下命令测试您对VM的连接(它不包含隐含在命令中的用户或SSH密钥):
ssh naf-ws-vm
如果无法连接,可能是您被分配了一个JCL(Juniper Cloud Labs)沙箱,且您的公网IP尚未被允许(由支持团队!)。请他们允许,或者如果您收到了来自JCL的URL电子邮件,请按照以下步骤操作。否则,您可以跳过下一步:
找出您从JCL看到的公网IP。访问此网站并复制IP:
https://test-01.cloudlabs.juniper.net/
您应该看到如下内容:

复制此IP并将其添加到您的JCL沙箱允许的网络前缀中。为此,请前往COMMANDS,在右侧点击Add Allow Network Prefixes:

添加它,然后点击Run。

您应该看到一个窗口,显示正在运行一个脚本来将您的前缀添加到JCL,以便您可以远程访问您的沙箱。

验证您的SSH配置:
# 测试VM访问
ssh naf-ws-vm
# 测试路由器访问(在任何用例拓扑部署之后!否则,它将不起作用)
ssh pe1
ssh pe2
ssh pe3
ssh pe4
ssh pe5
ssh pe6