Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21471
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 92
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-30 21:19
个人简介

07年毕业至今,一直从事运维工作。目前在深圳市酷开网络科技有限公司担任运维工程师。愿与运维人员共同学习,共同研究。

文章分类

全部博文(7)

文章存档

2015年(6)

2013年(1)

我的朋友

分类: 系统运维

2015-05-08 15:57:53

1.主控端服务器安装
#yum install func -y
#chkconfig --level 345 certmaster on
在设备通信上Func要求使用主机名来识别,在没有内部域名解析服务的情况下,可通过配置主机hosts来解决主机名的问题。主控端hosts配置如下:
【/etc/hosts】

192.168.2.97  SN2015-02-97
192.168.2.98  SN2015-02-98
192.168.2.96  func.master.server.com
修改/etc/certmaster/minion.conf的certmaster参数,指向证书服务器,即主控端服务器,func命令用到此配置,如:
[/etc/certmaster/minion.conf]
# configuration for minions

[main]
certmaster = func.master.server.com
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
启动证书服务:
#service certmaster start
配置iptables,开通192.168.2.0/24网段访问证书服务51235(certmaster服务)端口。
# iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 51235 -j ACCEPT
至此,主控端配置完毕。

2.被控端服务器安装
被控端部署在主机名为SN2015-02-97 SN2015-02-98的设备上,同样通过yum方式安装,如下
#yum install func -y
#chkconfig --level 345 funcd on
配置hosts信息:
192.168.2.96 func.master.server.com
修改/etc/certmaster/minion.conf的certmaster参数,以便指向证书服务器发出签名请求,建立信任关系,如:
[/etc/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参数,作为被控主机的唯一标识,一般使用主机名,以SN2015-02-97主机为例,配置如下:
# configuration for minions

[main]
log_level = INFO
acl_dir = /etc/func/minion-acl.d

listen_addr =
listen_port = 51234
minion_name = SN2015-02-97
method_log_dir = /var/log/func/methods/
启动func服务:
# service funcd start
配置iptables,开通192.168.2.96主控端主机访问本机51234(func服务)端口。
#iptables -I INPUT -s 192.168.2.96 -p tcp --dport 51234 -j ACCEPT
至此,被控端配置完毕。
3.证书签名
在主控端运行certmaster-ca --list获取当前请求证书签名的主机清单,如:
# certmaster-ca --list
SN2015-02-97
SN2015-02-98
证书签名通过certmaster-ca --sign hostname命令来完成,如:
# certmaster-ca --sign SN2015-02-97
当然,也可以结合--list --sign参数实现一键完成所有主机的签名操作,如:
# certmaster-ca --sign 'certmaster-ca --list'
Func也提供了类似Saltstack自动签名的机制,通过修改/etc/certmaster/certmaster.conf的参数autosign = no 为autosign = yes 即可。
使用func "*" list_minions查看已经完成签名的主机名,如:
# func '*' list_minions
SN2015-02-97
SN2015-02-98
删除(注销)签名主机使用certmaster-ca -c hostname,如:
# certmaster-ca -c SN2015-02-97
校验安装、任务签名是否正确,通过func '*' ping命令来测试,如:
func '*' ping
[ ok ... ] SN2015-02-97
[ ok ... ] SN2015-02-98
注意:对已注销的被控服务器,要重新注册,先删除被控主机端/etc/pki/certmaster/下的证书文件,再运行certmaster-request进行证书请求,具体操作步骤如下:
# rm -rf /etc/pki/certmaster/主机名.*
# /usr/bin/certmaster-request

Func常用操作命令

返回主机内存使用信息
func '*' call command run "df -m"
func '*' call command run "df -h"
func '*' call command run "free -m"
返回主机uptime信息
func '*' call command run "uptime"
获取远程主机CPU信息
func '*' call cpu usage
func '*' call cpu usage 10
获取远程主机磁盘分区信息
func '*' call disk usage
func '*' call disk usage /data
获取远程主机系统硬件信息
func '*' call hardware info
func '*' call hardware hal_info
实现远程主机进程管理
func '*' call process info "aux"
func '*' call process pkill nginx -9
func '*' call process kill nginx SIGHUP
实现远程主机系统服务管理
func '*' call service start nginx
实现远程主机系统内核参数管理
func '*' call sysctl list
func '*' call sysctl get net.nf_conntrack_max
func '*' call sysctl set net.nf_conntrack_max 15449
查看所有主机uptime,开启5个线程异步运行,超时时间为3秒,命令如下:
func -t 3 "*" call --forks="5" --async command run "/usr/bin/uptime"
格式化输出结果,默认格式为python的元组,分别添加--jsion或--xml来输出JSON及XML格式,命令如下:
func -t 3 "*" call --forks="5" --json --async command run "/usr/bin/uptime"
示例:所有满足内核版本大于或等于2.6,并且操作系统信息包含CentOS的目标主机运行uptime命令
func "*" call --filter "kernel>=2.6,CentOS in os" command run "uptime"
示例:所有满足内核版本大于或等于2.6,或者运行级别等于5的目标主机运行df -m 命令
func "*" call --filteror "kernel>=2.6,runlevel=5 in os" command run "df -m"

阅读(295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~