不要相信,也不要看网络上面的puppet的安装文档,基本全部都是同一的使用YUM包安装的结果。
我测试结果就是,server和client永远出现SSL认证出现错误,无法同步。
我这里是采用官方网站的源码包的安装步骤完成puppet的安装。
操作系统:CentOS 5.2 64Bit
Puppet版本:2.6.4
Facter版本:1.5.8
1. 登陆puppet官方网站下载最新的源码包(2.6.4),而且重要的是还需要提前下载facter源码包(1.5.8)。
2. 登陆server服务器,将源码下载下来之后。先解压缩facter压缩包,安装facter
注:安装ruby的软件包,不能直接运行install,必须使用ruby install.rb,保证安装的完整性,后面安装puppet如果是直接install.rb,会导致部分配置文件无法生成。
3. 安装完毕facter之后,解压puppet,安装puppet。
注:这里直接安装puppet之后就是将server服务也安装完成,不像YUM中吧puppet和puppet-server分隔开来的。所有的指令都是分布在/user/sbin下面。
4. 修改/etc/hosts文件,添加一个127.0.0.1 puppet
5. 安装完成之后,不像使用YUM安装,他会自动给系统安装上一个puppet的用户。这里源码不会自动完成,需要自己添加一个puppet的用户。
Useradd -M -s /sbin/nologin puppet
然后将/var/lib/puppet文件夹的权限分配给puppet用户,不然后面启动会报错。
6. 在/etc/puppet/manifests目录下面创建一个site.pp的文件。
file { "/tmp/test.txt ":
owner => root, group => root, mode => 440
}
此文件作为同步的标注文件。
7. 启动server服务器:puppetmasterd --verbose --no-daemonize
你可以使用ps -auxf看到服务使用的用户是puppet
8. 登陆客户端服务器,修改/etc/hosts文件,添加一个192.168.0.123 puppet(server端的IP地址)
9. 按照前面的办法重新安装一次facter和puppet
10. 开始测试连接,puppetd --server puppet --waitforcert 6 --test
由于一直打开server服务端的监控,能看到client请求过来的request。
在服务端多开一个控制台,puppetca --sign 客户端的主机名,完成认证操作。
11. 最终客户端显示如下:
info: Caching catalog for test134
info: Applying configuration version '1293528341'
notice: Finished catalog run in 0.02 seconds
以上表示成功!