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', }