环境:CentOS 6.5 x86_64


安装依赖环境:

ruby 1.8:yum安装

ruby gem:yum安装

openssl:yum安装

gcc 编译环境:yum安装

#yuminstallrubygccglibcrubygemsopenssl*


2. 安装好后可以安装 hiera、facter、puppet了。

下载源码包。

puppet官方源码包下载地址:https://downloads.puppetlabs.com/


hiera版本:1.3.4

facter版本:2.4.5

puppet版本:3.8.5

#tarxfhiera-1.3.4.tar.gz#rubyhiera-1.3.4/install.rb#tarxffacter-2.4.5.tar.gz#rubyfacter-2.4.5/install.rb#tarxfpuppet-3.8.5.tar.gz#rubypuppet-3.8.5/install.rb#puppet-V#查看版本号/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require':nosuchfiletoload--json(LoadError)from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/module.rb:3from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/files.rb:1from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/templatewrapper.rb:1from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/scope.rb:6from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/methods.rb:2from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/method_call.rb:2from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:115from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser/parser.rb:11from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/parser.rb:4from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet.rb:282from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require'from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`require'from/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:12from/usr/bin/puppet:7:in`require'from/usr/bin/puppet:7

报错,gem里面的json软件包没有安装。

#yuminstallrubygem-json#发现没有该软件包

我这里选择用yum的方式安装 rubygem-json ,首选要安装puppet 的源。

#rpm-ivhhttp://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm#yuminstallrubygem-json#或者geminstalljson

可以正常运行了。


3. 配置puppet 服务脚本

#cppuppet-3.8.5/ext/redhat/client.init/etc/init.d/puppet#puppetagent端服务脚本#cppuppet-3.8.5/ext/redhat/master.init/etc/init.d/puppetmaster#puppetmaster端服务脚本#chmod+x/etc/init.d/puppet*#servicepuppetstart

可以正常启动。





其实puppet的安装 本人在这里并不推荐使用源码的方式来安装,反倒推荐使用puppetlabs官方的源来yum安装。另外后续的mCollective以及其依赖 也可以通过官方的源来安装。


1,安装puppetlabs官方yum源

#rpm-ivhhttp://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm


2,安装ruby环境,和ruby-gems (必须是1.8.7版本)

#yuminstallrubyrubygems


3,安装puppet 客户端(会自动处理依赖关系)

#yuminstallpuppet

客户端的服务脚本为/etc/init.d/puppet


4,安装puppet master服务端(注意如果主机上安装有epel源,那么epel源也有个puppet服务端,不过是很老的版本,包名叫做puppetserver,在这里不适用,可不要安装错了!)

#yuminstallpuppet-server

服务端的服务脚本为/etc/init.d/puppetmaster 注意区分。



安装完成!


另外,我这里推荐主机的FQDN名称记录到相应的DNS记录中。那样你用facter获取到的fqdn才是主机的真实fqdn。 我遇到过这样的情况,客户端在向puppet server申请证书的时候,使用的是fqdn前面的主机名(例如设置hostname为server1.localdomain,那么向master发送的证书是server1,并不是server1.localdomain),结果我搞了好久,发现facter中的domain值没有获取到,facter fqdn出来的结果也只是server1 ,结果查看了源代码,发现最好把hostanme设置为DNS中存在的主机, 实验环境下可以在/etc/resolv.conf 中添加一条 domain localdomain,强制指定domain字段。