Func 的安装
Func 需要在主控端、被控端部署环境,建议读者采用 yum 的方式实现部署。目前 Func 最新版本为 0.28,由 func、certmaster、pyOpenSSL 三个组件组成。下面详细讲解 Func 的安装步骤。
业务环境说明
为了方便读者理解,笔者通过虚拟化环境部署功能服务器来进行演示,操作系统版本为 CentOS release 6.4,自带 Python 2.6.6。相关服务器信息如表11-1所示。
安装Func
-
主控端服务器安装
主控端部署在主机名为 SN2013-08-020 的设备上,通过 yum 方式安装,如下:
# yum install func -y # /sbin/chkconfig --level 345 certmaster on在设备通信上 Func 要求使用主机名来识别,在没有内部域名解析服务的情况下,可通过配置主机 hosts 来解决主机名的问题。主控端 hosts 配置如下:
hosts192.168.1.21 SN2013-08-021 192.168.1.22 SN2013-08-022 192.168.1.20 func.master.server.com修改 /etc/certmaster/minion.conf 的 certmaster 参数,指向证书服务器,即主控端服务器,func 命令用到此配置,如:
certmaster/minion.conf# configuration for minions [main] certmaster = func.master.server.com certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster启动证书服务:
# /sbin/service certmaster start配置 iptables,开通 192.168.1.0/24 网段访问证书服务 51235(certmaster 服务)端口。
# iptables -I INPUT -s 192.168.1.0/24-p tcp --dport 51235-j ACCEPT至此,主控端配置完毕。
-
被控端服务器安装
被控端部署在主机名为 SN2013-08-021、SN2013-08-022 的设备上,同样通过 yum 方式安装,如下:
# yum install func -y # /sbin/chkconfig --level 345 funcd on配置 hosts 信息:
192.168.1.20 func.master.server.com修改 /etc/certmaster/minion.conf 的 certmaster 参数,以便指向证书服务器发出签名请求,建立信任关系,如:
certmaster/minion.conf# configuration for minions [main] certmaster = func.master.server.com certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster修改 /etc/func/minion.conf 的 minion_name 参数,作为被控主机的唯一标识,一般使用主机名,以 SN2013-08-021 主机为例,配置如下:
# configuration for minions [main] log_level = INFO acl_dir = /etc/func/minion-acl.d listen_addr = listen_port = 51234 minion_name = SN2013-08-021 method_log_dir = /var/log/func/methods/启动 func 服务:
# /sbin/service funcd start配置 iptables,开通 192.168.1.20 主控端主机访问本机 51234(func 服务)端口。
# iptables -I INPUT -s 192.168.1.20-p tcp --dport 51234-j ACCEPT至此,被控端配置完毕。
-
证书签名
在主控端运行 certmaster-ca --list 获取当前请求证书签名的主机清单,如:
# certmaster-ca --list
sn2013-08-021
sn2013-08-022
证书签名通过 certmaster-ca --sign hostname 命令来完成,如:
# certmaster-ca --sign sn2013-08-021
当然,也可以结合 --list、--sign 参数实现一键完成所有主机的签名操作,如:
# certmaster-ca --sign `certmaster-ca --list`
Func 也提供了类似 Saltstack 自动签名的机制,通过修改 /etc/certmaster/certmaster.conf 的参数 autosign = no 为 autosign = yes 即可。
使用 func "*" list_minions 查看已经完成签名的主机名,如:
# func '*' list_minions
sn2013-08-021
sn2013-08-022
删除(注销)签名主机使用 certmaster-ca -c hostname,如:
# certmaster-ca -c sn2013-08-021
校验安装、任务签名是否正确,通过 func "*" ping 命令来测试,如图11-1所示。
|
对已注销的被控服务器,要重新注册,先删除被控主机端 /etc/pki/certmaster/ 下的证书文件,再运 3 行 certmaster-request 进行证书请求,具体操作步骤如下:
|