Editing Admin-Toolkit

From Chaosdorf Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{Project
[[File:Admin_Icinga.png]]
|name=Admin-Toolkit
|description=Debian / Arch Linux Admin Helpers
|project category=Software
|image=Admin_Icinga.png
|status=stable
|people=derf, mxey
|source=https://github.com/chaosdorf/chaosdorf-admin-toolkit{{!}}chaosdorf-admin-toolkit
}}
{{English version}}


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


Dieses ist ein in [http://git-scm.com/ git] getracktes Debian-Paket, welches einfach auf jedem von uns administrierten 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.
Dieses ist ein in [http://git-scm.com/ 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.


[https://github.com/chaosdorf/chaosdorf-admin-toolkit Das Repository auf GitHub]
[http://github.com/chaosdorf/chaosdorf-admin-toolkit Das Repository auf GitHub]
 
= Inhalt =


== Fabric ==
== Fabric ==


Zum Ausrollen des neuesten Admin-Toolkit-Releases benutzen wir [http://fabfile.org/ fabric]. Die Software hat leider noch ein paar Macken,
Zum Ausrollen des neuesten Admin-Toolkit-Releases benutzen wir
aber insgesamt ist "fab configs deploy:2011.09.07" deutlich angenehmer zu tippen, als jedes mal die entsprechenden Befehle aus der Shell-History zu
[http://fabfile.org/ fabric]. Die Software hat leider noch ein paar Macken,
fischen und anzupassen.
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]]


* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/fabfile.py fabfile.py]
== NSCA-Helfer ==


== 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.


Unsere Nagios-Checks werden lokal per cron ausgeführt und dann per nsca-ng auf den Monitoringserver geschoben. Damit wir nicht die gemeinsamen Checks doppelt definiert haben, sind sie zentral konfiguriert und werden dann von einem weiteren kleinen Perlskript ausgeführt.
== Checkskripte ==


* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-passive/passive_checks.cfg passive_checks.cfg]
Diverse nicht in Debian enthaltene und ein paar eigene. Zum Beispiel:
* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-passive/submit_checks submit_checks]


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


Diverse nicht in Debian enthaltene und ein paar eigene. Zum Beispiel:
[[!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.


* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-checks/local/check_cert_expire check_cert_expire] erinnert uns rechtzeitig, unsere SSL-Zertifikate zu erneuern. Deutlich komfortabler als Kalendereinträge.
[[!gh_at_nr check_websites desc="check_websites"]]
* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-checks/local/check_git_status 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.
überprüft auf basis einer [[!gh_at_nr chaosdorf_websites.ini desc="Config"]],
* [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-checks/remote/check_websites check_websites] überprüft auf Basis einer [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/nagios-checks/remote/chaosdorf_websites.ini Config],ob diverse URLs auf unseren diversen vhosts den richtigen Status liefern (401 Authorization required, 200 OK oder 301 Redirect auf spezifische andere URL).
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 ==
== Icinga-Goodies ==
Line 46: Line 63:
andererseits entstehen dadurch so schöne Situationen wie diese:
andererseits entstehen dadurch so schöne Situationen wie diese:


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


O'RLY? :-)
O'RLY? :-)


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


== checkrestart-Hook ==
== 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.
Nach jedem Systemupdate wird über einen `dpkg`-Hook nachgeschaut, ob noch
Daemons mit veralteten Libraryversionen laufen, so dass man diese ggf.
neustarten kann.


== Backups ==
== Backups ==


Auch Backups werden über das Debianpaket geregelt. Sie werden von [https://github.com/chaosdorf/chaosdorf-admin-toolkit/blob/master/backup/backup_external backup_external] lokal generiert, komprimiert und verschlüsselt, anschließend per SFTP auf einen anderen Host übertragen.
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.


Die Backups sind mit einem speziellen Adminkey verschlüsselt. Geplant ist, sie in Zukunft auf mehreren Hosts zu speichern. Das vorhandene Skript ist darauf bereits ausgelegt.
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 ==
== Dependencies ==
Line 71: Line 95:
Debianpakete, u.a. etckeeper, git, vim und zsh.
Debianpakete, u.a. etckeeper, git, vim und zsh.


[[Category:Projects]]
= Pläne =
 
* Bei Installation automatisch den Nagios-User anlegen
Please note that all contributions to Chaosdorf Wiki are considered to be released under the Attribution 3.0 Unported (see Chaosdorf Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)