我有几个类,它们遵循一个简单的结构,确保一个包,修改一些配置文件,然后通知服务。
因此,我想出了一种以简单方式为每个类应用依赖项的方法:
Package <| |> -> File <| |> ~> Service <| |>
但是,一旦一个类发生错误,它也会破坏所有其他类的依赖关系。显然,链式集合不适用于当前类范围,而是适用于全局范围。
有没有办法将它限制在当前班级?我不想回到手动指定每个资源的依赖关系!
如下图所示,所有服务都依赖于所有文件,而这些文件又依赖于所有包。
- 编辑 -
我想出了使用标签的想法(一个类的资源可以方便地用类名标记),但它也不起作用 - 实际上它的功能就像类不存在一样(通过查看 puppet 依赖项进行验证后图形)
以下是我制作的示例测试清单:
class foo {
package { 'php-fpm':
ensure => present,
}
file { '/tmp/php-fpm.log':
ensure => file,
content => "test",
}
service { 'php-fpm':
ensure => running,
}
Package <| tag == "foo" |> -> File <| tag == "foo" |> ~> Service <| tag == "foo" |>
}
class bar {
package { 'nginx':
ensure => present,
}
file { '/tmp/nginx.log':
ensure => file,
content => "test",
}
service { 'nginx':
ensure => running,
}
Package <| tag == "bar" |> -> File <| tag == "bar" |> ~> Service <| tag == "bar" |>
}
include foo, bar
更奇怪的是,在下图中,标签基本上没有任何作用: