资源
资源的定义
一个帐号,一个文件,目录,软件包都可以称作是资源,每个资源的定义都具有标题,类型,以及一些列属性。
常见的资源有notify(调试与输出),file(配置文件),package(软件安装),service(服务管理),exec(执行命令),cron(定时脚本),user,group.
属性介绍:
Require:require引用的对象执行之后该资源才可被应用
Notify:当资源对象改变的时候,通知某个资源进行更新
定义一个用户的属性:
vim /etc/puppet/manifests/site.pp
解析:ensure:默认属性,创建用户用present,删除用户用absent.
Shell:登录时指定shell,shell是必须存在且可执行的
定义个一个用户的属性:
group { "mimi":
ensure=>present,
gid=>900,
allowupdate=>false,
}
解析:allowupdate:默认为false,允许使用同一gid。
软件的安装:
自动安装部署vsftpd服务
注意:vsftpd.conf文件的默认权限是600.需要把权限改为644.让puppet有读的权限。require引用的对象执行之后该资源才可被应用
Notify:当资源对象改变的时候,通知某个资源进行更新。重新上传vsftpd的配置文件后重启服务
解析:如果要安装多个软件包,可以将软件包写成数组端的形式
文件管理i
向客户端创建文件:
向客户端创建目录:
让客户端拷贝自身文件
向客户端上传文件并修改权限:
服务管理:
定时脚本
假设每天早上6点执行输出update到/tmp/time1
Cron {
‘echo’:
Command=>”/bin/echo `uptime`>> /tmp/time”,
User=>root,
Hour=>6,
Minute=>0
}
每分钟执行1次
假设每两个小时执行一次
假设晚上11点到早上8点之间每两个小时执行一次,以及早上8点执行一次
执行命令:
加压文件至/tmp下,如果‘/tmp/myfile不存在,则执行exec命令,如果文件存在则不执行
解析:creates:指定命令生成的文件,文件加不存在时执行
Cwd:指定命令执行的当前目录
Path:执行命令的搜索路径,可以采用全路径分组,使用冒号 分割
当文件返回为0时exec资源才会被执行
解析:onlyif 参数中设置的命令返回0时才执行,即参数成功执行以后才执行
文件的挂载
vim /etc/puppet/manifests/site.pp
18 package {
19 "nfs-utils":
20 ensure => present
21 }
22 file {
23 "/public":
24 ensure => directory
25 }
26 mount {
27 "/public":
28 device => "172.25.7.250:/var/ftp/pub",
29 fstype => "nfs",
30 options => "defaults",
31 ensure => mounted
32 }