如何在包含类时打破Puppet中的依赖循环

前端之家收集整理的这篇文章主要介绍了如何在包含类时打破Puppet中的依赖循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下定义:
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中),而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'],}
}
原文链接:https://www.f2er.com/javaschema/281787.html

猜你在找的设计模式相关文章