Puppet 第4条重复声明

Puppet 第4条重复声明,puppet,Puppet,当我认为我不应该的时候,我得到了一个重复的声明错误 我正在使用下面的木偶版本 puppet --version 4.3.2 这是目录结构 ./manifests ./manifests/site.pp ./modules ./modules/main ./modules/main/manifests ./modules/main/manifests/init.pp ./modules/main/manifests/sub.pp site.pp node default { include

当我认为我不应该的时候,我得到了一个重复的声明错误

我正在使用下面的木偶版本

puppet --version
4.3.2
这是目录结构

./manifests
./manifests/site.pp
./modules
./modules/main
./modules/main/manifests
./modules/main/manifests/init.pp
./modules/main/manifests/sub.pp
site.pp

node default {
 include main
 include main::sub
}
node default {
  include ryan
  include ryan::sub
}
init.pp

 class main {
  notice("main")
}
sub.pp

 class main::sub {
  notice("sub")
}
我运行这个命令
puppet-apply--modulepath./modules-manifests/site.pp

它产生以下输出:

Notice: Scope(Class[Main]): main
Notice: Scope(Class[Main::Sub]): sub
Notice: Compiled catalog for black-pearl.hsd1.il.comcast.net in environment production in 0.82 seconds
Error: Duplicate declaration: Class[Main] is already declared; cannot redeclare

我不知道为什么会发生这种情况,也许木偶已经有了一个
main
。当我用莱恩代替梅因时,一切都很好

$ find .
.
./manifests
./manifests/site.pp
./modules
./modules/ryan
./modules/ryan/manifests
./modules/ryan/manifests/init.pp
./modules/ryan/manifests/sub.pp
site.pp

node default {
 include main
 include main::sub
}
node default {
  include ryan
  include ryan::sub
}

Puppet 4对名称的要求要严格得多,并且有许多保留名称,包括
main

Reserved Class Names
The following are built-in namespaces used by Puppet and so must not be used as class names:

main — Puppet automatically creates a main class, which contains any resources not contained by any other class.
看 更多