06-Puppet典型配置举例
本章节下载: 06-Puppet典型配置举例 (233.86 KB)
本文档介绍了Puppet的配置举例。
Puppet是开源的配置管理工具,用户使用Puppet语言将需要对设备进行的配置写成脚本,并保存到服务器中,再通过服务器把这些配置脚本下发到各网络设备,实现对网络设备的集中配置管理。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文假设您已了解Puppet特性。
如图3-1所示,Device A和B作为Puppet agent与Puppet master相连。
要求通过Puppet在所有Puppet agent上创建ID为100的VLAN。
图3-1 Puppet配置组网图
产品 |
软件版本 |
S6805系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S6825系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S6850系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S9850系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S9820-64H |
Release 6710Pxx版本,Release 6715及以上版本 |
S9820-8C |
Release 6710Pxx版本,Release 6715及以上版本 |
S6800系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S6860系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S6826系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
S9826系列 |
Release 6710Pxx版本,Release 6715及以上版本 |
(1) 配置Puppet master的IP地址(略)。
(2) 用以下命令安装Puppet。
$ sudo apt-get install puppetmaster
(3) 查看基本配置文件puppet.conf是否已在目录/etc/puppet下自动创建。
如果该文件不存在,执行以下命令。
$ sudo puppet master –genconfig > puppet.conf
(4) 添加H3C提供的文件。
a. 用以下命令在目录/etc/puppet/modules下创建目录custom/lib/puppet。
$ sudo mkdir –p /etc/puppet/modules/custom/lib/puppet
b. 将H3C提供的type和provider库文件拷贝到上一步骤创建的puppet文件夹中。
c. 用以下命令在目录/etc/puppet/manifests下创建目录nodes。
$ sudo mkdir –p /etc/puppet/manifests/nodes
d. 将H3C提供的puppet.master.com.pp文件拷贝到/etc/puppet/manifests/nodes文件夹中。
e. 置site.pp文件。
# 到上一层目录/etc/puppet/manifests/下创建Puppet agent信息文件site.pp。
$ cd ..
$ sudo touch site.pp
# 编辑site.pp文件的内容如下:
node '16.1.136.133'{
netdev_device{'device':
ensure => undo_shutdown,
username => 'test',
password => 'n123456789',
ipaddr => '16.1.136.133',
}
include custom
}
node '16.1.136.134'{
netdev_device{'device':
ensure => undo_shutdown,
username => 'test',
password => 'n123456789',
ipaddr => '16.1.136.134',
}
include custom
}
(5) 配置init.pp文件。
# 在目录/etc/puppet/modules下创建保存配置脚本文件的目录custom/manifests。
$ sudo mkdir -p /etc/puppet/modules/custom/manifests
# 在目录/etc/puppet/modules/custom/manifests下创建配置脚本文件init.pp。
$ sudo touch init.pp
# 编辑init.pp文件的内容如下:
class custom{
netdev_vlan{'vlan100':
ensure => undo_shutdown,
id => 100,
require => Netdev_device['device'],
}
}
(1) 配置设备的IP地址。
<DeviceA> system-view
[DeviceA] vlan 2
[DeviceA-vlan2]quit
[DeviceA] interface vlan-interface 2
[DeviceA-Vlan-interface2] ip address 16.1.136.133 255.255.0.0
[DeviceA-Vlan-interface2] quit
(2) 配置设备作为NETCONF over SSH服务器。
# 生成默认名称的本地RSA非对称密钥对。
[DeviceA] public-key local create rsa
# 开启NETCONF over SSH服务器功能。
[DeviceA] netconf ssh server enable
# 设置NETCONF over SSH客户端登录用户线的认证方式为AAA认证。
[DeviceA] line vty 0 63
[DeviceA-line-vty0-63] authentication-mode scheme
[DeviceA-line-vty0-63] user-role network-admin
[DeviceA-line-vty0-63] quit
# 创建设备管理类本地用户test,并设置密码为明文n123456789,服务类型为SSH,用户角色为network-admin。
[DeviceA] local-user test class manage
[DeviceA-luser-manage-test] password simple n123456789
[DeviceA-luser-manage-test] service-type ssh
[DeviceA-luser-manage-test] authorization-attribute user-role network-admin
[DeviceA-luser-manage-test] quit
(3) 配置设备作为NTP客户端与Puppet master进行时间同步。
# 开启NTP服务。
[DeviceA] ntp-service enable
# 配置设备通过NTP协议获取时间。
[DeviceA] clock protocol ntp
# 配置设备为NTP广播客户端,从VLAN接口2接收NTP广播报文。
[DeviceA] interface vlan-interface 2
[DeviceA-Vlan-interface2] ntp-service broadcast-client
[DeviceA-Vlan-interface2] quit
(4) 在设备上执行third-part-process start命令启动Puppet。
[DeviceA] third-part-process start name puppet arg agent --certname=16.1.136.133 --server=16.1.147.150
设备启动Puppet后会向Puppet master申请证书。
# 在Puppet master上可以通过puppet cert list命令查看待签发证书的设备,并通过执行以下命令给Device A签发证书。
通过Puppet master给Puppet agent签发证书
$ sudo puppet cert sign 16.1.136.133
Device A获得证书后,将获取Puppet master中的配置脚本到本地运行,实现对设备各功能的配置。
# 通过Puppet master给Device B签发证书(略)。
查看设备配置,可以看到创建了VLAN 100。
· Puppet master
type、provider和puppet.master.com.pp文件由H3C技术支持提供。
· Device A
#
clock protocol ntp
#
vlan 2
#
interface Vlan-interface2
ip address 16.1.136.133 255.255.0.0
ntp-service broadcast-client
#
ntp-service enable
#
line vty 0 63
authentication-mode scheme
user-role network-admin
user-role network-operator
idle-timeout 0 0
#
local-user test class manage
password hash $h$6$dpI0mjGV+tmN+5Wz$p5dGPqDxqTTlLnkTY2bSF5wl4N8gXjjN3xZVPRPYJBW
ceIlrChqHkRdUjSYwoUjPZIx5HczVlx7xIeEDEuLCow==
service-type ssh
authorization-attribute user-role network-admin
authorization-attribute user-role network-operator
#
netconf ssh server enable
#
请参考对应产品和版本的如下手册:
· 网络管理和监控配置指导
· 网络管理和监控命令参考
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!