Puppet学习二:简单模块配置和应用

Puppet 学习(简单的模块应用)

1.创建一个模块的目录和文件结构,,这个结构将位于/etc/puppet/modules 目录下,我们将模块命名为cron,模块名(类名)必须是普通的字符,只能包含字母、数字、下划线以及短横线
每一个模块都需要一个特定的目录结构和一个叫做init.pp 的文件,这个目录结构能帮助puppet自动载入模块。为了载入模块,puppet会检查一系列被称为模块路径的目录,模块路径是有配置文件puppet.conf中[main]段的modulepath 配置设定的,默认情况下,路径在/etc/puppet/modules下
模块结构:
mkdir -p /etc/puppet/modules/cron/{files,manifests,templates}
我们会将大多数的配置脚本文件放在/etc/puppet/modules/cron/manifests目录下, manifests是puppet的脚本目录文件目录
创建init.pp文件,init.pp文件时模块的核心,每个模块必须拥有一个init.pp文件,files目录用户存放哪些属于模块一部分的文件,templates则是放置模块可能会用到的模板

2. 配置文件
在路径:/etc/puppet/modules/cron/manifests下
Vi init.pp
###功能说明:初始化文件
      class cron {
              case $operatingsystem {
                      CentOS: {
                              include cron::base
                              include cron::crontabs
                              include cron::addcron
                              }
                      RedHat: {
                              include cron::base
                              include cron::crontabs
                              include cron::addcron
                              }
              }
}
root@SHWT11 manifests]# vi base.pp

##功能说明:安装cron包并启动服务
      class cron::base {
              package { cron:
                      name => $operatingsystem ?  {
                              Ubuntu => "cron",
                              redhat => "vixie-cron",
                              centos => "vixie-cron",
              },
              ensure => present,
      }
      service { crond:
              name => $operatingsystem ? {
                ubuntu => "cron",
                redhat => "crond",
                centos => "crond",
      },
      ensure => running,
      enable => true,
      pattern => cron,
      require => Package["cron"],  ##处理依赖关系
      }
模块是清单、资源、文件、模板、类以及定义的容器,一个模块应该包含配置一个特定的 应用程序所需的所有配置
Vi  crontabs.pp
####功能说明,安装crontabs包
      class cron::crontabs {
              package { crontabs:
                name => $operatingsystem ? {
                      redhat => "crontabs",
                      centos => "crontabs",
              },
      ensure => present,
  }
}
上面三个文件是安装cron,并确保cron 服务处于运行(running)状态
[root@SHWT11 manifests]# vi rsync_bash.pp
##功能说明:添加crontab定时任务(每天8点到晚上22点,每半小时执行一次)
class cron::rsync_bash {
      cron {bash:
      command => "/bin/bash  /root/vol_disk_check.sh",
      user => "root",
      hour => "8-22",
      minute => "*/30";
  }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/dda9d8d1dddb95d56539ccfaefb78c0c.html