Mal getestet, ob man mit parameterized classes das kaputte "inherits"
von puppet umgehen kann, tut aber nicht. Die Hoffnung waere gewesen,
dass die Parametervariablen der parameterisierten Klassen im Kontext
des aktuellen nodes ausgewertet werden...
hiera angeschaut
http://www.devco.net/archives/2011/06/06/puppet_backend_for_hiera.php,
das ist aber zu kompliziert fuer uns (mehrere orte, wo die
Daten sein koennen, ...)
Extern Node Classifiers angeschaut,
http://docs.puppetlabs.com/guides/external_nodes.html
das ist eine weitere Kruecke, um
an dem inherits-desaster vorbeizukommen. Da wird der node Eintrag,
der sonst in site.pp waere, als YAML von einem Executable zurueckgegeben.
Fuer grosse Installationen sicher gut. Wenn nur dann gerufen werden
wuerde, wenn der hostname nicht in site.pp ist, dann waers cool fuer
die autoinstallation im Neubau
In puppet >= 2.6 kann man hashes als variablen haben und damit z.b.
in templates oder modulen werte haben, die zwar global definiert
sind, aber pro node verschieden sein koennen. Also das was man moechte.
In unserem Fall mit den $admins kommt dann sowas raus:
ADMINS=<%= adms=admins + (moreadmins[$hostname].nil?&&[])||moreadmins[$hostname] ; adms.join(",") %>
Interessante Details in Puppet:
- Manifeste (wie site.pp, oder die init.pps von Klassen) koennen in Ruby
geschrieben werden. D.h. man kann absolut alles machen
- Node definitions koennen auch Regexpen sein, z.b.
node /lin.*/ {
...
}
TicketTracker Roundup laeuft, son bisschen:
http://webserver-1.mi.uni-erlangen.de/cgi-bin/roundup.cgi
Registration geht, und danach kann man auch was damit tun, aber
was noch nicht tut:
- logins nach einmal ausloggen
- Vernuenftige URL . Apache2 ignoriert alle unsere RewriteRules
- Sprache ist Englisch