我有这个puppet模块(monit),我声明monit服务被启用(也就是在机器启动时启动)
class monit {
$configdir = "/etc/monit.d"
package {
"monit": ensure => installed;
}
service { "monit":
ensure => running,
enable => true,
require => Package["monit"],
provider => init;
}
file {
'/etc/monit.d':
ensure => directory;
'/etc/monit.conf':
content => template('monit/monitrc.erb'),
mode => 0600,
group => root,
require => File['/etc/monit.d'],
before => Service[monit],
notify => Service[monit],
}
}
Run Code Online (Sandbox Code Playgroud)
然后我包含include monit在默认节点内.但是,当我应用这个配置时,puppet没有将monit设置为启动服务(使用chkconfig --list monit只显示'off'和'off')
但是,如果我运行,puppet apply -e 'service { "monit": enable => true, } '则添加monit以正常启动.
我在这做错了吗?(木偶2.7.6)
问题可能是该provider => init行,它覆盖了处理服务的默认提供程序.init提供程序是一个非常简单的提供程序,它不支持"可启用"功能,因此无法将服务设置为在启动时启动.
有关其功能,请参见http://docs.puppetlabs.com/references/2.7.6/type.html#service.
在您的puppet apply示例中,您没有指定提供程序,因此它选择最适合您的系统 - 在您的情况下使用的是"redhat"提供程序chkconfig.
要解决此问题,请从service {}定义中删除提供程序行,它将再次默认为最合适.如果提取程序选择不正确,您只需指定提供程序,然后最好将其指定为全局默认值.
| 归档时间: |
|
| 查看次数: |
9722 次 |
| 最近记录: |