2013-02-01 3 views
8

Möglicherweise etwas extrem dumm hier zu tun, aber ich kann keine Dokumentation darüber finden, was dies verursachen könnte.Marionetten-Duplikat: Klasse [Mongodb] ist bereits deklariert; kann nicht redeclare

Einrichten einer Vagrant VM mit Puppet und ich versuche, eine bestimmte Einstellung im mongodb Modul zu überschreiben.

Soweit mir bekannt ist die README.md Syntax in diesem Repo falsch (Obwohl ich das auch versucht habe).

Mein Manifest:

include mongodb 

class { 'mongodb' : 
port => '1111'; 
} 

Wenn vagrant up läuft ich die folgende Fehlermeldung erhalten:

Duplicate declaration: Class[Mongodb] is already declared; cannot redeclare at /tmp/vagrant-puppet/manifests/mongodb.pp:5 on node www 

Wenn ich die Konfigurationsüberschreibungs entfernen es perfekt funktioniert, aber es gibt keinen Grund, warum es nicht der Fall ist.

Antwort

9

Sie verwenden zwei Notationen, um dasselbe zu erreichen, aber Sie können nur Parameter mit der zweiten Notation verwenden. Kurz gesagt, Sie erklären es zweimal.

Also, verlieren Sie einfach 'include mongodb' und du bist gut.

Weitere Informationen: http://docs.puppetlabs.com/puppet/2.7/reference/lang_classes.html#declaring-a-class-with-include

+0

Danke !! Das Schlimmste daran ist, dass ich diese Seite geöffnet hatte, als ich diese Frage schrieb. Das bringt mir bei, dieses Zeug um 1 Uhr morgens zu machen. Danke noch einmal –

1

Ja, einfach nur include mongodb Linie entfernen. Das wird funktionieren, aber stellen Sie sicher, wird immer noch bleiben. Andernfalls verwenden Sie include mongodb