Was ich so treibe...

Uli's IT-Blog - Konzeption, Entwicklung, Betrieb

Maven/Gradle: Betrieb hinter einer Enterprise-Firewall

Einer meiner Kunden setzt eine Firewall kombiniert mit einem Proxy-Server ein, um das interne Netz vom Internet abzukoppeln. Der Zugriff vom internen Netz in’s Internet ist dadurch stark eingeschränkt.

  • Manche Web-Seiten werden generell geblockt … ist bislang kein Problem für mich
  • Zugriff auf’s Internet ist generell nur mit bestimmten Browsern möglich – der HTTP Header “User-Agent” muß bestimmte Werte haben … dadurch werden Build-Tools wie Gradle und Maven geblockt
  • Zugriff auf’s Internet geht generell nur, wenn man sich am Proxy-Server angemeldet hat … dadurch funktioniert bei mir der Zugriff von Eclipse aus nicht, man kann Eclipse-Plugins nur sehr umständlich installieren

Zur Lösung der letzten beiden Probleme gibt es nun die Idee, einen eigenen Proxy-Server zu betreiben, der dann die Anmeldung am “richtigen” Proxy-Server übernimmt und der den User-Agent auf geeignete Werte setzt.

Kompilierung und Tests überspringen beim Paketbau

Gelegentlich baue ich selbst Pakete für Debian/Ubuntu. Manchmal habe ich dabei Tippfehler in Paketbeschreibungsdateien wie “debian/rules” und “debian/control”. Diese treten oftmals erst gegen Ende des Paketbauprozesses auf und nach einer Korrektur der Fehler habe ich gerne schnell Gewissheit, ob die Korrekturen OK sind oder nicht – ein kompletter Neubau scheidet für die meisten Pakete dann aus.

Mit diesem Befehl werden Kompilierung und Übersprungen:

fakeroot debuan/rules binary

Innerhalb von wenigen Sekunden weiß ich so, ob die Korrekturen richtig waren oder ob ich noch weitere Dinge ändern muß. Wenn das Kommando durchläuft, führe ich idR. nochmals

dpkg-buildpackage

aus um das Paket komplett neu zu bauen und zu paketieren.

SMTP ohne SMTP-Daemon

Bei einem Kunden setze ich Redmine ein. Es läuft dort auf meinem Klapprechner in einer lokalen VM. Die Kunden-Infrastruktur “kennt” diese VM nicht. Dennoch soll Redmine Email-Benachrichtigungen verschicken. Mit den üblichen Mechanismen geht das nicht, weil die VM nicht als “sende-berechtigt” vermerkt ist. Aber ich habe ja einen SSH-Login auf einen Rechner, der Emails versenden kann. Hier die Beschreibung, wie man Redmine (… oder auf fast jede andere Applikation) dazu bringt, die Mails über diesen Zwischenrechner zu versenden.

LXC: Fehler bei ‘apt-get upgrade’ - udev

In letzter Zeit tritt ein Problem beim Ausführen von apt-get upgrade in meinen LXC-Containern auf:

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  apt apt-utils base-files gnupg gpgv libapt-inst1.4 libapt-pkg4.12 libudev0
  lsb-base lsb-release udev
11 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 3752 kB of archives.
After this operation, 25.6 kB of additional disk space will be used.
Do you want to continue [Y/n]? 
...
Preparing to replace udev 175-0ubuntu9.3 (using .../udev_175-0ubuntu9.4_amd64.deb) ...
Adding 'diversion of /sbin/udevadm to /sbin/udevadm.upgrade by fake-udev'
dpkg: unrecoverable fatal error, aborting:
 failed to fstat previous diversions file: No such file or directory
E: Sub-process /usr/bin/dpkg returned an error code (2)

Ich denke, das Problem hängt zusammen mit der Aktualisierung des Paketes “udev”.

Zur Korrektur des Problems muß ich mehrfach diese Kommandos ausführen:

1
2
$ sudo dpkg --configure -a
$ sudo apt-get upgrade

Nach zwei bis drei Durchläufen ist das Problem verschwunden.

Experimente mit CentOS-5.9

Heute habe ich mir vorgenommen, ein paar Experimente mit CentOS-5.9 durchzuführen. CentOS ist eine Linux-Distribution, die den Anspruch hat, weitgehend kompatibel zu RedHat Enterprise Linux (RHEL) ist. Meine Hoffnung ist, dass sich die Erkenntnisse, die ich heute sammle, auch in einem anstehenden Kundenprojekt anwenden lassen, bei dem RHEL zum Einsatz kommen wird.