Puppet之代码实例
注:所有安装都是通过apt来安装而非源码。版本为3.0.1puppet安装好的配置目录为/etc/puppet
实例一(Hello word)
目录结构说明:
[*].
[*]├── auth.conf #
[*]├── fileserver.conf #文件服务器配置文件
[*]├── manifests #主文件所在目录
[*]│ └── site.pp #主文件(入口文件,必须有这个文件)
[*]├── modules #各个模块所在目录
[*]├── puppet.conf #主配置文件
[*]└── templates
site.pp配置:
[*]node default {
[*] file { “/tmp/test”:
[*] content=>”hello”,
[*] mode => 0644;
[*] }
[*]}
同时在agent上输入:sudopuppet agent--test, 查看agent的/tmp文件夹,生成了一个新文件test,里面的内容是hello,该文件的权限是-rw-r--r--。这样,便证明puppet安装成功。
实例二(只更新apt源):
[*]. #目录结构
[*]├── auth.conf
[*]├── fileserver.conf
[*]├── manifests
[*]│ ├── nodes.pp
[*]│ └── site.pp
[*]├── modules
[*]│ └── apt
[*]│ ├── files
[*]│ │ └── sources.list
[*]│ └── manifests
[*]├── puppet.conf
[*]└── templates
各文件内容:
[*]#--site.pp
[*]import "nodes.pp"
[*]
[*]#--node.pp
[*]node 'agent1.com'{
[*] file { "/etc/apt/sources.list":
[*] ensure => file,
[*] source => "puppet:///modules/apt/sources.list",
[*] }
[*]}
[*]
[*]#--modules/apt/files/sources.list
[*]deb http://xxxx/ubuntu lucid main restricted universe multiverse
[*]deb http://xxxx/ubuntu lucid-security main restricted universe multiverse
[*]deb http://xxxx/ubuntu lucid-updates main restricted universe multiverse
[*]deb http://xxxx/ubuntu lucid-proposed main restricted universe multiverse
[*]deb http://xxxx/ubuntu lucid-backports main restricted universe multiverse
配置完成后在agent上输入:sudopuppet agent--test然后查看/etc/apt/sources.list是否是modules/apt/files/sources.list的内容。
注意:
[*]file { "/etc/apt/sources.list":
[*] source => "puppet:///modules/apt/sources.list",
[*]}
source 参数是这样约定的: puppet:/// 之后的第一部分假定是一个 挂装点(mount point) 名称,其余部份被视为一个文件路径,如下所示:
[*]puppet:///<mount point>/<path>
通常 <mount point> 的值是一个模块名称,如上例所示。在这个例子中, Puppet 将在如下的位置查找文件:
[*]modules/apt/file/sources.list
实例三(完整使用模块更新apt源):
[*].
[*]├── auth.conf
[*]├── fileserver.conf
[*]├── manifests
[*]│ ├── modules.pp
[*]│ ├── nodes.pp
[*]│ └── site.pp #可设置全局变量,参数缺省值 (当各个模块没有设置这些参数时,它们的缺省值)以及其它pp文件的调用
[*]├── modules
[*]│ └── apt #apt 模块
[*]│ ├── files #该模块对应的文件资源,可能是要发送给slave的配置文件等
[*]│ │ └── sources.list
[*]│ └── manifests#模块的manifest文件
[*]│ └── init.pp #模块入口文件
[*]├── puppet.conf
[*]└── templates
文件内容:
[*]#--site.pp
[*]import "nodes.pp"
[*]import "modules.pp"
[*]
[*]#--node.pp
[*]node 'agent1.com'{
[*] include apt
[*]}
[*]
[*]#--modules.pp
[*]import "apt"
[*]
[*]#--modules/apt/manifests/init.pp
[*]class apt {
[*] file { "/etc/apt/sources.list":
[*] ensure => file,
[*] source => "puppet:///modules/apt/sources.list",
[*] }
[*]}
[*]
配置完成后在agent上输入:sudopuppet agent--test然后查看/etc/apt/sources.list是否是modules/apt/files/sources.list的内容。
页:
[1]