Wer die Virtualisierungsplatform Virtualbox nutzt, der möchte eine dauerhaft laufende Virtuelle Maschine auch sichern.
Genau für diesen Zweck habe ich mir ein Backupskript geschrieben.
Wie funktioniert es:
Es sucht nach den gehosteten virtuellen Maschinen fährt diese gegebenenfalls herunter, so dass diese sich in einem gesicherten Zustand befinden.
Danach werden die virtuellen Maschinen eine nach der anderen an einen konfigurierbaren Ort gesichert.
Dazu werden die von Virtualbox zur Verfügung stehenden Tools verwendet.
Nachdem der Backupprozess abgeschlossen ist, wird diese wieder gestartet.
Es wird sich auch gemerkt, welche VM vor dem Backup gestartet war, nur diese wird dann auch wieder gebootet.
About me

- Christian Wack
- Karlsruhe, Germany
- Softwareentwickler Java, OSGi, Spring, JEE, JSF
Samstag, 2. Oktober 2010
Sonntag, 20. Juni 2010
OpenVPN unter Ubuntu installieren
Als erstes muss man folgendes Paket installieren
sudo apt-get install openvpn
Kopieren der Beispielkonfiguration
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
Entpacken der Beispielkonfiguration
sudo gunzip /etc/openvpn/server.conf.gz
Kopieren des Verzeichnisses zur Schlüsselerzeugung
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2
Zertifikate und Schlüssel generieren
Die Datei vars editieren mit:
sudo nano /etc/openvpn/easy-rsa2/vars
In der Datei sollte man folgende Einträge anpassen
export KEY_COUNTRY=DE
export KEY_PROVINCE=NRW
export KEY_CITY=Düsseldorf
export KEY_ORG=”Vpntest”
export KEY_EMAIL=”onlyspam@myhomepage.net”
Unterverzeichnis keys anlegen:
sudo mkdir keys
Vars in die Umgebungsvariablen aufnehmen
source ./vars
Nun Master-Zertifikat und Schlüssel erstellen
sudo -E ./clean-all
sudo -E ./build-ca
Jetzt Zertifikat und Schlüssel für Server erstellen lassen
sudo -E ./build-key-server server
Common Name muss dabei die von außen erreichbare Domain sein, z:b. auch eine DynDNS
Nun werden die Keys für die User angelegt. Hierbei sollte beachtet werden, dass bei Common Name dieses mal der eindeutige Name des Clients erforderlich ist. Also nicht wie zuvor den Server Namen eintragen. Ansonsten wird es bei Loggins der Clients zu Kollisionen wegen gleicher Client-ID kommen.
sudo -E ./build-key ersterclient
sudo -E ./build-key zweiterclient
sudo -E ./build-key dritterclient
Benötigt man zu einem späteren Zeitpunkt weitere Zertifikate, muss zuerst die vars als root (sudo -s) erneut gesourcet werden. Danach können wie gewohnt neue Zertifikate mittels ./build-key erstellt werden.
Diffie-Hellman-Parameter generieren:
sudo -E ./build-dh
Danach die .key und .crt Datein an die Clients ausliefern, am besten im gepackten archiv, so dass keine Ascii Übertragungsprobleme entstehen.
Nun die Server Konfiguration anpassen:
sudo nano /etc/openvpn/server.conf
Wichtig die Pfade zu den Schlüssel und Zertifikaten:
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key # Diese Datei geheim halten.
dh ./easy-rsa2/keys/dh1024.pem # Diffie-Hellman-Parameter
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
Freitag, 18. Juni 2010
Ausführbare Jar mit Maven erstellen
Wenn man mit Maven eine ausführbare Jar Datei erstellen möchte, kann man dies mit der Kombination aus dependency-plugin und dem jar-plugin erreichen. Mit Hilfe des Dependency-Plugins werden alle transitiven Abhängigkeiten entpackt im Jar Archiv hinterlegt. Aufpassen muss man dabei, wenn man Frameworks wie Spring einsetzt, da in jedem Spring Artefact Dateien mit gleichem Namen existieren, die zur Laufzeit als eine Datei existieren muss, d.h. zudammengefügt werden müssen. Dies kann jedoch das dependency plugin nicht. Dafür muss man manuell eingreigen und die Dateien wie spring.handlers, spring.schemas, spring.tooling selbst erstellen und die Inhalte alle Spring Abhängigkeiten einfügen. Mit Hilfe des Jar Plugin kann man nun noch bestimmen welche Klasse die ausführbare main-Methode enthält. So ist es anschließend möglich das Jar mittels:
java -jar diejardatei.jar
ausführen.
java -jar diejardatei.jar
ausführen.
Dienstag, 1. Juni 2010
Generieren von JPA Entities aufrgrund einer DDL mit Maven
Wenn die Datenbank der Contract sein soll, sprich die DDL, dann sollte sich alles an der Datenbank orientieren. Es gibt viele Gründe weshalb nicht der Persistencelayer den Contract bildet. Um nun einerseits den Aufwand zum Implementieren diverser Entities zu minimieren und andererseits auch das Synchronisationsproblem zwischen dem Datenbankschema und dem Persistenlayer bzw. den Entitäten zu beheben, bietet Maven die Möglichkeit ein sog. Reverse-Engineering durchzuführen. Das heißt anhand der Datenbank werden die Entitäten generiert.
Im wesentlichen bedeutet dies Konfigurationsaufwand.
Man fügt in die POM folgendes Plugin ein und passt es entsprechend an:
pom.xml
Eine Verbindung zur Datenbank wird natürlich auch benötigt, dazu benutzt man wie gewöhnlich bei hibernate die hibernate.cfg.xml Datei:
hibernate.cfg.xml
In der reveng.xml kann man Tabellenfilter und Mappingkonfigurationen vornehmen, wie z.B. verschiedene Datentypen von sql in Java gemappt werden sollen:
reveng.xml
Eine Verbindung zur Datenbank wird natürlich auch benötigt, dazu benutzt man wie gewöhnlich bei hibernate die hibernate.cfg.xml Datei:
hibernate.cfg.xml
In der reveng.xml kann man Tabellenfilter und Mappingkonfigurationen vornehmen, wie z.B. verschiedene Datentypen von sql in Java gemappt werden sollen:
reveng.xml
Montag, 31. Mai 2010
Installation von Postgis in Ubuntu 10.04
Installation der Pakete:
postgresql postgresql-client-common postgresql-8.4-postgis postgis pgadmin3
Anlegen einer Datenbank:
sudo su postgresql createdb my_db createlang plpgsql my_db psql -d my_db -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql psql -d my_db -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql psql -d my_db -f /usr/share/doc/postgis/doc/postgis_comments.sql Mehr dazu unter:
http://blog.smartlogicsolutions.com/2010/03/04/installing-postgis-1-5-0-on-postgresql-8-4-on-ubuntu-9-10/
postgresql postgresql-client-common postgresql-8.4-postgis postgis pgadmin3
Anlegen einer Datenbank:
sudo su postgresql createdb my_db createlang plpgsql my_db psql -d my_db -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql psql -d my_db -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql psql -d my_db -f /usr/share/doc/postgis/doc/postgis_comments.sql Mehr dazu unter:
http://blog.smartlogicsolutions.com/2010/03/04/installing-postgis-1-5-0-on-postgresql-8-4-on-ubuntu-9-10/
Samstag, 22. Mai 2010
Maven Compiler Plugin - unmappable character for encoding UTF-8
Dieser Buildfehler basiert auf einer Änderung zwischen Java 1.5 und Java 1.6. Für Sonerzeichen war das Errorlevel bis Java 1.5 auf WARNING, doch bei 1.6 handelt es sich nun um das Level ERROR.
Beheben lässt sich der Fehler relativ leicht, indem man dem Maven-Compiler-Plugin das richtige Encoding mitgibt.
z.B.
Beheben lässt sich der Fehler relativ leicht, indem man dem Maven-Compiler-Plugin das richtige Encoding mitgibt.
z.B.
Montag, 22. März 2010
Nexus - Release und Snapshot Konfiguration
Für die Release und Snapshot Konfiguration eines Maven Projektes fügt man folgenden Code in die "pom.xml" für das DistributionManagement ein. Der Vorteil dieser Variante, dass globale Maven-Variablen aus der settings.xml genutzt werden und somit an einer zentralen Stelle (settings.xml) Änderungen vorgenommen werden können.
Auszug aus einer pom.xml:
Auszug aus der passenden settings.xml, welche in das .m2 Verzeichnis abgelegt werden muss:
Mittwoch, 10. März 2010
Settings.xml für Nexus anpassen
Um einen Nexus als Maven Proxy zu benutzen, muss man in sein .m2 Verzeichnis eine konfigurierte settings.xml hinterlegen. Der Trick dabei ist, dass man das Central Repository mit einer falschen Url überschreibt, so dass diese dann auch über den Nexus umgeleitet wird. Central ist per Default auf das öffentliche Maven1 Repository gesetzt. Man muss im Nexus lediglich dafür sorgen, dass die darin konfigurierten Repositories zu http:///content/groups/public hinzugefügt wurden. Das heißt, dass alle im Nexus konfigurierten Repositories unter einer Url kompensiert werden.
Samstag, 6. März 2010
Installation von Grails unter Mac OS X
Grails lässt sich relativ einfach installieren.
Einfach von http://www.grails.org/Download die aktuelle grails-Distribution herunterladen
und in ein beliebiges verzeichnis entpacken.
Danach legen wir eine Umgebungsvariable für grails an und tragen grails in den Pfad ein.
Dies macht mit mittels open -a TextEdit ~/.profile
Und da sollte man folgendes eintragen:
GRAILS_HOME=/Users/cwack/Documents/grails;
export GRAILS_HOME
export PATH=/opt/local/bin:/opt/local/sbin:$GRAILS_HOME/bin:$PATH
Nun ist die Installation komplett und der Befehl 'grails' sollte in der Konsole ausführbar sein.
Freitag, 26. Februar 2010
Prüfungsvorbereitung
Bald steht nun die mündl. Prüfung im Fach 1794 Softwareengeneering 2 an.
Wer sich ebenfalls auf diese Prüfung vorbereiten muss kann mit mir zusammen die folgenden Dokumente bearbeiten.
Fragenkatalog 1794 SWE2
Fragen aus mündlichen Prüfungen
Wer sich ebenfalls auf diese Prüfung vorbereiten muss kann mit mir zusammen die folgenden Dokumente bearbeiten.
Fragenkatalog 1794 SWE2
Fragen aus mündlichen Prüfungen
Sonntag, 24. Januar 2010
Netbeans vs. Eclipse
Since few years ago I'm using Eclipse as IDE. Sometimes it seems to be very busy so I was very nerved on it.
I thought now it's time to evaluate an other IDE. Although I hate Netbeans so far, because of its bad look and feel, I will evaluate it.
I spent a lot of time until I have adjusted on NetBeans.
And after this time I'm able to make my result between Eclipse and Netbeans.
Eclipse Netbeans Comment
SVN +++ + In Eclipse there is an very good SVN-Browsing integrated
MAVEN + +++ Netbeans is very fast, Eclipse is very busy with the M2 Plugin
Junit +++ ++ Netbeans couldn't run single test-methods directly
Hudson + +++ Netbeans has a genial hudson plugin, like browsing in workspaces of hudson
Summary:
Both IDEs are good but upgradable. I want to develop fast and not wait, so for me the number one is NetBeans.
greetings Christian
Abonnieren
Posts (Atom)