我有以下定义:
class nginx::install{
...
}
class nginx::service{
...
}
class nginx::config{
...
}
class nginx{
include nginx::install, nginx::service, nginx::config
}
class jenkins::nginx{
include nginx
file{'/etc/nginx/sites-enabled/jenkins':
source => ...,
require => Class['nginx'],
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个时,Puppet 告诉我我有一个循环:
err: Could not apply complete catalog: Found 1 dependency cycle:
(Class[Jenkins::Nginx] => File[/etc/nginx/sites-available/jenkins] => Class[Jenkins::Nginx])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
Run Code Online (Sandbox Code Playgroud)
jenkins::nginx 中对 nginx 的普通引用引用了自身。我如何告诉 Puppet 我依赖于顶级 nginx 类?
我试图将我的依赖项更改为Class['::nginx'](就像我在 Ruby 中一样),现在 Puppet 告诉我它找不到依赖项。
由于您的问题很有趣,因此进行了大量测试...
一段时间后找到了这篇文章:http : //www.mail-archive.com/puppet-users@googlegroups.com/msg08224.html
我同意海报,这是一个错误,或者至少设计得不好,但是如果您包含具有绝对范围 (::nginx) 的类,则可以为其设置一个要求,如下所示:
class jenkins::nginx{
include ::nginx
file{'/etc/nginx/sites-enabled/jenkins':
source => ...,
require => Class['::nginx'],
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5117 次 |
| 最近记录: |