Admin-Toolkit

From Chaosdorf Wiki
Revision as of 00:38, 12 February 2012 by Derf (talk | contribs)
Jump to navigation Jump to search

Admin Icinga.png

Zur einfacheren Verwaltung der Chaosdorf-Server (und in Zukunft weiterer Hosts) existiert das Chaosdorf-Admin-Toolkit.

Dieses ist ein in git getracktes Debian-Paket, welches einfach auf jedem Host installiert wird und somit einen Teil der nötigen zusätzlichen Konfigurationsdateien, Skripte etc. bereitstellt. Im Vergleich zu manuellem Rumgefrickel in /usr/local senkt dies den Administrationsaufwand deutlich. Vor allem muss man sich nicht mehr darum sorgen, dass diese Dateien auf den verschiedenen Hosts auf dem gleichen Stand sind.

Das Repository auf GitHub

Inhalt

Fabric

Zum Ausrollen des neuesten Admin-Toolkit-Releases benutzen wir fabric. Die Software hat leider noch ein paar Macken, aber insgesamt ist `fab configs deploy:2011.04.07` deutlich angenehmer zu tippen, als jedes mal die entsprechenden Befehle aus der Shell-History zu fischen und anzupassen. !gh_at fabfile.py

NSCA-Helfer

Unsere Nagios-Checks werden lokal per cron ausgefühl und dann per `nsca_send` auf unseren Monitoringserver geschoben. Damit wir nicht die gemeinsamen Checks doppelt definiert haben, sind sie zentral [[!gh_at_np passive_checks.cfg desc="konfiguriert"]] und werden dann von einem weiteren kleinen [[!gh_at_np submit_checks desc="Perlskript"]] ausgeführt.

Checkskripte

Diverse nicht in Debian enthaltene und ein paar eigene. Zum Beispiel:

!gh_at_nl check_cert_expire desc="check\_cert\_expire" erinnert uns rechtzeitig, unsere SSL-Zertifikate zu erneuern. Deutlich komfortabler als Kalendereinträge.

!gh_at_nl check_git_status desc="check\_git\_status" überprüft, ob in `/etc` (etckeeper) oder `/usr/local` (normales git-repo) irgendwelche Änderungen liegen, die noch nicht commitet wurden. Durch ausreichend hohe Check- und Retry-Intervalle in der Icinga-Config stört es auch nicht bei üblichen Adminarbeiten.

Insbesondere die CGI- und Git-Wrapper von Ikiwiki sind eine beliebte Fehlerquelle (falsche Berechtigungen, nicht richtig geupdated etc.). !gh_at_nl check_ikiwiki desc="check_ikiwiki" liest daher die Configs unserer ikiwiki-Instanzen aus und überprüft, ob darin denn auch alles mit rechten Dingen zugeht.

!gh_at_nr check_websites desc="check_websites" überprüft auf basis einer !gh_at_nr chaosdorf_websites.ini desc="Config", ob diverse URLs auf unseren diversen vhosts den richtigen Status liefern (401 Authorization required, 200 OK oder 301 Redirect auf spezifische andere URL).

Icinga-Goodies

Wir haben einen Bot mit dem Namen icinga in #chaosdorf. Es ist ein simples, an das Icinga angeschlossenes Perlskript, welches uns sofort mit irgendwelchen Meldungen versorgt. Einerseits weiß dann sofort jeder Bescheid, und andererseits entstehen dadurch so schöne Situationen wie diese:

   20:59           <--  mete!~mete@shells.chaosdorf.de [Remote host closed the connection]
   20:59           <--  penma_!~penma@shells.chaosdorf.de [Read error: Connection reset by peer]
   20:59           <--  muzy!~muzy@shells.chaosdorf.de [Remote host closed the connection]
   [ ... und noch ein paar mehr ... ]
   21:09        icinga  PROBLEM host alert: shells.chaosdorf.de is DOWN

O'RLY? :-)

(for the record: Es war eine geplante Downtime, die wir nur nicht im Icinga eingetragen hatten)

checkrestart-Hook

Nach jedem Systemupdate wird über einen `dpkg`-Hook nachgeschaut, ob noch Daemons mit veralteten Libraryversionen laufen, so dass man diese ggf. neustarten kann.

Backups

Auch Backups werden über das Debianpaket geregelt. Sie werden von [[!gh_at backup/backup_external]] lokal generiert, komprimiert und verschlüsselt, anschließend per SFTP auf einen anderen Host übertragen.

Geplant ist, sie in Zukunft mit einem speziellen Adminkey zu verschlüsseln und auf mehreren Hosts zu speichern. Das vorhandene Skript ist darauf bereits ausgelegt.

Dependencies

Als Hilfe zum Aufsetzen neuer Systeme gibt's noch ein paar Dependencies auf Debianpakete, u.a. etckeeper, git, vim und zsh.

Pläne

  • Bei Installation automatisch den Nagios-User anlegen