一、故障现象
1、在客户端安装好func及certmaster,配好certmaster参数。
2、service funcd start,端口及进程都起来了。
3、在certmaster server 运行certmaster-ca --list死活看不到客户端的主机名。
排查过程
1、将certmaster的主机名换成IP,无效。
2、更新客户端的func及certmaster版本,无效。
3、运行/usr/bin/certmaster-request,提示:socket.error: (111, 'Connection refused'),将certmaster修改成localhost就正常了。原因可以就在这里,因为certmaster是双向的,发现在/etc/hosts中有主机名指向127.0.0.1,此时连接不上certmaster server了。将/etc/hosts中的主机名删除,再用/usr/bin/certmaster-request来测试连接,成功!!在certmaster也能看到主机了,大功告成。
二、故障现象
#/usr/local/bin/certmaster-request 被控端证书请求
certificate does not match key (run certmaster-ca --clean first?)
排查过程
1、删除/etc/pki/certmaster/证书文件再试,无效
2、分别重启certmaster、funcd服务,无效
3、删除服务器证书文件.cert后再请求正常。
原因为主机名称发生变更时服务器端certmaster-ca -c "servername"没有成功删除.cert文件导致。
二、后续问题
1、ImportError: No module named dbm (NetSeek提供)
解决:
yum -y install gdbm gdbm-devel
1、在客户端安装好func及certmaster,配好certmaster参数。
2、service funcd start,端口及进程都起来了。
3、在certmaster server 运行certmaster-ca --list死活看不到客户端的主机名。
排查过程
1、将certmaster的主机名换成IP,无效。
2、更新客户端的func及certmaster版本,无效。
3、运行/usr/bin/certmaster-request,提示:socket.error: (111, 'Connection refused'),将certmaster修改成localhost就正常了。原因可以就在这里,因为certmaster是双向的,发现在/etc/hosts中有主机名指向127.0.0.1,此时连接不上certmaster server了。将/etc/hosts中的主机名删除,再用/usr/bin/certmaster-request来测试连接,成功!!在certmaster也能看到主机了,大功告成。
二、故障现象
#/usr/local/bin/certmaster-request 被控端证书请求
certificate does not match key (run certmaster-ca --clean first?)
排查过程
1、删除/etc/pki/certmaster/证书文件再试,无效
2、分别重启certmaster、funcd服务,无效
3、删除服务器证书文件.cert后再请求正常。
原因为主机名称发生变更时服务器端certmaster-ca -c "servername"没有成功删除.cert文件导致。
二、后续问题
1、ImportError: No module named dbm (NetSeek提供)
解决:
yum -y install gdbm gdbm-devel
File "/usr/bin/certmaster", line 3, in <module>
from certmaster import certmaster
ImportError: No module named certmaster
原有的python为2.4 自己升级了下phtyon2.6 2.7 源码编译的,然后做了一个python命令的软连接。
再次启动就出现了这个问题@_@
root@master func]# func '*' ping
Traceback (most recent call last):
File "/usr/local/bin/func", line 28, in <module>
cli.parse(argv)
File "/usr/local/lib/python2.7/site-packages/func/overlord/command.py", line 247, in parse
return self.subCommands[command].parse(args[1:])
File "/usr/local/lib/python2.7/site-packages/func/overlord/command.py", line 228, in parse
ret = self.do(args)
File "/usr/local/lib/python2.7/site-packages/func/overlord/cmd_modules/ping.py", line 60, in do
noglobs=True)
File "/usr/local/lib/python2.7/site-packages/func/overlord/client.py", line 247, in __init__
self.setup_ssl()
File "/usr/local/lib/python2.7/site-packages/func/overlord/client.py", line 258, in setup_ssl
myname = func_utils.get_hostname_by_route()
File "/usr/local/lib/python2.7/site-packages/func/utils.py", line 129, in get_hostname_by_route
if ip != "127.0.0.1" and hostname is not None:
UnboundLocalError: local variable 'ip' referenced before assignment
[root@w1-db ~]# service funcd start
Starting func daemon:
[root@w1-db ~]# service funcd status
/usr/bin/funcd is not running
[root@w1-db ~]# tail -n 10 /var/log/func/func.log
return self.__send(self.__name, args)
File "/usr/lib64/python2.4/xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/usr/lib64/python2.4/xmlrpclib.py", line 1147, in request
return self._parse_response(h.getfile(), sock)
File "/usr/lib64/python2.4/xmlrpclib.py", line 1286, in _parse_response
return u.close()
File "/usr/lib64/python2.4/xmlrpclib.py", line 744, in close
raise Fault(**self._stack[0])
分析步骤:1、主的certmaster端口、从的func、certmaster端口是否都监听,相互telnet是否正常?2、查看/var/log/func及certmaster日志。3、主从python版本是否一致?
============================================
找到问题了,有一个列出模块的指令,发现所有的模块都没有安装,但是安装的时候我确认所有的步骤都走过了。
后来发现func-Trac里的func.git里很多文件夹里都给出了Makefile,而我从官方下载的几个源码包里都是一个Makefile也没有,不知道是不是这个造成的。
请问刘老师,或者其他运行正常的朋友,你们的源码包里有Makefile吗?
没有任何提示信息? ubuntu下尝试加sudo来运行。
============================================
没有提示,直接就是下一行的提示符,加了sudo也是一样的
另外我将控制端本机也加成了被控端试了试,还是能发证书,然后用起来没有任何提示和效果
安装的时候基本是按你的教程做的,第一次不成功,第二次为了保险,ln的时候把/usr/local/bin里所有的文件都链接到/usr/bin了,也还是一样
运行func的时候听不到包,给我的感觉是certmaster运行的很正常,而func的命令都失效
新装的机器,是不是少哪些包没有安?
2011/04/21 09:44
你好,我的两个系统是ubuntu10.10,一台用的是虚拟机,python2.6
主控端certmaster、被控端funcd服务都起来了(我看func-trac上写的只开这两个服务就成了),证书也sign了,可是所有的func命令都没有效果,就是没有回应输出,请问可能是什么原因?
另外chkconfig --level 345 certmaster on命令在两台机器上都出错:
insserv: warning: script 'K20acpi-support' missing LSB tags and overrides
insserv: Script certmaster is broken: incomplete LSB comment.
insserv: missing `Required-Stop:' entry: please add even if empty.
insserv: Service network has to be enabled to start service certmaster
insserv: exiting now!
/sbin/insserv failed, exit code 1
chkconfig是刚下载的最新版,服务里有network字样的状态都是“?”,而且无法命令启动
刘天斯 回复于 2011/04/21 10:31
先确认func "hostname" ping 是否正常。
===================================================================
也是没有显示
主控端certmaster、被控端funcd服务都起来了(我看func-trac上写的只开这两个服务就成了),证书也sign了,可是所有的func命令都没有效果,就是没有回应输出,请问可能是什么原因?
另外chkconfig --level 345 certmaster on命令在两台机器上都出错:
insserv: warning: script \\\'K20acpi-support\\\' missing LSB tags and overrides
insserv: Script certmaster is broken: incomplete LSB comment.
insserv: missing `Required-Stop:\\\' entry: please add even if empty.
insserv: Service network has to be enabled to start service certmaster
insserv: exiting now!
/sbin/insserv failed, exit code 1
chkconfig是刚下载的最新版,服务里有network字样的状态都是“?”,而且无法命令启动
这样的话,我是不是要每个业务建立一个master!
但是现在同样遇到jhxhj的问题,我按照他的建议,在/etc/hosts里面已经将master端的ip和主机名添加,但是还是不行
运行func "*" ping提示失败
我现在将该python版本按照人家教的,升级到了2.6.5,这个问题还是存在,我想问下dbm这个模块在用yum安装时是不是gdbm这个,或者是我升级python时出错,才会导致这个问题的
yum的话只能更新到Python2.4.3
现在我是自己安装到2.5.2的
这个dbm模块应该去哪里下载,是不是gdbm这个,如果是的话,我的服务器已经安装了!
现在我安装完后,执行certmaster-ca --list-sign后也可以看到注册的客户端了,但是在执行func “”命令时,提示出现
[root@Funcmaster bin]# func "*" call --forks="5" command run "date"
Traceback (most recent call last):
File "/usr/local/bin/func", line 23, in <module>
import func.overlord.func_command as func_command
File "/usr/local/lib/python2.5/site-packages/func/overlord/func_command.py", line 19, in <module>
from func.overlord import client,base_command
File "/usr/local/lib/python2.5/site-packages/func/overlord/client.py", line 32, in <module>
import func.forkbomb as forkbomb
File "/usr/local/lib/python2.5/site-packages/func/forkbomb.py", line 19, in <module>
import dbm
ImportError: No module named dbm
我想问下,这个是不是我中间安装步骤出错了,还是缺少什么软件
1,是FUNC的源,这块我在查找时找了很多都没有很好的下载源,网上发布的说明文档里的GZ下载点都是无效的,下面介绍是通过GIT方式进行下载的
#rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
#yum install git
#git-clone http://git.fedorahosted.org/git/certmaster.git
这样就把certmaster整个目录就下载下来了。
下载func:
#git-clone http://git.fedorahosted.org/git/func.git
2.我安装好运行的时候会出现一个提示的,说sha加密方式不行,
vi /usr/local/lib/python2.6/site-packages/certmaster/certmaster.py
import hashlib #把原有的sha改成 hashlib
3.在master端修改
[root@fosttest101 ~]# cat /etc/certmaster/minion.conf
# configuration for minions
[main]
certmaster = fosttest101
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
slave端配置
[root@fostfb ~]# cat /etc/certmaster/minion.conf
# configuration for minions
[main]
certmaster = 192.168.238.101 #服务器地址
certmaster_port = 51235
log_level = DEBUG
cert_dir = /etc/pki/certmaster
[root@fostfb ~]# cat /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 = fostfb #自身计算机器名
method_log_dir = /var/log/func/methods/
service funcd start
Chkconfig --level 345 funcd on
还有最重要的就是在/etc/hosts文件里把对方的服务器主机名及IP添上,因为如果没有的话那么就算证书已经签发成功你用func "*" ping也会显示不通
如192.168.1.1 test1
func "*" call system list_modules
出现{'fostfb': ['REMOTE_ERROR',
'socket.error',
'[Errno 111] Connection refused',
想请教一下是不是我哪里错误了,我用certmaster-request测试是不会报错的,而且也能通过certmaster-ca签名证书的。