由于之前有位大师已经详细的讲解了如何搭建puppet+svn+func,在这里我就不多说了,要不然就算不上原创了,需要了解如何搭建就请参考以下地址吧
http://blog.chinaunix.net/uid-14880689-id-3201948.html
在这里我主要说一下我安装时碰到的一些问题
1、svn触发脚本
触发脚本的名称是post-commit,这个脚本需要手动创建,触发脚本放在hooks目录下。每个人的svn根目录不一样,我的是/opt/svndata/puppet/hooks。当使用commit提交svn时就会触发这个脚本。
2、触发脚本中使用sudo报错
我在编辑post-commit脚本是发现,执行某些命令权限不足,于是加了sudo,却发现报错
解决方法:编辑/etc/sudoers,将Defaultsrequiretty注释掉
3、触发脚本中调用的一条shell语句
ssh -np 33777 root@192.168.7.156 “svn up svn://192.168.7.135:9999/puppet /etc/puppet –username=puppet –password=puppet;sh /www/leary/run_client.sh”
这条语句刚开始不是很明白,后来自己仔细的捋了一下流程,才发现这个是puppet服务端更新svn客户端用的,就是说在puppet服务器上安装一个svn客户端,这个命令就是用来更新svn的。
所以这条命令涉及到了两个问题:
(1)、linux版本svn客户端安装
subversion-1.6.15.tar.gz
subversion-deps-1.6.15.tar.gz
tar zxvfsubversion-1.6.15.tar.gz
tar zxvfsubversion-deps-1.6.15.tar.gz
./configure --prefix=/opt/svn
make && make install
将svn命令链接到/usr/local/bin目录下
ln -s /usr/local/subversion/bin/svn /usr/local/bin
执行svn help 如果出现命令列表,则表示已经链接成功
建立svn目录
执行svn co http://192.168.7.135:999/svn/puppet /etc/ --username=puppet --password=puppet
执行成功后会在/etc/下生成puppet目录
(2)、不用密码使用ssh直接登录服务器
登陆svn服务器
[root@localhost /]# ssh-keygen (回车,回车,一直回车)
在/root/.ssh/下面会生成两个文件
私有密钥id_rsa
公共密钥id_rsa.pub
将私有密钥id_rsa复制到puppet服务器/root/.ssh/下面,并重命名为authorized_keys