运维利器puppet:管理crond任务
利用puppet管理cron任务计划:#vim/etc/puppet/manifests/modules.ppImport "cron" #导入modules下的cron模块#mkdir -p /etc/puppet/modules/cron/manifests#mkdir -p /etc/puppet/manifests/nodes/#cd /etc/puppet/manifests/nodes && vim node_1_1 Node node.leju.com { #定义节点,包含哪些类Include generalInclude cron}#vim/etc/puppet/manifests/site.pp #让服务能扫描到配置.Import "modules.pp"Import "nodes/*.pp"Import "base/*.pp" #cd /etc/puppet/modules/cron/manifests/ # vim base.pp #定义基本配置 class cron::base { package { "vixie-cron": name => $operatingsystem ? { ubuntu => "cron", redhat => "vixie-cron", centos => "vixie-cron", }, ensure => present, } service { "crond": name => $operatingsystem ? { ubuntu => "crond", redhat => "crond", centos => "crond", }, ensure => running, enable => true, pattern => cron, require => Package["vixie-cron"], }}#Vim crontabs.pp #定义crontabs 包 class cron::crontabs { package { "crontabs": name => $operatingsystem ? { ubuntu => "crontabs", centos => "crontabs", redhat => "crontabs", }, ensure => present, }}#vim addcron.pp #定义任务计划 class cron::addcron { cron { "ntpdate": command => "/usr/sbin/ntpdate ntp.sina.com.cn", user => root, hour => "*/1", minute => "1"; "echo": command => "/bin/echo \"hello,sina.com\"", user => root, # hour => "*/2", minute => "1", month => "*/1",}}# vim 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 } ubuntu:{} }}服务端执行 puppetrun --host node.leju.com或在客户端执行 puppetd --test --debug#crontab -l ###可以看到任务计划已经推送.# HEADER: This file was autogenerated at Tue Aug 30 16:28:28 -0400 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: echo1 * * */1 * /bin/echo "hello,sina.com"# Puppet Name: ntpdate1 */1 * * * /usr/sbin/ntpdate ntp.sina.com.cn
页:
[1]