Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29335661
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-11-23 23:08:44

func学习笔记

时间:2010-11-23

1、  前言

研究了一段时间puppet,发现有些东西用puppet来解决似乎效果不太理想。再结合以前的一些经验,学习下func这个FC的管理工具。发现结合puppetfunc用起来效果会比较理想。应该能够解决目前所遇到的问题。

2、安装

   直接使用yum安装

#yum install func

3、配置func

#master端的配置

#/etc/certmaster/certmaster.conf  这个是certmaster-daemon的配置文件

[main]

autosign = yes 如果设置为yes则默认就接受请求

listen_addr =  PS:在puppet里面如果要监听listen=true的话得指定IP

listen_port = 51235

cadir = /etc/pki/certmaster/ca

cert_dir = /etc/pki/certmaster

certroot = /var/lib/certmaster/certmaster/certs

csrroot = /var/lib/certmaster/certmaster/csrs

cert_extension = cert

#/etc/certmaster/minion.conf  是被func minions使用的

[main]

certmaster = certmaster   #填写M机的hostname

certmaster_port = 51235   #主控机监听的端口号

log_level = DEBUG         #日志级别

cert_dir = /etc/pki/certmaster  #被控机寻找ssl的目录 puppet里面也有这个值!

#slave端配置

#/etc/func/minion.conf funcfuncd-daemon用的这个配置文件

# configuration for minions

[main]

log_level = DEBUG

acl_dir = /etc/func/minion-acl.d   包含ACL目录位置

listen_addr =                      这个值是否需要配置呢?

listen_port = 51234                客户机的监听端口值

PS:个人感觉这个配置文件更加是适合于funcd-daemon用的。因为其要监听端口

反而那个/etc/certmaster/minion.conf 是为了解决客户端与服务器通讯成立的

客户端只需要修改这个文件即可。指定其master就行了~

 

配置结论:

1.Master端只需要配置一下/etc/certmaster/certmaster.conf 即可将其中的auto-signing配置一下。然后再

#/sbin/chkconfig --level 345 certmaster on

#/sbin/service certmaster start

funcd无关。Funcd是一个监听进程应当是在客户端启。

2.Slave端配置只需要配置一下/etc/certmaster/minion.conf指定里面的certmaster即可

再运行:

#/sbin/chkconfig --level 345 funcd on

#/sbin/service funcd start

就行~

总结KS安装funcd的步骤

1.     修改hosts

2.     安装func。并配置/etc/certmaster/minion.conf

3.     chkconfig服务并将funcd启动。

 

如果我将/etc/func/minion.conf里面的listen_addr = 192.168.83.131 把地址写到其IP的话那ss –ln看到就是

Local Address:Port                    Peer Address:Port

192.168.83.131:51234                              *:*

PS:在python里面如果监听全部网卡的方法是监听*。所以默认不填写的话是会监听全部物理网卡的!

 

四、感受一下常用的一些操作命令

#func "client.puppet.com" call system list_modules

查看支持哪些模块。

Func全部的模块位于:

/usr/lib/python2.3/site-packages/func/minion/modules/ 你可以编写自己的模块

#func "client.puppet.com" call certmastermod list_methods

查看这个模块支持哪些方法

PS:这两个非常用帮助。比如我们刚使用某个模块的时候不太熟悉就可以使用这个来帮助快速查询一下到底有哪些模块与哪些方法可用!

# func "client.puppet.com" call command list_methods 来看下command这个模块

# func "client.puppet.com" call command run "date"

('client.puppet.com', [0, 'Sat Nov  6 14:56:21 EDT 2010\n', ''])

 

# func "client.puppet.com" call test list_methods 这个模块里面的一些方法会经常用

    # func "client.puppet.com" call test ping

    #func "client.puppet.com" call test echo "e"

调用格式:func 主机名(“主机名1;主机名2;”) call 模块名 方法名  参数名 参数名

 

五、使用func-transmit

不再需要使用命令行进行操作直接使用这个命令一次导入一个配置文件进来

func-transmit --json < data 这个配置文件里面的内容

* '''clients''': (Required) list of client you want to call. Could be list,single string or special character ("*").

* '''aysnc''': (Optional-Default False) boolean that say if you want to call func in async mode (True) or in synch mode (False)

* '''nforks''': (Optional-Default 1) Number of forks you want to use to execute the calls to your clients. For example, if you have to execute a command on 10 different minions, you can use nforks=2 and each one call and get results on 5 minions.

* '''module''': (Required**) name of the module you want to call

* '''method''': (Required) method inside that module to invoke

* '''parameters''': (Optional-Default None) some additional parameters

 

得到这么一个返回结果值

[1, {host1:response, host2:response}]

说明其中的数字的含义

Possible process statuses are:

'''0''': your job is still running

'''1''': finished

'''2''': "lost in space". We cannot find job associated to provided pid

'''3''': partial (executing but hasn't finished yet)

'''4''': remote error

 

PS:怪不得今天总出现这个值了。原来是出现了0给截断的原故?

如果是远程PHP过来调用的话就会有这种情况~结果值可能会为0这种情况!

思考:能否考虑使用php来调用呢?将rpc-json这一层去掉得了~

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

chinaunix网友2010-11-28 12:23:15

先完成掉真正完成掉一件事情了再去做另外一件事情!

chinaunix网友2010-11-25 08:32:17

哪怕我不再写程序了。我希望自己一样可以在linux内核领域深入钻研下去!

chinaunix网友2010-11-25 08:31:16

不论经历了什么都希望自己能够坚持下去!职业目标至始不变