Posts Tagged ‘Planet’

alea iacta est

Posted in Programmieren, Wettbewerb on August 16th, 2010 by Patrick – 6 Comments

Auch dieses Jahr wieder macht das Linux-Magazin einen Programmierwettbewerb. Diesmal ist ein binärer Spieler gefordert, welcher sich in einem Würfelduell mit anderen Mitstreitern messen kann.

Die Vorgaben dabei sind ganz einfach; der Bot muss schlussendlich mit einem Make-File gestartet werden können und auf einem Ubuntu 10.04 Rechner laufen. Insofern kann die Programmiersprache also fast frei gewählt werden. Der Spielablauf wird dabei vom Server wettbewerb.linux-magazin.de über ein für menschen-lesbares TCP-Protokoll gesteuert.

Das ganze Spiel an sich ist relativ einfach gehalten. Ein Bot kann solange Würfeln, wie er keine 6 wirft oder das Spiel nicht speichert. Alle Punkte werden dabei immer zusammengezählt.
Sobald jedoch eine 6 geworfen wird, so werden alle Punkte bis zum letzten Save wieder abgezogen, und der Spielzug ist beendet.
Es gilt also, seinem Bot soviel Intelligenz einzuhauchen, damit dieser das optimale Mittelmass zwischen “Roll” (würfeln) und “Save” (speichern) findet.

Meinen Bot habe ich in Bash-Script begonnen und bin bislang damit ganz gut gefahren, da es sich über ein virtuelles Device ohne viel Programmieraufwand problemlos via TCP mit einem beliebigen Server kommunizieren lässt:

1
echo "alea iacta est" > /dev/tcp/$server/$port

Wer es noch einfacher will, und sich überhaupt nicht um jegliche Kommunikation zwischen Server und Bot bemühen will, der kann sein Script via Netcat starten und alle Kommandos über die Standard-Ein- und Ausgabe verwalten:

1
nc -e bot.sh wettbewerb.linux-magazin.de 3333

Auch wer auf etwas komplexeres Zurückgreifen will, der findet auf der offiziellen Webseite bereits Beispiele in PHP und Ruby, welche man nur noch mit Intelligenz füllen muss.

Ein weiteres sehr gutes PHP-Beispiel gibt es auch auf blog.oncode.info, dank welcher Seite ich überhaupt auf den Wettbewerb aufmerksam geworden bin.

Noch bis zum 12. September ist das Spiel für jedermann und jedefrau geöffnet! Mögen die Würfel entscheiden ;)

OpenVZ unter Debian

Posted in Linux, Server on Juli 6th, 2010 by Patrick – 1 Comment

Neben verbreiteten Virtualisierungslösungen wie ESX, Xen und KVM existiert noch eine weitere, weniger verbreitete Methode:

OpenVZ ist eine Virtualisierungstechnik für Linux. Damit lassen sich mehrere so genannte Virtual Private Server einrichten, die alle den Kernel und die Hardware des Host-Systems nutzen. Das Konzept ähnelt also anderen Techniken wie FreeBSD Jails und Solaris Zones. Auch als Gastsystem unterstützt OpenVZ ausschließlich Linux. Durch eine detaillierte Ressourcenaufteilung soll es möglich sein, sehr viele virtuelle Maschinen parallel auf einem physischen Computer zu betreiben, die alle streng voneinander isoliert sind. [golem.de]

Installieren kann man OpenVZ auf viele Linux basierten Betriebssysteme direkt aus den Paketquellen; im folgenden habe ich als Beispiel ein Debian (32bit) auf meinem DL380 G3 verwendet.

Zuerst müssen die passenden Kernel und Pakete installiert werden:

1
apt-get install linux-image-openvz-686 vzctl vzquota cstream

Leider ist das Tool vzdump nicht mehr in den Paketquellen enthalten, ist aber essentiell um eine virtuelle Maschine im laufenden Betrieb zu sichern:

1
2
3
cd /tmp/
wget http://download.openvz.org/contrib/utils/vzdump/vzdump_1.2-4_all.deb
dpkg -i vzdump_1.2-4_all.deb

Danach müssen in der Datei /etc/sysctl.conf folgende Punkte ergänzt werden:

1
2
3
4
5
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.forwarding=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.proxy_arp=1

Nach dieser Anpassung darf nicht vergessen worden, die Konfiguration neu einzulesen:

1
sysctl -p

Nun muss der Server neugestartet werden, damit der OpenVZ-Kernel auch verwendet wird.

Nun ist OpenVZ soweit eingerichtet und die ersten “virtuellen” Maschinen können eingerichtet werden.
Hier zeigt sich aber auch schon die erste Schwäche von dieser Virtualisierungslösung, denn entgegen anderen Methoden lassen sich mit OpenVZ nur genau das Betriebssystem mit dem Kernel für Guests verwenden, welcher auch der Host benutzt.

Nun da alles eingerichtet ist, können die ersten Templates heruntergeladen werden.
Dazu müssen zuerst die Paketquellen angepasst werden:

1
echo "deb http://download.openvz.org/debian-systs lenny openvz" >> /etc/apt/sources.list

Das der neue Eintrag problemlos funktioniert, muss noch der passende Schlüssel nachgeladen werden:

1
2
wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add -
apt-get update

Nun sollten auch die passenden Templates in den Paketquellen gelistet werden:

1
apt-cache search openvz | grep vzctl

