puppet进阶指南——exec资源详解

exec资源

exec资源的功能是调用linux系统命令,完成系统管理的基础操作。

1、exec资源常用属性

exec {‘资源标题‘:

command

creates

cwd

environment

group

logoutput

onlyif

path

refresh

refreshonly

returns

timeout

tries

try_sleep

user

provider

}

◆ command:指定要执行的系统命令。

◆ creates:指定命令所生成的文件。如果提供了这个参数,那么命令只会在所指定的文件不存在的情况的被执行,防止出现同一时刻多次执行的情况。

exec {‘tar -xf /root/nginx.tar.gz‘:

cwd => ‘/var/tmp‘,

creates => ‘/var/tmp/myfile‘,

path => ["/usr/bin","/usr/sbin"]

}

◆ cwd:指定命令执行的目录。如果目录不存在,则命令执行失败。

◆ environment:为命令设定额外的环境变量。要注意的是如果你用这个来设定PATH,那么PATH的属性会被覆盖。多个环境变量应该以数组的形式来设定。

◆ group:执行命令运行的账户组。

◆ logoutput:是否记录输出。默认会根据exec资源的日志等级(loglevel) 来记录输出。若定义为on_failure,则仅在命令返回错误的时候记录输出。可取的值为:true,false和其他合法的日志等级。

◆ onlyif:如果这个参数被设定了,则exec只会在onlyif设定的命令返回0时才执行。

◆ path:命令执行的搜索路径。如果path没有被定义,命令需要使用绝对路径。路径可以以数组或以冒号分隔的形式来定义。path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ]

◆ refresh =>true|false:刷新命令执行状态。

◆ refreshonly =>true|false:该属性可以使命令变成仅刷新触发的,也就是说只有在一个依赖的对象被改变时,命令才会被执行。只有同时使用subscribe或notify才有意义。

◆ returns:指定返回的代码。如果被执行的命令返回了其他的代码,一个错误(error)会被返回。默认值是0,可以定义为一个由可以接受的返回代码组成的数组或单值。

◆ timeout:命令运行的最长时间。如果命令运行的时间超过了timeout定义的时间,那么这个命令就会被终止,并作为运行失败处理。当定义为负值时就会取消运行时间的限制。timeout的值是以秒为单位的。

◆ tries:命令执行重试次数,默认为1。设置这个值之后命令会重试设置的次数直到正确的代码返回。

◆ try_sleep:设置命令重试的间隔时间,单位为秒。

◆ user:指定执行命令的账户。

◆ provider:shell和windows。

2、案例分析

通过exec资源以puppet账户身份来解压soft.tar.gz文件,编辑/etc/puppet/manifests/exec.pp。

exec { ‘test‘:

path => ["/usr/bin","/bin"],

creates => ‘/tmp/lock‘,

user => ‘puppet‘,

group => ‘puppet‘,

timeout => ‘3‘,

command => ‘tar xf /root/soft.tar.gz‘,

}

进行测试查看一下,可以看到文件正常解压好。

# puppet apply /etc/puppet/manifests/exec.pp

notice: /Stage[main]//Exec[test]/returns: executed successfully

notice: Finished catalog run in 0.20 seconds

欢迎关注http://www.wzlinux.com:45 和http://www.wzlinux.com 。

时间: 2024-10-10 04:27:47

puppet进阶指南——exec资源详解的相关文章

puppet进阶指南——filebucket资源详解

filebucket资源及案例 filebucket主要用于文件的备份与恢复 filebucket {'资源标题': name path port server } ◆ name:filebucket的名字. ◆ path:服务器备份数据路径. ◆ port:备份服务器端口. ◆ server:备份服务器的域名. 这里继续file资源的案例,再次编写/etc/puppet/manifests/site.pp文件 node default { filebucket {'main': server

puppet进阶指南——host资源详解

host资源简介 host资源主要用来管理操作系统的hosts功能,hosts是一个没有扩展名的系统文件,基本作用就是将一些常用的域名与其对应的IP地址建立一个关联的数据库. 1.host资源常用属性 host {'资源标题': host_aliases ensure ip name qtarget } ◆ host_aliases:主机能有任意别名. ◆ ensure:确定该主机是否启用,present即启用,absent即关闭. ◆ ip:主机的IP地址,支持IPV4和IPV6. ◆ nam

puppet进阶指南——user资源详解

user资源 user资源主要用来管理操作系统的帐号,如帐号的增加.删除已经属性的变更. 1.user资源常用属性 user {'资源标题': name ensure allowdupe comment uid gid groups home managehome manages_expiry passowrd manages_password_max_age manages_password_min_age shell provider } ◆ name:指定创建系统账户名. ◆ ensure

puppet进阶指南——package资源详解

package资源 package资源可以借助本地包管理系统帮助我们安装软件,也可以通过参数指定软件包来安装. 1.package资源常用属性 package {'资源标题': allowcdrom description ensure provider source } ◆ allowcdrom:通知apt允许使用cdrom作为软件源,可以设置false或者true. ◆ description:描述软件包. ◆ ensure:设置软件包的安装状态,可以设定的值有present|install

puppet进阶指南——service资源详解

service资源 通过service资源不但可以启动,重启和关闭程序的守护进程,监控进程状态,还可以将守护进程加入到自启动中. 1.service资源常用属性 service {'资源标题': binary enable ensure hasrestart hasstatus name path pattern restart start status stop provider } ◆ enable:指定服务在开机的时候是否启动,可以设置true和false. ◆ ensure:是否运行服务

puppet进阶指南——file资源详解

file 资源 管理系统本地文件 设置文件权限和属主 管理文件内容,可以基于模板的内容管理 支持管理目录 从远程服务器复制整个目录到本地 正如puppet手册提到到一样,我们希望你尽量少的使用file文件类型对内容进行管理. 而是用封装的更好的资源类型来替代. 如果你发现你经常从puppet服务器拷贝文件到本地,请你联系puppetlabs ,让他们给你开发适合你的私有资源类型. 依赖该资源类型没有依赖平台该资源类型支持所有平台 例子下面是一个简单的例子,创建一个文件abc,并增加内容 file

puppet进阶指南——cron资源详解

cron资源 cron资源主要用来管理操作系统的定时任务(即crontab). 1.cron资源常用属性 cron {'资源标题': command ensure environment hour minute mouth monthday weekday name provider user } ◆ command:crontab要执行的命令,由于环境变量的问题,建议调用命令时使用绝对路径,或指定cron资源的environment属性. ◆ ensure:指定资源是否启用,可设置presen

45 puppet基础、资源详解、配置语言、puppet类与模板及模块

01 puppet基础 配置: node1:192.168.1.131 CentOS7.2 node2:192.168.1.132 CentOS7.2 [[email protected] ~]# rpm -ivh epel-release-latest-7.noarch.rpm [[email protected] ~]# yum list all | grep -i "puppet" puppet.noarch                           3.6.2-3.e

Kubernetes-Ingress资源详解

什么是Ingress #阿里云称之为ingress路由!在 Kubernetes 集群中,主要用于接入外部请求到k8s内部,Ingress是授权入站连接到达集群服务的规则集合,为您提供七层负载均衡能力.您可以给 Ingress 配置提供外部可访问的 URL.负载均衡.SSL.基于名称的虚拟主机等.git地址:https://github.com/kubernetes/Ingress-nginx Service缺点 #定义service以后,尤其是NodePort集群访问,需要经过2级转换调度,而