9

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

使用 Puppet 设置 Vagrant VM,我正在尝试覆盖mongodb模块中的特定设置。

据我所知,该仓库中的 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

如果我删除配置覆盖,它会完美运行,但没有理由不这样做。

4

2 回答 2

9

您使用两种表示法来实现相同的目的,但您只能使用带有第二种表示法的参数。简而言之,您要声明它两次。

所以,只要失去'include mongodb',你就很好了。

更多信息:http ://docs.puppetlabs.com/puppet/2.7/reference/lang_classes.html#declaring-a-class-with-include

于 2013-02-01T06:06:42.940 回答
1

是的,只需简单地删除include mongodb线。这将起作用,但确保class { 'mongodb': ... }仍然存在。否则,使用include mongodb

于 2013-02-19T07:56:22.550 回答