传递参数这是我刚才的问题有关parameterized classes的后续。继这个例子之后,我希望能够通过运行或停止进入服务,但是当我将服务添加到一个框中时,我不使用“include poodle :: service”,我使用“include poodle “Poodle需要安装所有其他东西。木偶:通过类
所以,我可以通过变量一起到服务类这样的:
# SITE.PP
node 'tweedle.example.com' {
include basicstuff
include poodle
}
node 'beetle.example.com' {
include basicstuff
class { 'poodle':
$ensure => 'stopped'
}
}
## POODLE MODULE, manifests/init.pp
class poodle ($ensure = 'running') {
class {'poodle::install': }
class {'poodle::config': }
class {'poodle::service':
ensure => $ensure
}
Class ['poodle::install'] -> Class ['poodle::config'] ~> Class ['poodle::service']
}
...
class poodle::service ($ensure) {
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'],
}
}
或者我应该把参数直接在服务类和显式调用这两个贵宾级和像贵宾的服务类这样的:
# SITE.PP
node 'tweedle.example.com' {
include basicstuff
include poodle
}
node 'beetle.example.com' {
include basicstuff
include poodle
class { 'poodle::service':
$ensure => 'stopped'
}
}
## POODLE MODULE, manifests/init.pp
class poodle {
class {'poodle::install': }
class {'poodle::config': }
class {'poodle::service':
ensure => $ensure
}
Class ['poodle::install'] -> Class ['poodle::config'] ~> Class ['poodle::service']
}
...
class poodle::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'],
}
}
或者是添加参数的服务类仅包含足够的,因为服务类有依赖性,就像这样:
# SITE.PP
node 'tweedle.example.com' {
include basicstuff
include poodle
}
node 'beetle.example.com' {
include basicstuff
class { 'poodle::service':
$ensure => 'stopped'
}
}
## POODLE MODULE, manifests/init.pp
class poodle {
class {'poodle::install': }
class {'poodle::config': }
class {'poodle::service':
ensure => $ensure
}
Class ['poodle::install'] -> Class ['poodle::config'] ~> Class ['poodle::service']
}
...
class poodle::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'],
}
}
什么是正确的道路,并在这里的最佳实践?提前致谢!
需要明确的是,公认的答案是通过对其他类的,我做到了传递价值和它的工作如预期。谢谢! – Spanky