Puppet重复声明:类[Mongodb]已经声明;不能重新宣誓

时间:2013-02-01 00:06:03

标签: puppet vagrant

可能在这里做了一些非常愚蠢的事情,但我找不到任何可能导致这种情况的文件。

使用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

如果删除配置覆盖,它可以很好地工作,但没有理由不这样做。

2 个答案:

答案 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