数据中心基础设施自动化运维之puppet专项

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)
    }
原文地址:https://www.cnblogs.com/ruiy/p/puppet.html