Func(Fedora Unitied Network Controller)是红帽公司以Fedora平台构建的统一网络控制器,是为解决集群管理、监控问题而设计开发的系统管理基础框架。它是一个能有效简化多服务器系统管理工件的工具,它易于学习、使用和扩展,而且功能强大,只需极少的配置和维护操作。Func分为master和slave两部分,master为主控端,salva为被控端。
一、以下为演示环境
角色 | 系统 | 主机名 | IP |
Master | Centos7 | Master | 172.16.1.206 |
Slave | Centos7 | Node1 | 172.16.1.207 |
salve | Centos7 | Node2 | 172.161.208 |
二、Func的安装
1、 在主控端安装Func
1) 安装func
$ sudo yum install epel-release –y
$ sudo yum install func -y
2) 主控端hosts配置
$ sudo vim /etc/hosts
----------------------------------------->
172.16.1.201 master
172.16.1.202 node1
172.16.1.203 node2
3) 修改/etc/certmaster/minion.conf的certmaster参数,指向证书服务器
$ sudo vim /etc/certmaster/minion.conf
----------------------------------------------------------->
[main]
certmaster = master //此处的master为主被端主机名
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
4) 重启证书服务
$ sudo systemctl restart certmaster
$ sudo systemctl start funcd
$ sudo systemctl enable funcd
5) 开放51235端口
$ sudo iptables –I INPUT –s 172.16.1.0/24 –p tcp - - dport 51235 –j ACCEPT
至此,主控端配置完毕。
2、 被控端安装,安装主机分别为node1和node2
1) 安装func
1 $ sudo yum install epel-release –y 2 $ sudo yum install func -y
2) 配置hosts信息
$ sudo vim /etc/hosts
---------------------------------------->
1 172.16.1.201 master
3) 修改/etc/certmaster/minion.conf的certmaster参数
$ sudo vim /etc/certmaster/minion.conf
------------------------------------------------------------->
[main]
certmaster = master
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
4) 修改/etc/func/minion.conf的minion_name参数
1 $ sudo vim /etc/func/minion.conf
------------------------------------------------------------>
1 # configuration for minions 2 3 [main] 4 log_level = INFO 5 acl_dir = /etc/func/minion-acl.d 6 7 8 listen_addr = 9 listen_port = 51234 10 minion_name = node1 11 method_log_dir = /var/log/func/methods/
5) 启动func服务
1 $ sudo systemctl start funcd 2 $ sudo systemctl enable funcd
6) 开放51234端口
$ sudo iptables –I INPUT –s 172.16.1.0/24 –p tcp - -dport 51234 –j ACCEPT
至此,被控端配置完毕。两台被控端配置相似,另一台不再赘述。
3、 证书签名
1) 获取主机清单
$ sudo certmaster-ca --list
2) 证书签名
$ sudo certmaster-ca --sign node1
$ sudo certmaster-ca --sign node2
#一键完成所有主机的签名
$ sudo certmaster-ca –sign `certmaster-ca --list`
3) 查看已签名的主机名
1 $ sudo func “*” list_minions
4) 删除主机签名
1 $ sudo certmaster-ca –c node1
5) Func也可使用自动签名机制
$ sudo vim /etc/certmaster/certmaster.conf
------------------------------------------------------------------>
autosign=yes
三、Func常用模块及API
1、 command模块
$ sudo func ‘node1’ call command run “hostname”