一、服务器规划
二、安装Func
1、主控端服务器安装
主控端部署在主机liuyazhuang121上,用过yum方式安装,如下:
# yum install func -y
# /sbin/chkconfig --level 345 certmaster on
在设备通信上Func要求使用主机名来识别,在主控端配置如下:
【/etc/hosts】
192.168.209.121 liuyazhuang121
192.168.209.122 liuyazhuang122
192.168.209.123 liuyazhuang123
修改/etc/certmaster/minion.conf的certmaster参数,指向证书服务器,即主控端服务器,funuc命令
用到此配置,如:
【/etc/certmaster/minion.conf】
# configuration for minions
[main]
certmaster = liuyazhuang121
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
启动证书服务:
/sbin/service certmaster start
配置iptables,开通192.168.209.0/24网段访问证书服务51235(certmaster服务)端口。
# iptables -I INPUT -s 192.168.209.0/24 -p tcp --dport 51235 -j ACCEPT
至此,主控端配置完毕。
2、被控端服务器安装
被控端部署在主机名为liuyazhuang122、liuyazhuang123的设备上,同样通过yum方式安装,如下:
# yum install func -y
# /sbin/chkconfig --level 345 funcd on
配置hosts信息:
【/etc/hosts】
192.168.209.121 liuyazhuang121
192.168.209.122 liuyazhuang122
192.168.209.123 liuyazhuang123
修改/etc/certmaster/minion.conf的certmaster参数,以便指向证书服务器发出签名请求,建立信任关系,如:
【/etc/certmaster/minion.conf】
# configuration for minions
[main]
certmaster = liuyazhuang121
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
修改/etc/func/minion.conf的minion_name参数,作为被控主机的唯一标识,一般使用主机名,以liuyazhuang122为例,配置如下:
【/etc/func/minion.conf】
# configuration for minions
[main]
log_level = INFO
acl_dir = /etc/func/minion-acl.d
listen_addr =
listen_port = 51234
minion_name = liuyazhuang122
method_log_dir = /var/log/func/methods/
启动func服务:
# /sbin/service funcd start
配置iptables,开通192.168.209.121主控端主机访问被控端主机51234(func服务)端口,
# iptables -I INPUT -s 192.168.209.121 -p tcp --dport 51234 -j ACCEPT
至此,被控端配置完毕。
3、证书签名
在主控端运行certmaster-ca --list获取当前请求证书签名的主机清单,如:
# certmaster-ca --list
liuyazhuang122
liuyazhuang123
证书签名通过certmaster-ca --sign hostname命令来完成,如:
# certmaster-ca --sign liuyazhuang122
也可以结合--list、--sign参数实现一键完成所有主机的签名操作,如:
# certmaster-ca --sign 'certmaster-ca --list'
Func也提供了类似Saltstack自动签名的机制,通过修改/etc/certmaster/certmaster.conf的参数autodsign = no为autosign = yes即可。
使用func "*" list_minions查看已经完成签名的主机,如:
# func '*' list_minions
liuyazhuang122
liuyazhuang123
删除(注销)签名主机使用certmaster-ca -c hostname,如:
# certmaster-ca -c liuyazhuang122
校验安装、任务签名是否正确,通过func "*" ping命令测试,如下所示:
[root@liuyazhuang121 ~]func "*" ping
[ok ... ] liuyazhuang122
[ok ... ] liuyazhuang123
注意:对已经注销的被控服务器,要重新注册,先删除被控端主机/etc/pki/certmaster/下的证书文件,再运行certmaster-request进行证书请求,具体参数步骤如下:
# rm -rf /etc/pki/certmaster/主机名.*
# /usr/bin/certmaster-request