一、配置Puppetmaster

  在第一部分中我们在centos 5.6 64bit安装puppetmaster 和puppetd 软件包,现在我们配置一个基于c/s 模型,在服务端将/etc/resolv.conf 自动分发到 客户端

 1.1创建你的第一个模型

我们的第一个模型叫networking::resolver, 它将推送一个 resolv.conf 到客户端

在/etc/puppet 创建我们的目录体系
 


  
  1. # cd /etc/puppet  
  2. # mkdir {modules,files}  
  3. # mkdir modules/networking/{files,mainfests} 

1.2创建 resolv.conf

# vim modules/networking/files/resolv.conf
 


  
  1. nameserver 202.106.0.20  
  2. nameserver 202.102.128.68 

创建你的 mainfest模型

# vim modules/networking/manifests/init.pp


  
  1. class networking {  
  2.  
  3. }  
  4.  
  5. class networking::resolver inherits networking {   
  6. file { "/etc/resolv.conf":   
  7. ensure => present,  
  8. source => "puppet:///modules/networking/resolv.conf",  
  9. group => "root",  
  10. owner => "root",  
  11. mode => "0755" 
  12. }  


1.3 配置你的站点 和节点

创建一个 最小化的站点文件
# vi manifests/site.pp
 


  
  1. import "nodes" 
  2. import "templates" 
  3.  
  4. filebucket { main: server => puppet }  
  5.  
  6.  
  7. Create a tempates file  
  8.  
  9. # vi manifests/templates.pp  
  10. class baseclass {   
  11. include networking::resolver  
  12. }  
  13.  
  14. node default {   
  15. include baseclass  

1.4 创建你的节点文件


不要忘了在将puppetmaser替换为你自己的主机名
 

# vi manifests/nodes.pp
 


  
  1. node 'basenode' {   
  2. include baseclass  
  3. }  
  4.  
  5. node 'puppetmaster' inherits basenode {   


二、设置puppetmaster 属性


2.1 创建默认配置文件(yum安装后,就有了下面的配置文档)

 # vi puppet.conf
 


  
  1. [main]  
  2. # The Puppet log directory.  
  3. # The default value is '$vardir/log'.  
  4. logdir = /var/log/puppet  
  5.  
  6. # Where Puppet PID files are kept.  
  7. # The default value is '$vardir/run'.  
  8. rundir = /var/run/puppet  
  9.  
  10. # Where SSL certificates are kept.  
  11. # The default value is '$confdir/ssl'.  
  12. ssldir = $vardir/ssl  
  13.  
  14. [agent]  
  15. # The file in which puppetd stores a list of the classes  
  16. # associated with the retrieved configuratiion. Can be loaded in  
  17. # the separate ``puppet`` executable using the ``--loadclasses``  
  18. # option.  
  19. # The default value is '$confdir/classes.txt'.  
  20. classfile = $vardir/classes.txt  
  21.  
  22. # Where puppetd caches the local configuration. An  
  23. # extension indicating the cache format is added automatically.  
  24. # The default value is '$confdir/localconfig'.  
  25. localconfig = $vardir/localconfig  
  26. report = true 
  27.  
  28. [master]  
  29. autosign = true 
 


2.2 为你的文件服务器设置权限


# vi fileserver.conf

 


  
  1. [files]  
  2. path /etc/puppet/files  
  3. allow *  
  4.  
  5. [modules]  
  6. allow *  
  7.  
  8. [plugins]  
  9. allow * 


2.3 启动puppetmaster
 

# service puppetmaster start
 


  
  1. Starting puppetmaster: [ OK ] 


三。配置puppet 客户端

在客户端服务器上,编辑你的puppet.conf,在[agen]部分添加下列内容,注意将puppetmaster 替换你的主机名
# vi /etc/puppet/puppet.conf
 


  
  1. [agent]  
  2. server = puppetmaster  
  3. report = true 
  4. listen = true 


四、设置 puppetrunner

 

创建一个叫namspaceauth.conf 文件,并添加下列的内容。
# vi /etc/puppet/namespaceauth.conf
 


  
  1. [puppetrunner]  
  2. allow * 


4.1 启动 puppetd
 

# service puppet start


五、测试puppet客户端和服务端是否正常通信


  
  1. # puppetd --server puppetmaster --test  
  2. --- /etc/resolv.conf 2011-09-08 20:14:03.000000000 +0800  
  3. +++ /tmp/puppet-file.30611.0 2011-09-09 17:49:26.000000000 +0800  
  4. @@ -1,2 +1 @@  
  5. nameserver 202.106.0.20  
  6. -nameserver 202.106.196.115   
  7. info: FileBucket adding {md5}d7ee49734e75e85345c70a702c69332c  
  8. info: /Stage[main]/Networking::Resolver/File[/etc/resolv.conf]: Filebucketed /etc/resolv.conf to puppet with sum d7ee49734e75e85345c70a702c69332c  
  9. notice: /Stage[main]/Networking::Resolver/File[/etc/resolv.conf]/content: content changed '{md5}d7ee49734e75e85345c70a702c69332c' to '{md5}45c56312b1256329a125ee86b1a68dd1' 
  10. notice: Finished catalog run in 0.18 seconds 

 



下一节,将讲解puppet dashboard的安装配置。