Func 有一个长长的功能特性列表,大致要点如下:
• Func 可以让你在主控机上一次管理任意多台服务器,或任意多个服务器组。• Func 基于 Certmaster(https://fedorahosted.org/certmaster/)建立了 Master – Slaves 主从 SSL 证书管控体系,可以将证书自动分发到所有受控服务器。新装服务器也可以在 Kickstart 文件中自动安装 Func,自动注册到主控服务器。• Func 命令行可以直接发送远程命令或者远程获取数据。• Func 开发者已经完成了大多数常用任务模块的开发:CommandModule、FileTrackerModule、JBossModule、 IPtablesModule、HardwareModule、MountModule、NagiosCheck、NetappModule、 NetworkTest、ProcessModule、ServiceModule、SysctlModule、RebootModule、 RpmModule、VirtModule、YumModule 等等,这些模块的作用都可以顾名思义,或者参考: https://fedorahosted.org/func/wiki/ModulesList 。• 任何人都可以通过 Func 提供的 Python API 轻松编写自己的模块,以实现具体功能扩展。而且任何 Func 命令行能完成的工作,都能通过 API 编程实现。• Func 通讯基于 XMLRPC 和 SSL 标准协议。master:
view source print ? 1wget http://people.fedoraproject.org/~alikins/files/certmaster/certmaster-0.25.tar.gz 2wget http://people.fedoraproject.org/~alikins/files/func/func-0.25.tar.gz 3wget http://ovh.dl.sourceforge.net/sourceforge/pyopenssl/pyOpenSSL-0.9.tar.gz view source print ? 01tar -zxvf pyOpenSSL-0.9.tar.gz 02cd pyOpenSSL-0.9 03python setup.py install 04 05tar -zxvf certmaster-0.25.tar.gz 06cd certmaster-0.25 07python setup.py install 08 09tar -zxvf func-0.25.tar.gz 10cd func-0.25 11python setup.py installmaster上默认配置就可以
view source print ? 01[root@master ~]# cat /etc/certmaster/certmaster.conf 02# configuration for certmasterd and certmaster-ca 03 04[main] 05autosign = no 06listen_addr = 07listen_port = 51235 08cadir = /etc/pki/certmaster/ca 09cert_dir = /etc/pki/certmaster 10certroot = /var/lib/certmaster/certmaster/certs 11csrroot = /var/lib/certmaster/certmaster/csrs 12cert_extension = cert 13sync_certs = False 14 15[root@master ~]# cat /etc/certmaster/minion.conf 16# configuration for minions 17 18[main] 19certmaster = certmaster 20certmaster_port = 51235 21log_level = DEBUG 22cert_dir = /etc/pki/certmasterslave: 安装重复master的安装步骤配置如下:
view source print ? 01[root@slave ~]# cat /etc/certmaster/minion.conf 02# configuration for minions 03 04[main] 05certmaster = 60.28.x.x #master的ip或者域名 06certmaster_port = 51235 07log_level = DEBUG 08cert_dir = /etc/pki/certmaster 09 10[root@slave ~]# cat /etc/func/minion.conf 11# configuration for minions 12 13[main] 14log_level = DEBUG 15acl_dir = /etc/func/minion-acl.d 16 17listen_addr = 18listen_port = 51234 19minion_name = dxt #起的名字 这个名字需要在master指定hosts如果你有域名那就更好了,就不需要在指定hosts了 20 21master、slave 启动服务器 22service certmaster start 23service funcd start 24 25[root@master ~]# certmaster-ca --list 26dxt 27为客户端签发证书 28[root@master ~]# certmaster-ca --sign dxtok了,可以使用了• 查看当前有哪些服务器注册到主控机: func ‘*’ ping• 查看所有服务器的硬件信息: func ‘*’ call hardware info• 查看所有服务器上的 80 端口是否开启: func ‘*’ call networktest isportopen localhost 80• 查看 blade-5 上的系统负载: func ‘blade-5′ call command run /usr/bin/uptime• 启动 blade-6 上的 httpd 服务: func ‘blade-6′ call service start httpd• 在所有服务器上统一挂载某个存储目录: func ‘*’ call mount xxx:/yyy/zzz /path/to/dir
