puppet是管理上百台服务器IT基础设施自动化的工具。

实验环境:CentOS7;

安装可以用epel源进行安装,也可自行下载RPM包;

[root@~ localhost]#ll
total 5192
-rw-------. 1 root root    1494 Jun 19 02:09 anaconda-ks.cfg
-rw-r--r--. 1 root root  100420 Jan 27  2016 facter-2.4.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 1615716 Apr 27  2016 puppet-3.8.7-1.el7.noarch.rpm
-rw-r--r--. 1 root root   23028 Apr 27  2016 puppet-server-3.8.7-1.el7.noarch.rpm
#单机模型,无需安装server
[root@~ localhost]#yum -y install facter-2.4.6-1.el7.x86_64.rpm puppet-3.8.7-1.el7.noarch.rpm 

 #puppet使用:

#资源的定义:

resource:
    type{'title':
           attribute => value
}
常用的type类型有:notify,group,user,cron,package,service,file,exec

 

#帮助:
[root@~ localhost]#puppet help 
#子命令模块:puppet+子命令
[root@~ localhost]#puppet help describe

[root@~ localhost]#puppet describe  cron #查看详细用法
#创建资源,以.pp结尾;cron是资源类型;ntpdate是title,如果列表下没有name则name是title的名
[root@manifests localhost]#cat ntpdate.pp 
cron{'ntpdate':
    command => '/usr/sbin/ntpdate 172.16.0.1 &> /dev/null',
    time    => '*/5',        
}
#-noop是dry-run;apply是单机模型下提交资源清单
[root@manifests localhost]#puppet apply --nohoop -v ntpdate.pp 

#创建文件
file{'/tmp/test.txt':
    mode    => '0600',
    contest    => 'some text',
}

#复制文件
file{'/tmp/fstab':
    mode    => '0640',
    source    => '/etc/fstab',
}

#创建目录
file{'/tmp/testdir':
    ensure    => directory,
    mode    => '0750',

}

#创建软连接文件
file{'/tmp/fstab.link':
    ensure    => link,
    target    => '/tmp/fstab',    
}