简介
Func是由红帽子公司以Fedora平台构建的统一网络控制器,是为解决集群管理、监控问题而设计开发的系统管理框架。它是一个能有效简化多服务多服务器系统管理工作的工具,它易于学习、使用和扩展,功能强大,只需要极少的配置和维护工作。Func分为master和slave两部分,master为主控端,slave为被控端。
Func具有以下特点:
支持在主控机上管理任意多台服务器,或任意个服务器组;
支持命令行方式发送远程命令或远程获取数据;
Func通信基于XMLRPC和SSL标准协议,具有模块化的可扩展特点;
可以通过Kickstart预安装到系统中,自动注册到主控服务器端;
任何人都可以通过Func提供的Python API轻松编写自己的模块,以实现具体功能的扩展。而且任何Func命令行能完成的工作,都能通过API编程实现;
提供封装大量通用的服务器管理命令模块;
Func平台没有与数据库关联,不需要复杂的安装与配置,服务期间安全证书的分发都是自动完成的;
安装配置
Func是由三部分构成:func、certmaster、pyOPenSSL
主控端:(192.168.1.22)
安装:
yum install func -y
chkconfig certmaster on
在设备通信上Func要求使用主机名来识别,在没有内部域名解析服务的情况下,可通过配置主机hosts来解决主机名的问题。
【/etc/hosts】
127.0.0.1 localhost 192.168.1.21 test 192.168.1.22 wx
配置:
修改/etc/certmaster/minion.conf的certmaster参数,指向证书服务器(即主控端服务器)
【/etc/certmaster/minion.conf】
# configuration for minions [main] certmaster = wx #设置证书服务器(主控端服务器)的主机名 certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster
防火墙:
开通192.168.1.0/24网段访问证书服务51235(certmaster服务)端口
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 51235 -j ACCEPT
被控端:(192.168.1.21)
安装:
yum install func -y
chkconfig funcd on
配置:
修改/etc/certmaster/minion.conf的certmaster参数,指向证书服务器(即主控端服务器),以便向证书服务器发出签名请求,建立信任关系
【/etc/certmaster/minion.conf】
# configuration for minions [main] certmaster = wx #设置证书服务器(主控端服务器)的主机名 certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster
修改/etc/func/minion.conf的minion_name参数,作为备用主机的唯一标识,一般使用主机名
【/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 = test #被控主机唯一标识(主机名) method_log_dir = /var/log/func/methods/
防火墙:
开通192.168.1.22(主控服务器)访问本机(localhost)51234(func服务)端口
iptables -I INPUT -s 192.168.1.22 -p tcp --dport 51235 -j ACCEPT
证书签名
在主控端获取当前请求证书签名的主机清单
#命令: certmaster-ca --list #结果: test
主控端通过被控端的证书签名请求
命令:
certmaster-ca --sign test #通过单个主机的请求 certmaster-ca --sign `certmaster-ca --list` #通过命令组合来批量完成主机证书签名请求
Func也提供了自动签名机制
【/etc/certmaster/certmaster.conf】
autosign = yes #默认为no,将其改为yes后即可自动进行签名认证
查看已完成签名的主机
func '*' list_minions
删除签名主机:
certmaster-ca -c test(主机名)
校验安装、任务签名是否正确:
func '*' ping #结果: [ ok ... ] wx
对已经注销的被控主机,重新进行注册(以被控主机test为例):先删除被控主机端的证书认证文件,在重新进行请求
rm -rf /etc/pki/certmaster/test.*
certmaster-request
参考资料:
根据刘天斯《Python自动化运维技术与最佳实践》整理