创建测试站点
mkdir -p /etc/puppet/modules/test/{manifests,templates,files}
定义一个类,然后在tmp目录中创建主机名。txt的文件,然后内容hello world
puppet的资源=ansible角色,puppet的类=ansible模块,这样可能会更加容易理解一点,共同点都是2者都是类似于powershell 的DSC强制一致性配置。
vi /etc/puppet/modules/test/manifests/init.pp
class test {
file { “/usr/tmp/$hostname.txt": content => "Hello world, Hello Pcdog"; }
}
模块文件定义了$hostname,需要传参数给ERB 模块文件,主机变量名通过facter命令获取,传给puppetagent.pp的资源配置文件
vi /etc/puppet/modules/test/templates/test.erb
hostname <%= fqdn %>
类应用到哪一个服务器/节点
mkdir /etc/puppet/manifests/nodes
vi /etc/puppet/manifests/nodes/puppetagent.pp
node 'puppetagent' {
include test
}
测试节点加入puppet,修改site.pp
vi /etc/puppet/manifests/site.pp
import "nodes/puppetagent.pp"
如果有多个pp文件可以写
import "nodes/*.pp"
检查配置,服务器端
puppet parser validate /etc/puppet/modules/test/manifests/init.pp
puppet agent --test --server puppetmaster --noop
客户端测试
puppet agent --test --server puppetmaster --noop
去掉noop直接执行
puppet agent --test --server puppetmaster
目录下文件和内容已经有了
多对多的关系如下,由此可以推算,节点可以应用多个类和模块,从而获得多个服务器角色
全局配置
模块
类
节点
site.pp
module
file.pp
class.erb
node
hostname.pp