木偶有时会很令人沮丧。
我有多个使用“贵宾狗”服务的节点,并且已经这样配置了它。
# SITE.PP
node 'tweedle.example.com' {
include basicstuff
include poodle
}
node 'beetle.example.com' {
include basicstuff
include poodle
}
## POODLE MODULE, manifests/init.pp
class poodle {
class {'poodle::install': }
class {'poodle::config': }
class {'poodle::service': }
Class ['poodle::install'] -> Class ['poodle::config'] ~> Class ['poodle::service']
}
...
class poodler::service {
service {'poodle':
ensure => 'running',
enable => true,
restart => "/etc/init.d/poodle stop && sleep 5 && /etc/init.d/poodle start",
subscribe => File['/opt/poodle/poodle.py'],
}
}现在,假设我不再需要在“甲虫”机器上运行贵宾犬了。我怎样才能停止只在那台机器上的服务?
我尝试过传递“确保=>停止”,但得到了一个语法错误:
node 'beetle.example.com' {
include basicstuff
class poodle::service {
ensure => 'stopped'
}
}或者也许?
node 'beetle.example.com' {
include basicstuff
include poodle::service {
ensure => 'stopped'
}
}发布于 2014-01-16 04:31:57
向服务类中添加一个可用于服务上的“确保”参数的参数,如下所示
class poodler::service ($ensure = 'running') {
service {'poodle':
ensure => $ensure,
enable => true,
restart => "/etc/init.d/poodle stop && sleep 5 && /etc/init.d/poodle start",
subscribe => File['/opt/poodle/poodle.py'],
}
}然后,不要像第二次尝试那样包含类,而是创建类作为资源,并设置$ensure的值。
node 'beetle.example.com' {
include basicstuff
class {'poodle::service':
ensure => 'stopped',
}
}这应该会扼杀我们的服务。
由于$ensure参数的默认设置为运行,因此您不需要在实际希望它运行时指定它。
如果你想要的话,可以参数化你的类的其他部分,如果你想的话,这会导致应用程序被完全删除。
有关这一主题的好读物见:学习木偶类参数
https://stackoverflow.com/questions/21151902
复制相似问题