Ich schreibe bestimmte Module für die verschiedenen Rollen meiner Server. Also habe ich eine Puppe und ein Puppen-Dashboard- Modul. Das Puppenmodul stellt sicher, dass die Puppe korrekt installiert ist. Das Puppen-Dashboard macht natürlich dasselbe für das Puppen-Dashboard.
Beide Module benötigen die passende Quelle für Puppetlabs (übrigens verwende ich https://github.com/puppetlabs/puppet-apt ). Ich habe also die folgende definierte Ressource in Puppet und Puppet-Dashboard- Modul:
apt::source { "puppetlabs":
location => "http://apt.puppetlabs.com",
release => "squeeze",
repos => "main",
required_packages => true,
include_src => false,
key => "4BD6EC30",
key_server => "pgp.mit.edu",
}
Jetzt erhalte ich den folgenden Fehler auf meinem Agenten:
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Apt::Source[puppetlabs] is already declared in file /etc/puppet/modules/puppet/manifests/base.pp at line 27; cannot redeclare at /etc/puppet/modules/puppet-dashboard/manifests/init.pp:42 on node server123
Die einzelnen Module sind unabhängig voneinander. Daher halte ich es für richtig, die Abhängigkeit dieser passenden Quelle in jedem Modul separat festzulegen.
Eine Problemumgehung wäre, eine Quelle von puppetlabs
nach puppetlabs2
oder etw umzubenennen . so wie das. Aber es muss eine andere Lösung geben.
Ich bin gespannt auf Ihre Antworten!