设为首页 收藏本站
查看: 864|回复: 0

[经验分享] puppet apache模块的例子

[复制链接]

尚未签到

发表于 2018-8-3 07:25:53 | 显示全部楼层 |阅读模式
  puppet apache模块的例子
  


  • 版本V1.0
  • 时间2013-04-07
  • 版权GPL
  • 作者itnihao
  • 邮箱 itnihao@qq.com
  • 博客 http://itnihao.blog.51cto.com
  • 如需重新发行,请注明以上信息,谢谢合作
  

  一、apache模块的编写
  目录结构
  /etc/puppet/modules/production/apache/
  


  • ├── files
  • ├── manifests
  • │   ├── init.pp
  • │   ├── install.pp
  • │   ├── config.pp
  • │   ├── serivce.pp
  • │   └── vhost.pp
  • └── templates
  •     ├── http.conf.erb (httpd.conf文件改名的文件)
  •     └── httpd.vhost.conf.erb
  

init.pp
=========================================================================  


  • class apache {
  • ​      include "apache::install", "apache::service","apache::core"
  • }
  • import 'install.pp'
  • import 'config.pp'
  • import 'serivce.pp'
  • import 'vhost.pp'
  

  

========================================================================  


install.pp
========================================================================  


  • class apache::install {
  •     $ApacheVersion="2.2.15-15.el6.centos.1"
  •     package { "httpd":
  •         name   => $operatingsystem ? {
  •             /(RedHat|CentOS|Fedora|Debian|Ubuntu)/ => "httpd",
  •             default    => "httpd",
  •             },
  •         ensure => $ApacheVersion,
  •     }
  

========================================================================
config.pp
========================================================================  


  • class apache::core{
  • file { 'httpd.conf':
  •       path => $operatingsystem?{
  •       /(RedHat|CentOS|Fedora|Debian|Ubuntu)/ =>         "/etc/httpd/conf/httpd.conf",
  •       default => "/etc/httpd/conf/httpd.conf",
  • },
  •       mode => 0600,
  •       owner => root,
  •       group => root,
  •       content => template("apache/http.conf.erb"),
  •       require => Class["apache::install"],
  •       notify  => Class["apache::service"],
  •       ensure=> present,
  •       backup  => '.default',
  • }
  • }
  

=========================================================================
serivce.pp
=========================================================================  


  • class apache::service {
  •     service { httpd:
  •         name => $operatingsystem ? {
  •             default => "httpd",
  •                  },
  •         ensure => running,
  •         enable => true,
  •         hasrestart => true,
  •         hasstatus => true,
  •         require => Package["httpd"],
  •         #subscribe => File["httpd.conf"],
  •         subscribe => Class["apache::core"],
  •             }
  • }
  

=========================================================================
vhost.pp
========================================================================  


  • define apache::vhost($apacheport,$documentroot,$servername='') {
  •       file {"$servername.conf ":
  •             path => $operatingsystem ?{
  •                 /(RedHat|CentOS|Fedora|Debian|Ubuntu)/ => "/etc/httpd/conf.d/${servername}.conf",
  •                 default => "/etc/httpd/conf.d/${servername}.conf",
  •                 },
  •             mode => 0600,
  •             owner => root,
  •             group => root,
  •             content => template("apache/httpd.vhost.conf.erb"),
  •             require => Class["apache::core"],
  •             notify  => Class["apache::service"],
  • #            ensure  => present,
  • #            backup  => '.default',
  •            }
  • }
  

=========================================================================
templates/httpd.vhost.conf.erb
========================================================================  


  • <VirtualHost *:<%=apacheport%>>
  •     DocumentRoot <%=  documentroot %>/<%= servername %>
  •     ServerName <%= servername %>
  •     ErrorLog  logs/<%= servername %>_error.log
  •     CustomLog logs/<%= servername %>_access.log combined
  •     DirectoryIndex index.htm index.html index.php
  •     <Directory &quot;<%=  documentroot %>/<%= servername %>/&quot;>
  •        options -followsymlinks -indexes -execcgi
  •        AllowOverride None
  •        Order deny,allow
  •        Deny from all
  •        Allow from 127.0.0.1
  •   </Directory>
  • </VirtualHost>

  

=========================================================================  二、apache模块的应用
  


  • node 'node1' {
  • include apache
  • apache::vhost { 'testport':
  •                apacheport => 80,
  •                documentroot => '/var/www/html',
  •                servername => 'www.test.com',
  •        }
  • }
  

  三、以上信息仅供参考,更多内容,请阅读官方文档

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545584-1-1.html 上篇帖子: Centos6.3下Puppet功能模块实例笔记 下篇帖子: puppet之cron资源详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表