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

[经验分享] Puppet 详细使用(1) Class类与module模块

[复制链接]

尚未签到

发表于 2018-8-2 08:31:10 | 显示全部楼层 |阅读模式
  分析 /etc/puppet/manifests 的结构
root@main:/etc/puppet/manifests# tree  
.
  
├── classes
  
│   ├── apache.pp
  
│   ├── apt.pp
  
│   ├── dovecot.pp
  
│   ├── dovecot.pp.bak
  
│   ├── icedove.pp
  
│   ├── index.html
  
│   ├── localrepo.pp
  
│   ├── lynx.pp
  
│   ├── osticket.pp
  
│   ├── tcpdump.pp
  
│   ├── toolbox.pp
  
│   └── users.pp
  
├── nodes.pp
  

  
└── site.pp
  1.site.pp   主文件里include 各个node的配置  和import 各个类
import "classes/*.pp"  
import "nodes.pp"
  
include vim
  
include tcpdump
  
include lynx
  
include    users
  
include startpuppet
  2. nodes.pp   具体针对每个node  进行puppet类的分配
node 'aptcache.test.group5.local' {  
class {'aptcacherng':}
  
}
  
node 'master.test.group5.local' {
  
include puppetmaster
  
}
  

  
node default{
  
}
  class里的 各个pp可以直接引用,因为再site.pp 里已经 import了

  module 也可以直接使用   或者  用 >  class 类 怎么写  举个例子
class tcpdump {  
package { 'tcpdump':
  
ensure => installed,
  
}
  
}
  一个class 可以包含的各种资源
├── classes  
│   ├── file
  
│   ├── service
  
│   ├── package
  
│   ├── user
  
│   ├── group
  
│   ├── exec
  

  
│   ├── cron
  

  
│   ├── notify
  分析一个module 结构
root@hai:~/group5/modules/postfix# tree  
.
  
├── files
  
│   ├── main.cf
  
│   └── master.cf
  
├── manifests
  
│   ├── config.pp
  
│   ├── init.pp
  
│   ├── package.pp
  
│   ├── postinstall.pp
  
│   └── service.pp
  
├── Modulefile
  
├── propuppet-postfix
  
│   ├── manifests
  
│   │   └── init.pp
  
│   ├── Modulefile
  
│   ├── README
  
│   ├── spec
  
│   │   └── spec_helper.rb
  
│   └── tests
  
│       └── init.pp
  
├── README
  
├── spec
  
│   └── spec_helper.rb
  
├── templates
  
│   └── main.cf.erb
  
└── tests
  
└── init.pp
  manifest里 init.pp 为初始文件,里面包含其他 config.pp-service.pp-package.pp 等等
  之后 再config.pp 里 可以配置    包含一个类   类里有各种资源     有时config会应用source  指向files 文件
  而files 里会有 config 所需要的source       这里的 files的文件 master.cf main.cf   和 apt-get 安装的postfix 一模一样copy就好了   ,可以照此写module
  看看config.pp 怎么写
class postfix::config {  

  
File {
  
owner => 'postfix',
  
group => 'postfix',
  
mode => 0644,
  
}
  

  
file { '/etc/postfix/master.cf':
  
ensure => present,
  
source => 'puppet:///modules/postfix/master.cf',
  
require => Class['postfix::package'],
  
notify => Class['postfix::service'],
  
}
  

  
file { '/etc/postfix/main.cf':
  
ensure => present,
  
source => 'puppet:///modules/postfix/main.cf',
  
#content => template('postfix/main.cf.erb'),
  
require => Class['postfix::package'],
  
notify => Class['postfix::service'],
  
}
  
}
  注意到 source 怎么写   source => ‘puppet:///modules/postfix/main.cf’,    文件的位置在 /modules/postfix/files 下
  再举个列  看看 模块 ssh结构
  root@hai:~/group5/modules/ssh# tree
  .
  ├── files
  │   └── sshd_config
  └── manifests
  ├── config.pp
  ├── init.pp
  ├── install.pp
  └── service.pproot@hai:~/group5/modules/ssh# cd manifests/
  root@hai:~/group5/modules/ssh/manifests# cat init.pp
  class ssh {
  include ssh::install, ssh::config, ssh::service
  }
  root@hai:~/group5/modules/ssh/manifests# cat config.pp
  class ssh::config {
  file { “/etc/ssh/sshd_config”:
  ensure => present,
  owner => ‘root’,
  group => ‘root’,
  mode => 0600,
  source => “puppet:///modules/ssh/sshd_config”,

  require =>>
  notify =>>  }
  }
  root@hai:~/group5/modules/ssh/manifests# cat service.pp
  class ssh::service {
  service { “ssh”:
  ensure => running,
  hasstatus => true,
  hasrestart => true,
  enable => true,

  require =>>  }
  }root@hai:~/group5/modules/ssh/manifests# cat install.pp
  class ssh::install {
  package { “openssh-server”:
  ensure => present,
  }
  }
  发现  init.pp  的class ssh

  install.pp    >
  service.pp  >
  config.pp >

运维网声明 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-545049-1-1.html 上篇帖子: puppet 详细使用(2)module模块配置ubuntu local repository-SystemAdmin笔记 下篇帖子: Puppet整合Foreman(五):整合Mcollective
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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