Damit ein Guest mit diesem Template eingerichtet werden kann, muss er vorher natürlich noch heruntergeladen und installiert werden:

1
apt-get install vzctl-ostmpl-debian-4.0-i386-minimal vzctl-ostmpl-debian-5.0-i386-minimal

Nun kann auch schon mit dem Einrichten des ersten Guests begonnen werden.

Die dazu zur Verfügung stehenden Templates sind unter /var/lib/vz/template/cache/ gelistet.
Hier zeigt sich nun ein Vorteil von OpenVZ gegenüber den alternativen Virtualisierungslösungen. Das einrichten eines neuen Guest dauert hier gerade mal ein paar Sekunden, während bei ESX oder Xen normalerweise stets die gesamte Installation durchlaufen werden muss. Das eintippen eines einfachen Befehls reicht schon aus:

1
vzctl create 1 --ostemplate debian-5.0-i386-minimal --config vps.basic

Erhält man danach eine Ausgabe, wie die folgende, so war die Aktion erfolgreich:

1
2
3
Creating VE private area (debian-5.0-i386-minimal)
Performing postcreate actions
VE private area was created

Nun hat man die Möglichkeit direkt Einstellungen für einen Guest vorzunehmen:

1
2
3
4
5
6
7
8
9
10
11
#Beim Booten aufstarten
vzctl set 1 --onboot yes --save
 
#Hostname setzen
vzctl set 1 --hostname tux1.linux.ch --save
 
#IP Adresse setzen
vzctl set 1 --ipadd 192.168.0.1 --save
 
#DNS Server setzen
vzctl set 1 --nameserver 145.253.2.75 --nameserver 213.191.92.86 --save

Alle nun gemachten Einstellungen werden in der Datei /etc/vz/conf/1.conf gespeichert.

Nun kann der Guest das erste mal gestartet und gleichzeitig auch noch das Rootpasswort angepasst werden:

1
2
vzctl start 1
vzctl exec 1 passwd

Will man den Guest direkt auf der Kommandozeile ansprechen, so kann dies entweder per SSH oder direkt über den Host passieren. Dazu kann folgendes Kommando verwendet werden:

1
vzctl enter 1

Eine List mit allen virtuellen Maschinen erhält man mit dem Befehl vzlist:

1
vzlist -a

Weitere Informationen bekommt man durch die Manpages:

1
man vzctl

oder dem offiziellen Wiki

Was ich bisher noch nicht finden konnte ist eine Möglichkeit mit vzctl set 1 … den Guest zu einer dynamischen IP Adresse zu zwingen.

Insgesamt ist es eine gute Möglichkeit um schnell und unkompliziert zu virtualisieren, jedoch wer viele Ansprüche hat und nicht immer das selbe Betriebssystem / die selbe Distribution verwendet, wird nie seinen Spass an OpenVZ haben.

Natürlich lässt sich alles problemlos auch auf andere Distributionen und Architekturen portieren, wobei die Namen, besonders für die Templates, angepasst werden müssen.

Happy Birthday!!

Posted in Allgemein on Juni 19th, 2010 by Patrick – 3 Comments

Ja es ist wieder soweit – ein weiteres Jahr ist vorbei. Bits, Bytes and my 5 cents wird schon ganze 2 Jahre alt!!
In der Zwischenzeit und nach den 2 Jahren haben sich nicht nur viele Artikel eingefunden, es kamen auch immer mehr Leser und dadurch auch die eine oder andere interessante Diskussionen dazu :)

Dieses Blog habe ich vor zwei Jahren gegründet, um über tägliche Probleme und Situationen aus meine täglichen Leben als Informatiker zu berichten. Zu Beginn waren meine Beiträge noch hauptsächlich über Windows und haben sich dann immer mehr und mehr zu den Themen Linux und OpenSource entwickelt. Und besonders seid ich auch auf der Arbeit dem Linux / Unix-Team unterstellt bin, werden Windows-Probleme immer rarer, was ich aber nicht als besonders schlimm befinde :)

Nun bleibt mir nicht mehr viel übrig als euch für eure Treue und Unterstützung zu danken und mich auf viele weitere erfolgreiche Jahre mit euch zu freuen!!

Welches ist deine Distribution?

Posted in Linux on Juni 7th, 2010 by Patrick – 41 Comments

Es gibt ja mittlerweile unzählige verschiedene Linux-Distributionen und jeden Tag werden es wieder ein paar mehr.
Ich selbst habe mich im privaten Umfeld für den Desktop Ubuntu verschrieben, da Updates immer sehr schnell verteilt werden und die Repositories immer sehr aktuell sind.
Für Server schwöre ich mittlerweile auf Debian, selten auch Ubuntu Server. Die Repositories von Debian sind zwar nicht immer ganz so aktuell wie die von Ubuntu, jedoch ist das auf einem Server ja überhaupt kein Problem.
Auf der Arbeit benutze ich schon seit beginn Fedora, da all unsere Workstations auf Red Hat basieren. Und für alle RPM-Pakete eine Virtuelle Maschine zu starten, war ich zu faul ;)
Und auf meinem Netbook lief Easy Peasy, aktuell teste ich aber Meego auf Herz und Niere.

Nun das ist so meine Geschichte. :)

Und nun zu euch!
Folgend kannst du die Distributionen auswählen, die du regelmässig verwendest. Interessant wäre auch noch, wieso ausgerechnet diese?

Sollte ich eine vergessen habe, sorry ;)