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.
看
更多