网络浪子 发表于 2018-8-2 09:13:11

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//Exec/returns: executed successfully
  notice: Finished catalog run in 0.20 seconds
  欢迎关注http://www.wzlinux.com:45 和http://www.wzlinux.com 。
页: [1]
查看完整版本: puppet进阶指南——exec资源详解