puppet作为自动化运维当中的重要工具,其可以进行批量服务器或者指定服务器软件版本更新、配置更新等等。


闲话少说,直接进主题。


软件版本:

OS :

cat /etc/issue

CentOS release 5.8 (Final) #### i386

Kernel \r on an \m


puppet --version

3.7.1


在puppet服务端和客户端分别安装puppet-server和puppet

由于puppet是基于ruby开发的,请在1之前,先确认系统是否有ruby,没有请自行安装。



以下是安装步骤,在服务端和客户端,分别

yum install ruby ruby-libs ruby-shadow

在服务端和客户端,首先下载puppet的repository所学的rpm,这会自动给系统添加puppet的yum源

rpm -Uvh http://yum.puppetlabs.com/puppetlabs-release-el-5.noarch.rpm

#具体版本需要根据操作系统选择

然后,在服务端,执行

yum install puppet-server

在客户端,执行

yum install puppet

至此,安装结束,下面是简单配置,并测试是否可以通过Puppet来推送一个文件。


6. 在服务端,编辑

vi /etc/puppet/manifests/site.pp

node default

{

file

{

"/tmp/puppet-test1.txt":content => "This is a puppet test!\n";

}

}


7.在客户端

puppet agent --server cahoa.linux.net --test --verbose --debug --no-daemonize

#向服务端申请认证,并获取文件,开启了详细信息模式(verbose),调试模式(debug),输出信息重 #定向到控制台模式(no-daemonize)


8.可以看到,上述命令运行,最后输出是:

Exiting; no certificate found and waitforcert is disabled

这是agent向master发出证书验证请求,等待master签名返回证书。


9.在服务端,验证客户端

puppet cert --list

"cahou.linux.net" (SHA256) 22:17:7D:3D:0B:02:**********************************************************(*号部分为省略内容)


服务端签署验证客户端,

puppet cert sign cahou.linux.net --verbose --debug --no-daemonize


10.在客户端,再次运行配置,请求服务端资源


puppet agent --server cahoa.linux.net --test --verbose --debug --no-daemonize


11.在客户端查看,可以看到,已经在指定位置创建了指定内容的文件。


cat /tmp/puppet-test1.txt

This is a puppet test!