Cisco Zero Touch Provisioning-思科NXOS交换机加电设备预配测试

实现Cisco Zero Touch Provisioning的前提是,网络设备提供了运行Python脚本的环境-Guest Shell,可以执行下载的Python脚本,并将对设备进行配置。

Cisco NX-OS提供了强大的网络可编程性和自动化功能,其中的通电自动调配 POAP就比较典型,非常适用于IDC数据中心在实施阶段的自动化操作,省去了大量的人力介入,提高了网络扩展和部署的效率。

官方参考:

Cisco Nexus 9000 Series NX-OS Fundamentals Configuration Guide, Release 9.3(x) - Using PowerOn Auto Provisioning [Cisco Nexus 9000 Series Switches] - Cisco

POAP - Open NX-OS - Document - Cisco DevNet

POAP是通过DHCP&TFTP以及其他文件传输服务,对NX-OS设备在加电启动时,自动进行网络安装配置的。

image.png
Cisco官方提供了一个现成的python脚本,用以实现POAP过程。

POAP测试
一、DHCP&TFTP环境搭建

使用Dnsmasq,可以同时提供DHCP&TFTP&SCP服务

在Linux环境下搭建

  • 系统环境
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
  • 安装
apt-get install dnsmasq
  • 配置

编辑/etc/dnsmasq.conf配置文件

log-facility=/var/log/dnsmasq/dnsmasq.log # 定义dnsmasq日志文件
interface=pnet0 # 与网络设备互联接口处于同一个二层网络
bind-interfaces
enable-tftp
enable-tftp=pnet0  # 与网络设备互联接口处于同一个二层网络
tftp-root=/var/lib/tftpboot # tftp主目录,跟poap脚本中定义的一至

dhcp-host=10.x.x.x
dhcp-range=10.x.x.1,10.x.x.2,255.255.255.0,1h # 指定地址池及租约
dhcp-option=150,10.x.x.x # 指定tftp server地址
dhcp-option=3,10.x.x.x # 指定路由
dhcp-option=67,poap.py # 指定bootfile
dhcp-boot=10.x.x.x/poap.py # 指定bootfile下载路径
log-dhcp # 启用dhcp log
  • Dnsmasq日志
tail -f /var/log/dnsmasq/dnsmasq.log
二、脚本下载

github_nexus9000_poap.py

github_nexus9000

git clone https://github.com/datacenter/nexus9000.git
  • 脚本
~/nexus9000/nx-os/poap$ ls -l
-rwxr-xr-x 1 jay jay   1575 Apr 28 15:29 personality_poap.py
-rwxr-xr-x 1 jay jay 104200 Apr 28 15:29 poap.py
三、脚本配置
  1. 下载的poap.py放到TFTP服务器的主目录下/var/lib/tftpboot/。

  2. 修改poap.py脚本中的option变量。

    • username scp文件传输账号

    • password scp文件传输密码

    • hostname scp服务器地址

    • target_system_image 设备镜像名称

options = {
   
   "username": "xxx",
   "password": "12345678",
   "hostname": "10.x.x.x",
   "transfer_protocol": "scp",
   "mode": "serial_number",
   "target_system_image": "nxos.9.3.1.bin", 
}
  1. 在脚本中函数’def set_defaults_and_validate_options():'中可以查看到默认对配置文件和镜像文件的目录设置等。
# Transfer protocol (http, ftp, tftp, scp, etc.)
    set_default("transfer_protocol", "scp")
    # Directory where the config resides
    set_default("config_path", "/var/lib/tftpboot/")
    # Target image and its path (single image is default)
    set_default("target_system_image", "")
    set_default("target_image_path", "/var/lib/tftpboot/")
  1. 脚本&配置&镜像文件存储

TFTP主目录为**/var/lib/tftpboot/**,脚本&配置&镜像文件统一放置到这个目录。

  1. MD5SUM校验

(1) 脚本&配置&镜像文件都必须做MD5校验,否则脚本执行会失败。
(2) 根据CISCO官方提供的shell命令,可以对脚本&配置文件内容做md5sum,以后每次只要修改了脚本或配置文件的内容,都需要再重新做校验。
(3) 镜像文件只对文件名做md5sum。

  • poap脚本校验,在shell下执行如下命令
f
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值