统一网络控制器Func
一、简介
二、安装
三、测试
一、简介
什么是Func?
Func是由红帽子公司以Fedora平台构建的统一网络控制器,是为解决集群管理、监控问题而设计开发的系统管理基础框架。它是一个能有效简化多服务器系统管理工作的工具,它易于学习,使用和扩展,功能强大,只需要极少的配置和维护操作。Func分为master和slave两部分,master为主控端,slave为被动端。
Func与Saltstack在主,被控端建立信任机制是一样的,都是采用了证书+签名的方式。
二、安装
2.1 业务环境说明
角色 |
主机名 |
IP |
Master |
controller |
192.168.128.166 |
Minion |
compute |
192.168.128.165 |
系统:CentOS Linux release 7.4.1708 (Core)
2.2 安装Func
1.主控端服务器安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel -7 .repo [root@controller ~]# yum install -y func [root@controller ~]# systemctl enable certmaster [root@controller ~]# cat /etc/hosts 127.0 . 0.1 localhost localhost.localdomain localhost 4 localhost 4 .localdomain 4 :: 1 localhost localhost.localdomain localhost 6 localhost 6 .localdomain 6 192.168 . 128.166 controller 192.168 . 128.165 compute 修改配置文件/etc/certmaster/minion.conf把cermaster改为主控端的主机名 [root@controller ~]# vim /etc/certmaster/minion.conf # configuration for minions [main] certmaster = controller certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster 启动证书服务: [root@controller ~]# service certmaster start Redirecting to /bin/systemctl start certmaster.service [root@controller ~]# ss -lnt|grep 51235 LISTEN 0 5 *: 51235 *:* 添加防火墙: [root@controller ~]# iptables -I INPUT -s 192.168 . 128.0 / 24 -p tcp --dport 51235 -j ACCEPT [root@controller ~]# iptables-save |
2.被控端服务器安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel -7 .repo [root@compute ~]# yum install -y func [root@compute ~]# systemctl enable funcd [root@compute ~]# cat /etc/hosts 127.0 . 0.1 localhost localhost.localdomain localhost 4 localhost 4 .localdomain 4 :: 1 localhost localhost.localdomain localhost 6 localhost 6 .localdomain 6 # controller 192.168 . 128.166 controller 192.168 . 128.165 compute 修改配置文件/etc/certmaster/minion.conf把cermaster参数改为主控端的主机名,以便指向证书服务器发出签名请求,建立信任关系。 [root@compute ~]# vim /etc/certmaster/minion.conf # configuration for minions [main] certmaster = controller certmaster_port = 51235 log_level = DEBUG cert_dir = /etc/pki/certmaster 修改/etc/func/minion.conf的minion_name参数,作为被控主机的唯一标识,一般使用主机名,配置如下: [root@compute ~]# vim /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 = compute method_log_dir = /var/log/func/methods/ 启动func服务: [root@compute ~]# service funcd start [root@compute ~]# iptables -I INPUT -s 192.168 . 128.166 -p tcp --dport 51234 -j ACCEPT You have new mail in /var/spool/mail/root [root@compute ~]# iptables-save |
三、测试
3.1证书签名
在主控端运行certmaster-ca –list获取当前请求证书签名的主机清单,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | [root@controller ~]# certmaster-ca --list Compute 证书签名通过certmaster-ca –sign命令完成所有主机的签名操作,如: [root@controller ~]# certmaster-ca --sign `certmaster-ca --list` /var/lib/certmaster/certmaster/csrs/compute.csr signed - cert located at /var/lib/certmaster/certmaster/certs/compute.cert Func也提供了类似Saltstack自动签名的机制,通过修改autosign来实现,如: [root@controller ~]# vim /etc/certmaster/certmaster.conf # configuration for certmasterd and certmaster-ca [main] autosign = yes 使用func '*' list_minions来查看已经完成签名的主机名,如: [root@controller ~]# func '*' list_minions Compute 校验安装、任务签名是否正确,通过func '*' ping命令来测试,如 [root@controller ~]# func '*' ping [ ok ... ] compute 删除(注销)签名主机使用certmaster-ca –c hostname 对已经删除的被控端,要重新注册,先删除被控端/etc/pki/certmaster/下的证书文件,再运行certmaster-request进行证书请求,如: [root@compute ~]# rm -fr /etc/pki/certmaster/compute.* [root@compute ~]# /usr/bin/certmaster-request |
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类