puppet管理cron(定時同步時間伺服器案例)

來源:互聯網
上載者:User

用puppet管理cron,可以為N台伺服器大量新增cron作業。如定時同步時間伺服器的指令碼。
1、架構
   192.168.0.200(redhat) 主機名稱master.gangpao.com
   192.168.0.201(redhat) 主機名稱agent01.gangpao.com

2、目錄結構
   /etc/puppet
        |
        |-->manifests
        |   |-->modules.pp
        |   |-->nodes.pp
        |   |-->site.pp
        |-->modules
            |-->cron
                |-->manifests
                    |-->addcron.pp
                    |-->base.pp
                    |-->crontabs.pp
                    |-->init.pp

3、編寫指令碼
   建創目錄結構
   #mkdir -p /etc/puppet/manifests
   #mkdir -p /etc/puppet/modules/cron/manifests
   #cd /etc/puppet/modules/cron/manifests
 (1)、編寫base.pp
    功能說明:安裝cron包並啟動服務
   #vim
   class cron::base {
    package { cron:
        name => $operatingsystem ? {   #facter 擷取用戶端作業系統確定包的名稱
            ubuntu    => "cron",
            debian    => "cron",
            redhat    => "vixie-cron",
            centos    => "vixie-cron",
            },
        ensure => present,
    }
    service { crond:
        name => $operatingsystem ? {   #確定啟動cron的名稱
            ubuntu  => "cron",
            debian  => "cron",
            redhat  => "crond",
            centos  => "crond",
            },
        ensure => running,
        enable => true,
        pattern => cron,
        require => Package["cron"],   #依賴關係
    }
}

 (2)、編寫crontabs.pp
      功能說明:安裝crontabs包
      #vim crontabs.pp
      class cron::crontabs {
         package { crontabs:
              name => $operatingsystem ? {
              redhat  => "crontabs",
              centos  => "crontabs",
              },
              ensure => present,
         }
      }

  (3)、編寫addcron.pp
      功能說明:添加crontab定時任務(定時同步時間伺服器每4個小時同步的第1分鐘同步)
      #vim addcron.pp
      class cron::addcron {
            cron { ntpdate:
               command => "/usr/sbin/ntpdate time-b.timefreq.bldrdoc.gov",
               user => root,
               hour => */4,
               minute => 1
            }
      }

  (4)、編寫init.pp
       功能說明:初始設定檔案
       #vim init.php
       class cron {
             case $operatingsystem {
                 centos: {
                    include cron::base
                    include cron::crontabs
                 }
                  redhat: {
                    include cron::base
                    include cron::crontabs
                    include cron::addcron     #這三行實現安裝添加cron功能
                 }
                 debian: { include cron::base }
                 ubuntu: { include cron::base }
                 freebsd: { }
             }
       }

   (5)、編寫主manifests檔案實現讓用戶端安裝cron和添加一條crontab作業。
      #cd /etc/puppet/manifests
      #vim modules.pp   #載入cron模組
      import "cron"
      #vim nodes.pp     #用戶端節點管理檔案
      node agent01.gangpao.com{
      include cron
      }
      #vim site.pp      #載入modules.pp 和nodes.pp
      import "modules.pp"
      import "nodes.pp"

4、執行指令碼
   服務端
   #puppetmasterd -d --no-daemonize -v --trace

   用戶端
   #puppet agent --server master.gangpao.com --test
   info: Caching catalog for agent01.gangpao.com
   info: Applying configuration version 1310314253
   notice: /Stage[main]/Cron::Addcron/Cron[ntpdate]/minute: minute    changed   0 to 1
   notice: /Stage[main]/Cron::Addcron/Cron[ntpdate]/hour: hour changed   */2 to */4
   notice: Finished catalog run in 6.65 seconds
查看
[root@agent01 puppet]# crontab -l
# HEADER: This file was autogenerated at Mon Jul 11 00:10:19 +0800 2011 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with Puppet Name should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: ntpdate
1 */4 * * * /usr/sbin/ntpdate time-b.timefreq.bldrdoc.gov
可以看到用戶端的crontab改變了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.