puppet之资源

资源

资源的定义

一个帐号,一个文件,目录,软件包都可以称作是资源,每个资源的定义都具有标题,类型,以及一些列属性。
常见的资源有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 }
原文地址:https://www.cnblogs.com/hanfei-1005/p/5694205.html