加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 00:46:54 所属栏目:百科 来源:网络整理
导读:我有以下定义: 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': sourc
我有以下定义:
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'],}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读