Happy Sysadmin Day!

Auch dieses Jahr ist heute, am letzten Freitag des Jahres Monats Juli, wieder der System Administrator Appreciation Day. Ein Tag, um dem Systemadministrator oder der IT Abteilung fuer dessen Arbeit zu danken. Diese findet oft im verborgenen statt und zu „klassischen Randzeiten der Systemadministration“.

In den letzten Wochen ist das Thema Systemadministration sehr viel in den Medien, denn der Staatsfeind Nummer 1 der USA, der aktuell von einem Friedensnobelpreistraeger gejagt wird, ist einer. Die aktuelle Diskussion zeigt, wie schwierig das ganze Thema manchmal sein kann. Es wird ueber „gottaehnliche Zugriffe auf die Systeme die er verwaltet“ [link] geschrieben, und wie wuerdet Ihr damit umgehen, wenn Ihr herausfinden wuerdet, dass die Arbeit die Ihr macht etwas Illegales unterstuetzt und das in riesigen Ausmassen?

Auch ich bekenne mich zu dem System Administrators‘ Code of Ethics und ich denke, dass alle Kollegen dies auch tun sollten. Es ist wichtig den Codex ruhig ein paar mal im Jahr zu lesen um sich der Verantwortung in der taeglichen Arbeit immer wieder neu bewusst zu werden.

Zum Schluss noch mein Lieblings-Sysadmin-XKCD:

XKCD Sysadmin

Howto: Apache mit SVN sowie ACL + Migration

Im folgenden ist beschrieben, wie man einen SVN-Server mit HTTP-Zugang einrichtet und anschliessend ein vorhandenes Repository auf diesen neuen Server umzieht. Die Anleitung bezieht sich auf einen Ubuntu Server, es sollte sich jedoch auf Debian Systemen alles analog verhalten.

Zuerst wird die benoetigte Software installiert:

apt-get install subversion libapache2-svn

Danach werden die erforderlichen Ordnerstrukturen angelegt:

mkdir /srv/svn
mkdir /srv/svn/repository
 
chown www-data:www-data /srv/svn/repository
chmod 770 /srv/svn/repository

Als naechstes wird die Datei /etc/apache2/mods-available/dav_svn.conf entsprechend konfiguriert. Hier werden verschiedene Dinge eingestellt, unter anderem fuer die Zugangsbeschraenkungen und ACLs:

<Location /svn>
  DAV svn
  SVNParentPath /srv/svn/repository
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /srv/svn/dav_svn.passwd
  AuthzSVNAccessFile /srv/svn/dav_svn.authz
  Require valid-user
</Location>

Nun wird in der /srv/svn/dav_svn.passwd ein neuer Benutzeraccount angelegt, der Zugriff auf das Repository bekommen soll:

htpasswd -c /srv/svn/dav_svn.passwd USERNAME

Und in der /srv/svn/dav_svn.authz die entsprechenden ACL-Rechte gesetzt:

[example:/]
USERNAME = rw

Zum Schluss wird das Repository migriert. Dafuer muss auf dem alten Server ein entsprechender Repository-Dump erzeugt, und auf den neuen Server kopiert werden:

svnadmin dump /path/to/repository/foobar > foobar.dump
scp foobar.dump user@example.net:

Auf dem neuen Server wird nun ein neues Repository angelegt und mit dem vorher erstellten und kopierten Dump befuellt. Damit es die richtigen Rechte hat, wird es als Benutzer www-data gemacht

cd /srv/svn/repository
su www-data
svnadmin create foobar
svnadmin load foobar < foobar.dump

Das wars! Ab nun kann man auf das Repository auf den neuen Server schwenken und damit arbeiten. In diesem Beispielfall koennte es das folgende sein:

http://example.net/svn/foobar