我有一个自定义的木偶模块,它安装一个守护进程/服务:一个小的ruby。我有两个systemd脚本来启动/停止守护进程。我现在还有一个Sysvinit脚本。我想为任何一个安装适当的脚本。
我的理想木偶流是:
这个是可能的吗?
我们在运行木偶4.4.2。
发布于 2016-05-19 06:59:02
处理它的通常方法是使用事实和条件,例如(来自Elasticsearch已批准的模块):
params.pp
case $::operatingsystem {
'RedHat', 'CentOS', 'Fedora', 'Scientific', 'OracleLinux', 'SLC': {
$service_name = 'elasticsearch'
$service_hasrestart = true
$service_hasstatus = true
$service_pattern = $service_name
$defaults_location = '/etc/sysconfig'
$pid_dir = '/var/run/elasticsearch'
if versioncmp($::operatingsystemmajrelease, '7') >= 0 {
$init_template = 'elasticsearch.systemd.erb'
$service_providers = 'systemd'
$systemd_service_path = '/lib/systemd/system'
} else {
$init_template = 'elasticsearch.RedHat.erb'
$service_providers = 'init'
$systemd_service_path = undef
}
}请注意,这是与Puppet3兼容的代码;如果您想要Puppet4最佳实践,并且不需要支持Puppet3,请查看有关facter事实和$facts Hash的当前最佳实践。
如果您不喜欢基于OS版本假设Systemd的可用性,您也可以定制一个事实来报告Systemd的可用性。
https://stackoverflow.com/questions/37302552
复制相似问题