puppet进阶指南——exec资源详解
2015-08-19 11:42
417 查看
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 。
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 。
相关文章推荐
- 在Puppet中用ERB模板来自动配置Nginx虚拟主机
- 用puppet快速部署openstack
- Puppet 安装配置
- puppet资源file详细介绍(附案例)
- puppet资源yumrepo详细介绍(附案例)
- puppet资源exec详细介绍(附案例)
- puppet资源service详细介绍(附案例)
- Puppet基础篇7-编写第一个完整测试模块puppet
- Puppet错误及解决方法(三)
- 在centos中安装puppet和安装过程的一些错误解决
- puppet学习笔记
- Puppet 的错误
- puppet集群部署
- 【puppet 基础导读】
- 运维自动化之puppet
- 服务器集中管理工具puppet
- CentOS下部署puppet-dashboard(nginx + passenger启动)
- puppet小测试
- 在 CentOS 6.2 上安装 Puppet 配置管理工具
- puppet