模板是以“.”结尾的文件。ERB”在木偶模块下的模板目录中。puppet模板主要用于文件,比如各种服务的配置文件。对于相同的服务和不同的配置,可以考虑使用模板文件。比如Nginx和Apache的虚拟主机配置可以考虑使用erb模板。这里推荐nginx的安装使用系统自带的YUM源码或者其他第三方YUM源码来安装Nginx。如果使用nginx的官方源码来安装NGINX,我们可以查看文件/etc/yum.repos.d/nginx.repo的内容,如下图:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1第二种方式是通过createrepo自建YUM源码,比较活泼。我们可以在nginx官网下载适合自己的rpm包,然后添加到自己的YUM源码中。在对自动化运维要求严格的定制化环境下,大部分运维同学都会选择这种方式。这样安装nginx后,你会发现确实比用源代码安装Nginx方便很多。比如运行nginx的用户会被自动分配nginx:nginx,nginx,nginx的日志存储会自动保存在/var/log/nginx下,其工作目录为/etc/nginx,与用源代码编译安装Nginx有很大区别。实验时也请注意筛选。
其他像Puppet这样的初级知识点我在这里就跳过了,直接粘贴文件内容。/etc/puppet的文件结构如下:
site.pp的文件内容如下:
import "nodes/*.pp"client.cn7788.com.pp的文档内容如下:
node 'client.cn7788.com' { include nginx nginx::vhost {'client.cn7788.com': sitedomain => "client.cn7788.com" , rootdir => "client", } }test.cn7788.com.pp的文档内容如下:
node 'test.cn7788.com' { include nginx nginx::vhost {'test.cn7788.com': sitedomain => "test.cn7788.com" , rootdir => "test", } }/etc/puppet/modules/nginx/manifests/init.PP文件的内容如下:
class nginx{ package{"nginx": ensure =>present, } service{"nginx": ensure =>running, require =>Package["nginx"], } file{"nginx.conf": ensure => present, mode => 644,owner => root,group => root, path => "/etc/nginx/nginx.conf", content=> template("nginx/nginx.conf.erb"), require=> Package["nginx"], } } define nginx::vhost($sitedomain,$rootdir) { file{ "/etc/nginx/conf.d/${sitedomain}.conf": content => template("nginx/nginx_vhost.conf.erb"), require => Package["nginx"], } }文件/etc/puppet/modules/nginx/templates/nginx.conf.erb的内容如下:
/etc/puppet/modules/nginx/templates/nginx_vhost.conf.erb文件的内容如下:
最后,我们可以在名为client.cn7788.com和test.cn7788.com的机器上验证效果。该命令如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)