Puppet之代码实例

注:所有安装都是通过apt来安装而非源码。版本为3.0.1

 

 puppet安装好的配置目录为/etc/puppet

实例一(Hello word)

目录结构说明:

  
  
  
  
  1. ├── auth.conf #
  2. ├── fileserver.conf #文件服务器配置文件
  3. ├── manifests #主文件所在目录
  4. │   └── site.pp #主文件(入口文件,必须有这个文件)
  5. ├── modules #各个模块所在目录
  6. ├── puppet.conf #主配置文件
  7. └── templates 

site.pp配置:

  
  
  
  
  1. node default { 
  2.     file { “/tmp/test”: 
  3.         content=>”hello”, 
  4.         mode => 0644; 
  5.     } 

同时在agent上输入:sudo  puppet agent  --test, 查看agent的/tmp文件夹,生成了一个新文件test,里面的内容是hello,该文件的权限是-rw-r--r--。这样,便证明puppet安装成功。

实例二(只更新apt源):

  
  
  
  
  1. . #目录结构
  2. ├── auth.conf 
  3. ├── fileserver.conf 
  4. ├── manifests 
  5. │   ├── nodes.pp 
  6. │   └── site.pp 
  7. ├── modules 
  8. │   └── apt 
  9. │       ├── files 
  10. │       │   └── sources.list 
  11. │       └── manifests 
  12. ├── puppet.conf 
  13. └── templates 

各文件内容:

  
  
  
  
  1. #--site.pp  
  2. import "nodes.pp"  
  3.   
  4. #--node.pp  
  5. node 'agent1.com'{  
  6.     file { "/etc/apt/sources.list":  
  7.         ensure => file,  
  8.         source => "puppet:///modules/apt/sources.list",  
  9.     }    
  10. }  
  11.  
  12. #--modules/apt/files/sources.list 
  13. deb http://xxxx/ubuntu lucid main restricted universe multiverse  
  14. deb http://xxxx/ubuntu lucid-security main restricted universe multiverse  
  15. deb http://xxxx/ubuntu lucid-updates main restricted universe multiverse  
  16. deb http://xxxx/ubuntu lucid-proposed main restricted universe multiverse  
  17. deb http://xxxx/ubuntu lucid-backports main restricted universe multiverse  

配置完成后在agent上输入:sudo  puppet agent  --test然后查看/etc/apt/sources.list是否是modules/apt/files/sources.list的内容。

注意:

  
  
  
  
  1. file { "/etc/apt/sources.list":     
  2.     source => "puppet:///modules/apt/sources.list",  
  3. }   

source 参数是这样约定的: puppet:/// 之后的第一部分假定是一个 挂装点(mount point) 名称,其余部份被视为一个文件路径,如下所示:

  
  
  
  
  1. puppet:///<mount point>/<path> 

通常 <mount point> 的值是一个模块名称,如上例所示。在这个例子中, Puppet 将在如下的位置查找文件:

  
  
  
  
  1. modules/apt/file/sources.list 

实例三(完整使用模块更新apt源):

  
  
  
  
  1. ├── auth.conf 
  2. ├── fileserver.conf 
  3. ├── manifests 
  4. │   ├── modules.pp 
  5. │   ├── nodes.pp 
  6. │   └── site.pp #可设置全局变量,参数缺省值 (当各个模块没有设置这些参数时,它们的缺省值)以及其它pp文件的调用
  7. ├── modules 
  8. │   └── apt  #apt 模块
  9. │       ├── files  #该模块对应的文件资源,可能是要发送给slave的配置文件等
  10. │       │   └── sources.list 
  11. │       └── manifests  #模块的manifest文件
  12. │           └── init.pp #模块入口文件
  13. ├── puppet.conf 
  14. └── templates 

文件内容:

 

  
  
  
  
  1. #--site.pp  
  2. import "nodes.pp"  
  3. import "modules.pp"  
  4.   
  5. #--node.pp  
  6. node 'agent1.com'{  
  7.     include apt   
  8. }  
  9.   
  10. #--modules.pp  
  11. import "apt"  
  12.   
  13. #--modules/apt/manifests/init.pp 
  14. class apt {      
  15.       file { "/etc/apt/sources.list":          
  16.           ensure => file,          
  17.           source => "puppet:///modules/apt/sources.list"
  18.      }      
  19.   

配置完成后在agent上输入:sudo  puppet agent  --test然后查看/etc/apt/sources.list是否是modules/apt/files/sources.list的内容。

你可能感兴趣的:(实例,puppet)