我正在努力整理一些木偶剧本 - 我有一个服务列表(可能大约20个左右)需要以非常相似的方式进行部署。
问题是#4。每项服务的配置略有不同。我想使用augeas来设置每个服务的配置,似乎有必要为每个服务的配置定义,然后在主服务定义中加载该定义。
所以,我有类似的东西:
definition service ($serviceName) {
//stopping, wget, unzip
config[downcase($serviceName)] { "${servicename}_config":
serviceName => $serviceName
}
//start
}
然后,我(例如)在配置模块的清单文件夹“foo.pp”中
definition config::foo {
//set some stuff
}
由于我确信我已经破坏但不知道的各种规则,这是行不通的。做我正在做的事情有“标准”的方式吗?
答案 0 :(得分:0)
您可以尝试以下代码。您可以将所有这些设置为define
类型,其中包含服务名称myserv
的变量。我建议使用templates
来设置配置而不是augeas
...更容易控制。
exec { "stop_myserv" :
command => "service stop myserv",
path => "/path/to/command/service",
refreshonly => true,
}
exec { "get_pkg_from_nexus" :
command => "/command/to/do/the/above && unzip to/dirctory",
path => "/path/to/command",
require => Exec["stop_myserv"],
}
file { "set_configuration" :
path => "/etc/somewhere/file",
content => template("modulename/file.erb"),
mode => "999",
group => "jiut",
owner => "muit",
require => Exec["get_pkg_from_nexus"],
}
service { "myserv" :
ensure => running,
subscribe => File["set_configuration"],
}