在模块目录新建目录
mkdir -p /etc/puppet/modules/httpd/{manifests,templates,files}
vi /etc/puppet/modules/httpd/manifests/init.pp
class httpd {
yumrepo { "repo163":
descr => "163 repo",
baseurl => "http://mirrors.163.com/centos/7/os/x86_64",
gpgcheck => "0",
enabled => "1";
}
package {
"httpd":
ensure => installed,
require => Yumrepo["repo163"];
}
}
在需要增加httpd服务器的节点中,增加模块包含一行
vi /etc/puppet/manifests/nodes/puppetagent.pp
node 'puppetagent' {
include test
include httpd
}
服务器端验证下配置
puppet parser validate /etc/puppet/modules/httpd/manifests/init.pp
init.pp 12行{}错误,容我修个错误
require => Yumrepo{"repo163"};
明明没有错,这他么就是一个坑,查了一下ruby 是按照引用传递,而不是java / c++的值传递,所以repo 中的{应该是[,去获取引用的下载的url地址,所以 require => Yumrepo["repo163"];
客户端测试
puppet agent --test --server puppetmaster --noop
可以看到已经获取httpd的package
去除--noop测试,直接引用
puppet agent --test --server puppetmaster
看到finished了,完成了
验证包是否安装好了
rpm -qa | grep httpd