我有以下定义:
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'], } }
但是当我运行这个时,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
jenkins :: nginx中对nginx的简单引用引用了它自己。 我如何告诉Puppet,我依赖于顶层的nginx类呢?
我试图改变我的依赖Class['::nginx']
(就像我在Ruby中),木偶现在告诉我,它无法find依赖。
做了很多testing,因为你的问题很有趣…
一段时间后发现这篇文章: http : //www.mail-archive.com/[email protected]/msg08224.html
我同意海报,这是一个错误,或者至less没有很好的devise,但如果你包括绝对范围的类(:: nginx),然后你可以设置一个需求,如下所示:
class jenkins::nginx{ include ::nginx file{'/etc/nginx/sites-enabled/jenkins': source => ..., require => Class['::nginx'], } }
包含前缀?
包括main:nginx