最近一直在看刚买的那两本书,趁着热乎劲,就把看到的内容整理出来,留着以后复习用,今天来学习一下Puppet工具的使用。

puppet是基于Ruby写成的自动化部署工具,c/s结构,工作模式是在服务器端安装puppet-server包,在客户端安装puppet客户端软件,当客户端连接上puppet master后,定义在master的配置文件会被编译,然后在客户端运行。

实验环境一台centos6.2(10.0.0.16,主机名:baidu.com,master)

centos6.0(10.0.0.7,主机名:shanker.com,client)。

先ntpdate更新好两台电脑的时间,ntpdate ntp.api.bz

安装Puppet需要的软件包,用yum安装

yum -y install mysql mysql-devel mysql-server ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri

书上作者说Puppet不支持ruby1.8.7以上版本,但是我安装的是1.8.7是支持的

 
  
  1. [root@baidu ~]# ruby --version 
  2. ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-linux] 
  3. [root@baidu ~]# 

然后下载最新的 puppet-2.7.10.tar.gz和facter-1.6.5.tar.gz ,地址在http://puppetlabs.com/downloads/{facter,puppet}里可以找到。

先安装facter,tar zxvf facter-1.6.5.tar.gz 

cd facter

/usr/bin/ruby install.rb

然后安装puppet,解包,然后ruby install.rb

 
  
  1. mkdir /etc/puppet 
  2.  
  3. cp conf/auth.conf   /etc/puppet/ 
  4.  
  5. cp conf/redhat/fileserver.con /etc/puppet/ 
  6.  
  7. cp conf/redhat/puppet.conf  /etc/puppet/ 
  8.  
  9. cp conf/redhat/server.init  /etc/init.d/puppetmaster 
  10.  
  11. chmod +x /etc/init.d/puppetmaster 
  12.  
  13. chkconfig --add puppetmaster 
  14.  
  15. chkconfig puppetmaster on 
  16.  
  17. mkdir /etc/puppet/manifests 

创建puppet帐号

puppdtmasterd  --mkusers,如果这条命令执行错误,那就是代表以前创建过puppet的用户,只要自己手工创建就可以解决。

groupadd puppet

useradd -g puppet puppet

然后创建相应的目录

mkdir -p /var/lib/puppet/rrd

chown puppet:puppet /var/lib/puppet/rrd

启动服务

/etc/init.d/puppetmaster start

______________________________________________________________________

下面是客户端的配置,安装都是一样

复制配置文件

 
  
  1. mkdir /etc/puppet 
  2.  
  3. cp conf/auth.con /etc/puppet 
  4.  
  5. cp conf/namespaceauth.con /etc/puppet 
  6.  
  7. cp conf/redhat/puppet.con  /etc/puppet 
  8.  
  9. cp conf/redhat/client.init /etc/init.d/puppet 
  10.  
  11. chmod +x /etc/init.d/puppet 
  12.  
  13. chkconfig --add puppet 
  14.  
  15. chkconfig puppet on 

创建puppet帐号

puppetd --mkusers

建立puppet相应目录

mkdir -p /var/lib/puppet/rrd

chown puppet:puppet /var/lib/puppet/rrd

启动服务

/etc/init.d/puppet start

然后向server端发出请求指令

puppet --test --server baidu.com

puppet server端要接受客户端的请求

puppetca -s -a

-a表示接受全部请求

客户端在发一次请求

puppetd --test --server baidu.com -w

6

shell会出现蓝色的字体

下面进行内容测试

在服务器端/etc/puppet/manifests 下建立site.pp

内容如下

 
  
  1. [root@baidu tmp]# cat /etc/puppet/manifests/site.pp 
  2. node default{ 
  3. file { "/tmp/test.txt": 
  4.         content =>"this is a test 02/03/2012,hello, this is from shanker server", 
  5.         ensure =>present, 
  6.         owner=> root, group=>root, mode=>440, 

然后在客户端在执行

puppetd --test --server baidu.com -w 6

实验到此结束,感觉puppet博大精深,我只领会到一点,以后工作中用到了 好好学习学习。