一.软件包资源
Package:管理软件包的安装和升级
管理软件包,现在分成两派,一派是自己能解决软件依赖,例如apt-get,yum ; 另一类是不能解决软件依赖,例如 dpkg,rpm ; puppet会根据你运行puppet的环境来自动判断你是用的什么包管理系统.当然你也可以手工设定 provider 参数让puppet用什么命令来管理软件包. 每个provider需要一些依赖来完成各项功能. 因此你必须为provider提供这些依赖
参数
Allowcdrom:告诉 apt 允许使用cdrom作为软件源, 可以设置成false或者 true
Category:软件包设置的一个只读的属性
Configfiles:是否保留或者替换软件的配置文件,大多数软件不支持这个参数,可设置的值是false,true
Description:描述软件包,软件包设置的一个只读属性
Ensure:设置该软件包应该在什么状态. installed 表示要安装该软件,也可以写成present; absent 表示反安装该软件,pureged 表示干净的移除该软件,latest 表示安装软件包的最新版本.
Namevar:该资源的namevar ; 软件包的名字
Provider:指定使用什么provider来提供软件包管理功能
Responsefile:在debian上面安装软件,一般会回答一些问题,用这个文件来包含问题的预设答案, 用在debian或者 solaris系统上.
Source:去那里找软件的安装包,例如rpm的包地址,必须是本地地址或者URL
Package资源测试用例
编辑site.pp,添加如下内容,安装nginx包,并且删除pppoe和pppoe-conf
- [root@master puppet]# vim manifests/site.pp
- package {
- ["nginx"]:
- ensure=>installed;
- ["pppoe","pppoe-conf"]:
- ensure=>absent;
- }
编辑完成后,用其中一台Client测试
- [root@client1 ~]# puppetd --server master.puppet --test
- notice: Ignoring --listen on onetime run
- info: Caching catalog for client1.centos
- info: Applying configuration version '1329979654'
- notice: Finished catalog run in 0.34 seconds
检查nginx包是否安装,pppoe是否删除
- [root@client1 ~]# rpm -qa nginx
- nginx-0.8.54-1.el6.x86_64
- [root@client1 ~]# rpm -qa pppoe
二.Yumrepo资源
参数
Baseurl:指定软件仓库的地址,设置成absent表示删除该仓库.
Descr:提供给用户阅读的一个对软件仓库的描述,设置成absent将删除该描述
Enabled:设置该仓库是否启用,可以设置的置是 0 或者 1
Enablegroups:是否让yum在这个仓库里面使用软件组这个特性,可以设置的值是 0 , 1
Exlude:shell模式匹配规则,匹配该规则的软件不会从这个仓库里面安装.
Gpgcheck:该仓库是否启用gpg签名检查
Include:设置一个文件路径,包含该文件到当前配置文件
Keepalive:设置yum是否使用http/1.1 里面的keeplive特性, 可以设置成0 , 1
metadata_expire:设置多少秒以后,仓库的metadata失效.
Mirrorlist:指定一个包含该软件仓库镜像的url
Name:该资源的namevar, 指定软件仓库的名字
Priority:定软件仓库的优先次序,可以设置1-99
Proxy:定yum使用的代理服务器地址
proxy_name:理服务器用户名
proxy_password:理服务器的用户密码
timeout:果超过多少秒就放弃连接该软件仓库.
三.Cron资源
参数
除了用户和command两个参数以外,其他的参数都是可选项.
Command:rontab要执行的命令, 环境变量按照系统本地规则进行管理,推荐使用绝对路径.
Ensure:定该资源是否启用,可设置成true或false
Environment:crontab环境里面指定环境变量,例如 PATH=/bin:/usr/bin:/usr/sbin.
Hour:行crontab的小时,可设置成0-23
Minute:行crontab的分钟,可设置成0-59
Month:置crontab运行的月份,1-12
Monthday:个月份中的日子,1-31
Name:crontab的名字,这个名字用于管理员区分不同的crontab,以及puppet管理各种资源关系.
Provider:定provider,可用的provider有
User:该crontab加到那个用户的crontab列表,默认是运行puppet的用户
Weekday:行crontab的星期数,0-7
Cron计划任务测试用例
在site.pp中加入如下内容
- cron{ echo:
- command=>"echo \"This is cron job\"",
- user=>root,
- #hour=>[3,5],
- minute=>'*/2';
- }
用Client进程测试:
- [root@client1 ~]# puppetd --server master.puppet --test
- notice: Ignoring --listen on onetime run
- info: Caching catalog for client1.centos
- info: Applying configuration version '1329980213'
- notice: /Stage[main]//Node[default]/Cron[echo]/ensure: created
- notice: Finished catalog run in 0.50 seconds
检查Cron任务列表
- [root@client1 ~]# crontab -l
- # HEADER: This file was autogenerated at Thu Feb 23 14:56:53 +0800 2012 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: echo
- */2 * * * * echo "This is cron job"