可能在这里做了一些非常愚蠢的事情,但我找不到任何可能导致这种情况的文件。
使用Puppet设置Vagrant虚拟机,我试图覆盖mongodb模块中的特定设置。
据我所知,该repo中的README.md语法不正确(虽然我也尝试过)。
我的宣言:
include mongodb
class { 'mongodb' :
port => '1111';
}
运行vagrant up
时出现以下错误:
Duplicate declaration: Class[Mongodb] is already declared; cannot redeclare at /tmp/vagrant-puppet/manifests/mongodb.pp:5 on node www
如果删除配置覆盖,它可以很好地工作,但没有理由不这样做。
答案 0 :(得分:9)
您使用两种符号来实现相同,但您只能使用带有第二种符号的参数。简而言之,你要宣告它两次。
所以,只要输掉'包括mongodb',你就会好。
更多信息:http://docs.puppetlabs.com/puppet/2.7/reference/lang_classes.html#declaring-a-class-with-include
答案 1 :(得分:1)
是的,只需删除include mongodb
行即可。这将有效,但请确保class { 'mongodb': ... }
仍然存在。否则,请使用include mongodb