http://forge.puppetlabs.com/treydock/yum_cron 【puppet功能扩展forge】
http://docs.puppetlabs.com/references/latest/type 【puppet 资源类型】
Every resource has a type, a title, and a set of attributes:
general form of a resource declaration is:
The resource type, in lower-case
An opening curly brace
The title, which is a string
A colon
Optionally, any number of attribute and value pairs, each of which consists of:
An attribute name, which is a bare word
A => (arrow, fat comma, or hash rocket)
A value, which can be any data type, depending on what the attribute requires
A trailing comma (note that the comma is optional after the final attribute/value pair)
Optionally, a semicolon, followed by another title, colon, and attribute block
A closing curly brace
core of the Puppet language is declaring resources;
Groups of resources can be organized into classes;
catalog will be in memory as a Ruby object, transmitted as JSON, and persisted to disk as YAML;
case $operatingsystem {
centos, redhat: { $service_name = 'ntpd' }
debian, ubuntu: { $service_name = 'ntp' }
}
package { 'ntp':
ensure => installed,
}
service { 'ntp':
name => $service_name,
ensure => running,
enable => true,
subscribe => File['ntp.conf'],
}
file { 'ntp.conf':
path => '/etc/ntp.conf',
ensure => file,
require => Package['ntp'],
source => "puppet:///modules/ntp/ntp.conf",
# This source file would be located on the puppet master at
# /etc/puppetlabs/puppet/modules/ntp/files/ntp.conf (in Puppet Enterprise)
# or
# /etc/puppet/modules/ntp/files/ntp.conf (in open source Puppet)
}