天天看点

puppet 学习(一: 安装及简单实例应用)

<b>本次安装环境是: centos 5.4 X86_64位</b>

<b>Server:  </b>

<b></b>

1.先安装ruby语言包、ruby标准库、ruby shadow库

  yum install -y  ruby ruby-libs ruby-shadow

2.需要添加EPRL库,来支持puppet

       wget http:// dl.fedoraproject.org /pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm

如果你的系统是centos 6版本的或者是centos 5版本但是是32位的,可以到网站:

dl.fedoraproject.org查找你们想要的

3.在master主机上,需要从EPEL仓库安装puppet、puppet-server facter

       rpm -Uvh epel-release-5-4.noarch.rpm

puppet软件包含了agent程序,puppet-server软件包含了master程序,facter软件包含了系统盘点工具facter,可以获取agent主机的相关信息

       yum install -y puppet puppet-server facter

之后启动puppet master

service puppetmaster start

启动 puppetmaster:[确定]

这样,puppet server上的安装算是完成了

现在,master和agent都安装好了,解释一下/etc/puppet/下的文件含义:

       Puppet.conf   puppet的服务端配置文件

       Auth.conf   client访问puppet server的acl配置文件

       Fileserver.conf   puppet server作为文件服务器的ACL配置文件

       Manidests    puppet的脚本目录文件目录

       Site.pp 文件告诉puppet去哪里寻找并载入指定的客户端配置,如果缺少此文件,puppet会启动失败的

 <b> </b><b>防火墙设置</b>:

       -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT

需要重启防火墙,service iptables restart

配置好防火墙后,就可以允许client访问puppet

<b>配置第一个agent</b>

<b>   </b><b>Client</b>:

同样需要安装epel-release-5-4.noarch.rpm

       rpm -ivh epel-release-5-4.noarch.rpm

在agent端只需要安装:

       yum install puppet facter

   <b>Client </b><b>请求</b>:puppet agent --server=puppet.xxxx.com(puppet master域名)  --verbose --no-daemonize

解释:参数

--server 指定了需要连接puppet master 的域名或者主机名,尽量使用域名吧,否则不同网络之间无法通过主机名相通

--no-daemonize 使得puppet 客户端运行在前端并输出日志到标准输出

--verbose 使客户端输出更详细的日志

<b>Server</b><b>端需要相应这个请求</b>:

查看:<b>puppet cert –list </b>   

  "shwt08" (94:BC:4A:FA:31:E1:10:9F:3C:4D:B3:E8:CB:A4:F8:B9)

<b>puppet cert --sign shwt08  </b>

notice: Signed certificate request for shwt08

notice: Removing file Puppet::SSL::CertificateRequest shwt08 at '/var/lib/puppet/ssl/ca/requests/shwt08.pem'

当然,如果我们有很多个client的话,都需要一个个去认证确实是一件很麻烦的事情,所以,修改puppet.conf文件,实现自动化认证

       在全局”[mian]”下添加一行:

       autosign = true

重启master

       service puppetmaster restart

重新添加一个clint,验证

       需要先去wget 后需要编辑/etc/hosts

之后puppet agent --server=puppet.xxxx.com  --no-daemonize –verbose 发现是没有问题的

<b>创建第一个配置:</b>

<b>在master</b><b>上修改两个文件:</b>

<b>       </b>目录/etc/puppet/manifests下:

              nodes.pp  site.pp  如果没有这两个文件就手工建吧

vi nodes.pp

       node default {

   file{"/root/vol_disk_check.sh":

        source =&gt; "puppet:///files/vol_disk_check.sh",

        owner =&gt; "root",

        group =&gt; "root",

        mode =&gt; 755;

   }

}

Vi site.pp

              import 'nodes.pp'

至于具体的解释说明,等下章再详细的解释下,这篇文章主要来阐明puppet安装及简易同步文件的效果

       <b>测试来同步一个文件 </b>

              puppet agent --server=puppet.xxxx.com --test -v

ok,从详细信息中,得知client已经同步文件了

下面说遇到的两个错误:

<b>错误1</b>:

       <b>err: Could not retrieve catalog from remote server: hostname not match with the server certificate </b>

解决办法:

       在master和client上查看是否二者日期不同步

       在client上配置/etc/hosts文件,编辑添加puppet.xxxx.com 解析(IP 域名)

<b>错误2</b>:

       err: Could not retrieve catalog from remote server: Connection refused - connect(2)

              这个是因为master 上的主程序没有启动的缘故,到master上查看程序puppetmaster 发现提示进程已死,

       service puppetmaster status

puppetmasterd 已死,但 pid 文件仍存

查看了下配置文件,发现是在修改fileserver.conf时修改错误导致的,也就是说当遇到这个错误提示的时候,要查看/etc/puppet目录下的主配置文件是否有问题

   文件fileserver.conf 中:[files]

  path /var/lib/puppet/files

这个path下是放置我们要同步更新的文件

      本文转自天真花语  51CTO博客,原文链接:http://blog.51cto.com/caibird/1148726,如需转载请自行联系原作者