Sebastian Mogilowskis Blog

Just another blog about administration, linux and other stuff

Language: German English

Install Gnome3 on Ubuntu 11.04 Natty or Ubuntu 10.10 Maverick

Für die Installation folgende Befehle im Terminal ausführen:

Unter Ubuntu 11.04:

add-apt-repository ppa:gnome3-team/gnome3
aptitude update
aptitude dist-upgrade
aptitude install gnome-shell

Unter Ubuntu 10.10:

add-apt-repository ppa:ubuntu-desktop/gnome3-builds
aptitude update
aptitude install gnome3-session

Bemerkung: Dieses Repository wird nicht mehr aktualisiert !

Nach der Installation abmelden und neu anmelden. (Gnome3 auswählen)

Entfernen:

aptitude install ppa-purge
ppa-purge ppa:gnome3-team/gnome3

Links:

* http://www.gnome.org

* http://www.ubuntu.com

Comments: 0 | Read Comments | Write a Comment |

Enable SNMP on Citrix XenServer 5.6

Öffne die XenServer Konsole oder stelle eine SSH-Verbindung zum XenServer für die folgende Anleitung:

1. Einstellen der Firewall

Öffne “/etc/sysconfig/iptables” mit dem “vi” Editor und füge die folgende Zeile ein um SNMP Verbindungen zu erlauben:

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT

IPTables Service neu starten, um die Einstellungen zu übernehmen:

service iptables restart

2. SNMPD Konfigurieren

Bearbeite die Datei “/etc/snmp/snmpd.conf” und füge die folgenden Zeilen ein:

[...]
com2sec MY-TRUST-NET 192.168.0.0/24      public
[...]

[...]
group   notConfigGroup v1            MY-TRUST-NET
[...]

Bemerkung: Ersetze “192.168.0.0/24″ durch dein Subnetz solltest du ein anderes verwenden.

Nun den SNMPD-Deamon starten mit:

service snmpd start

Um den Service beim nächsten Neustart automatisch zu starten folgendes ausführen:

chkconfig snmpd on

Bemerkung: Diese Einstellungen sind nicht dauerhaft. Nach einem Upgrade des XenServers muss man die Einstellungen erneut durchführen.

3. Links

* http://support.citrix.com/article/CTX122337
* HP SNMP Agents for Citrix XenServer

Comments: 1 | Read Comments | Write a Comment |

Ubuntu Lucid on XenServer 5.6 FP1

Anleitung zum installieren von Ubuntu Lucid 10.04 LTS (32-Bit oder 64-Bit) unter Citrix XenServer 5.6 FP1 und konvertieren der virtuellen Maschine in ein eigenes Template.

Bemerkung: Klicke auf ein Bild um es zu vergrößern.

1. Virtuelle Maschine erstellen

“Ubuntu Lucid Lynx 10.04 (64-bit)” als Template auswählen und einen Namen sowie eine Beschreibung für die virtuelle Maschine eingeben. “Install from URL” auswählen und folgende URL eingeben: http://archive.ubuntu.net/ubuntu

xl1xl2xl3

Man legt die Anzahl der vCPUs fest und konfiguriere den Arbeitsspeicher für die virtuelle Maschine. Danach werden die virtuellen Festplatten konfiguriert.

xl4xl5

Ich habe eine 8 GB Disk für das System gewählt und eine 1 GB Disk für SWAP.
Durch das verwenden von 2 verschiedenen Festplatten lässt sich die SWAP-Partition leichter entfernen wenn sie nicht gebraucht wird und die einzelnen Partitionen lassen sich leichter erweitern oder austauschen.

Zum Schluss konfiguriert man noch die Netzwerkinterfaces seiner VM. Dies hängt etwas vom Setup des XenServers ab z.B. ein Bonding-Interface oder ein einzelnes Interface. Anschließend den Wizzard fertigstellen.

Die virtuelle Maschine wird nun erstellt und gestartet.

Sobald dies abgeschlossen ist, öffnet man die Konsole der virtuellen Maschine und beginnt mit der Installation von Ubuntu.

xl6xl7xl8

Wähle dein Land und Tastaturlayout und konfiguriere das Netzwerk.
Sollte man keinen DHCP-Server im Netzwerk haben, muss man das Netzwerk per Hand einstellen. Wähle dazu “manual”.

xl9xl10xl11xl12

Nun wird der Hostname festgelegt. In diesem Beispiel verwende ich xen.local deshalb gebe ich xen als hostname und local als domain name ein.

xl13xl14

Wähle nun einen Mirror für Ubuntu. Normalerweise einen aus deinem Land.
Überprüfe ob der Installer die Zeitzone richtig erkannt hat. Falls ja dann wähle Yes ansonsten No.

xl15xl16

Partitionierung

Nun werden die Festplatten partitioniert und formatiert.
Zuerst wählt man hier “manual” aus und wählt die erste virtuelle Festplatte “xvda” aus. Erstelle eine neue Partitionstabelle “Create a new empty partition table” und wähle den nun entstandenen freien Festplattenspeicher aus um eine neue Partition zu erstellen “create new partition”.
Verwende die Partition als “Ext4 journaling file system” mit “/” als mount point.

xl17xl18xl19xl20xl21

xl22xl23xl24







Nun alles mit der 2. Festplatte “xvdb” wiederholen. Nur dieses mal erstellt man eine “swap area”.

xl26xl27xl28xl29

Die genaue Partitionierung könnte natürlich auch anders aussehen. Wer weiss was er tut kann die Konfiguration natürlich an seine Anforderungen anpassen.
Zum Schluß die Partitionierung abschließen “Finish partitioning” und mit “Yes” bestätigen wenn man gefragt wird ob die Änderungen auf die Festplatte geschrieben werden sollen. “Write the changes to disks”

Anschließend wird das Grundsystem installiert:
xl30

Jetzt wird ein Benutzer angelegt. Zum Beispiel der Benutzer “sebastian” mit dem Benutzernamen “sebastian”.

xl31xl32xl33xl34

Bemerkung: Ich benötige kein verschlüsseltes Home Verzeichnis deshalb habe ich die Frage nach “encrypted private directory” mit No beantwortet.

Als nächstet wird der Packetmanager eingerichtet. Lasst die Eingabezeile bei “HTTP proxy” leer außer ihr habt einen Proxy-Server über den ihr ins internet gelangt.
Außerdem habe ich “No automatic updates” ausgewählt, da ich auf Servern die Updates lieber selbst per Hand installiere.
Anschließend wird das System und einige notwendige Pakete installiert. Ich habe in der Softwareauswahl nur “Basic Ubuntu server” und “OpenSSH server” ausgewählt um eine kleine virtuelle Maschine zu erhalten.

xl35xl36xl37xl38

Nun wird der “GRUB boot loader” installiert. Wähle “Yes” bei der Frage ob dieser in den master boot record installiert werden soll “Install the GRUB boot loader to the master boot record?”.

xl39xl40xl42

Die Installation des Systems ist nun abgeschlossen. Wähle “Continue” um die virtuelle Maschine mit dem installierten Ubuntu neu zu starten.

2. Die XEN-Tools installieren

Verbinde im XenCenter “xs-tools.iso” mit der virtuellen Maschine.
Nun die CD in der virtuellen Maschine mounten und das richtige XenServer Tools Paket installieren. (Ersetze amd64 mit i386 falls nötig) Nach der installation kann man die CD wieder unmounten.

mount /dev/cdrom /mnt
dpkg -i /mnt/Linux/xe-guest-utilities_5.6.100-647_amd64.deb
umount /mnt/

Nach dem Neustart überprüft man ob die Tool-Services auch automatisch gestartet wurden. Falls nicht folgendes ausführen:

update-rc.d -f xe-linux-distribution remove
update-rc.d xe-linux-distribution defaults

Nun die virtuelle Maschine ein letztes Mal neu starten.

3. Konvertieren der virtuellen Maschine in ein Template

Vorher sollte man jede Software installieren, die man auf allen virtuellen Maschinen haben möchte. Außerdem alle Einstellungen vornehmen, die man überall haben möchte.

Nach dem man den Server nach seinen Wünschen eingerichtet hat fährt man die virtuelle Maschine herrunter.

Mit einem “rechts Klick” auf die virtuelle Maschine gelangt man in das Kontextmenu wo man “Convert to Template” auswählt.

Nun kann man neue virtuelle Maschinen auf Basis dieses bereits eingerichteten und installierten Ubuntu Templates erstellen.

Mit “New VM from template” und mit der Auswahl des selbst erstellten Templates können nun neue virtuelle Maschinen angelegt werden.

Comments: 8 | Read Comments | Write a Comment |

Resize images (folder) with imagemagick (mogrify)

Bevor ich Bilder in meine Online-Galerie hochlade möchte ich diese noch lokal verkleinern. Dazu möchte ich aber nicht jedes Bild einzeln öffnen sondern ohne GUI alle auf einmal ändern.

Zuerst muss man imagemagick installieren:

aptitude install imagemagick

Nun geht (“cd”) man am besten in das Verzeichnis mit den Bildern und führt folgenden Befehl aus:

mogrify -resize 800x600! *.JPG

Alle Bilder werden durch die verkleinerte Version von sich selbst ersetzt.

Nun kann man das Verzeichnis bequem hochladen.

Comments: 0 | Read Comments | Write a Comment |

Change DNS-Server in XenServer 5.6 FP1

Citrix hat das Ändern des DNS-Servers aus der Konsole entfernt. Das ändern der DNS-Server in der Datei “/etc/resolv.conf” ist zwar möglich, aber diese Einstellungen sind nicht von Dauer. Wenn man zum Beispiel den Server neu startet, werden die Einstellung auf die alte Konfiguration zurückgesetzt.

Ändern des DNS-Servers

Mit dem Befehl

xe pif-list

bekommt man die UUID seines PIF. Man bekommt eine Ausgabe wie diese:

uuid ( RO)                  : PIF-UUID
                device ( RO): eth0
    currently-attached ( RO): true
                  VLAN ( RO): -1
          network-uuid ( RO): NETWORK-UUID

Mit dem Befehl “xe pif-param-list uuid=PIF-UUID” kann man sich die aktuelle Konfiguration des Interfaces anzeigen lassen.

Um sie zu ändern, verwendet man folgenden Befehl:

xe pif-reconfigure-ip uuid=PIF-UUID mode=static IP=IP-ADDRESS netmask=SUBNETMASK gateway=GATEWAY DNS=DNS-SERVER

Bemerkung: Man kann mit “DNS=DNS-SERVER-1,DNS-SERVER-2″ mehrere DNS-Server angeben.

Mit dem Befehl “xe pif-param-list uuid=PIF-UUID” kann man sich die neue Konfiguration anzeigen lassen und die Änderungen überprüfen.

Links:

http://forums.citrix.com/thread.jspa?messageID=1531853

Comments: 0 | Read Comments | Write a Comment |

Upgrade Debian Lenny to Squeeze on Citrix XenServer

Debian Logo

1. Die Lenny Installation auf den aktuellen Stand bringen

Bevor man mit dem Distributions-Update beginnt, sollte man sicherstellen, dass Lenny auf dem aktuellen Stand ist.

aptitude update
aptitude upgrade

2. Die sources.list zu Squeeze ändern

Öffne “/etc/apt/sources.list” mit einem Editor deiner Wahl und ersetzte “Lenny” durch “Squeeze” hier ist ein Beispiel:

# Debian Squeeze
deb http://ftp.de.debian.org/debian/ squeeze main
deb-src http://ftp.de.debian.org/debian/ squeeze main  

# Debian Squeeze Security
deb http://security.debian.org/ squeeze/updates main

3. Das System aktualisieren

aptitude update
aptitude install apt dpkg aptitude
aptitude full-upgrade

4. Grub aktualisieren

Debian Squeeze verwendet Grub2 deshalb muss man noch “upgrade-from-grub-legacy” ausführen um von Grub zu Grub2 umzustellen.

upgrade-from-grub-legacy
rm -f /boot/grub/menu.lst*

Sollte man dies nicht machen, bekommt man folgende Fehlermeldung vom XenServer.

Error: Starting VM 'YOUR_VM' - Using  to parse /boot/grub/menu.lst - Traceback (most recent call last): - File "/usr/bin/pygrub", line 746, in ? - raise RuntimeError, "Unable to find partition containing kernel" - RuntimeError: Unable to find partition containing kernel
Comments: 5 | Read Comments | Write a Comment |

Puppet Dashboard / Reports – Ubuntu

Puppet Reports mit “Puppet Dashboard” auswerten.

Installation:

Folgende Zeilen an die Datei “/etc/apt/sources.list” anfügen:

deb http://apt.puppetlabs.com/ubuntu lucid main
deb-src http://apt.puppetlabs.com/ubuntu lucid main

Jetzt

aptitude update

ausführen um die Paketliste zu aktualisieren.

Sollte man den Fehler “GPG error” because the public key is not available dann muss man den Key des Puppet Repository zu APT hinzufügen. (NO_PUBKEY 1054B7A24BD6EC30) Dazu folgendes ausführen:

gpg --recv-key 1054B7A24BD6EC30
gpg -a --export 1054B7A24BD6EC30 | sudo apt-key add -

und anschließend “aptitude update” nochmals ausführen.

Nun das Puppet-Dashboard-Paket installieren:

aptitude install puppet-dashboard

Außerdem braucht man nun noch einen MySQL Server um die Reports zu speichern:

aptitude install mysql-server

Nun “mysql” ausführen und eine Datenbank und einen entsprechenden Benutzer anlegen:

mysql -u root -p
mysql> CREATE DATABASE dashboard CHARACTER SET utf8;
mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';
exit;

Die Datei “/usr/share/puppet-dashboard/config/database.yml” mit einem Editor öffnen und folgende Änderungen unter “production” vornehmen:

production:
  database: dashboard
  username: dashboard
  password: password
  encoding: utf8
  adapter: mysql

Konfiguration der Datenbank:

cd /usr/share/puppet-dashboard
rake RAILS_ENV=production db:migrate

Jetzt die Datei “/etc/default/puppet-dashboard” bearbeiten und folgende Zeile auskommentieren:

START=yes

Nun kann man das dashboard starten:

/etc/init.d/puppet-dashboard start

Auf dem Puppetmaster die Datei “/etc/puppet/puppet.conf” bearbeiten und folgende Änderungen vornehmen:

[puppetmasterd]
[...]
reports=puppet_dashboard
reportdir=/var/lib/puppet/reports
reporturl=http://SERVER:3000/reports
[...]

Bemerkung: Ersetze “SERVER” mit der Addresse deines Puppetmaster-Servers.

Auf den Puppet-Clients ebenfalls die Datei “/etc/puppet/puppet.conf” bearbeiten und unter “[puppetd]” folgende Änderungen vornehmen:

[puppetd]
[...]
report=true
[...]

Bemerkung: Dies könnte man auch mit puppet selbst machen !

Verwenden von Puppet-Dashboard:

Öffne “http://SERVER:3000″ um auf das Puppet Dashboard zu gelangen.

Lass Puppet auf deinem Client laufen (entweder puppet neu starten oder puppetrun verwenden).

Betrachte den Report mit Puppet Dashboard in deinem Browser.

Links:

* http://projects.puppetlabs.com/projects/dashboard
* http://searchenterpriselinux.techtarget.com/tip/Displaying-Puppet-reports-on-Puppet-Dashboard
* http://bitcube.co.uk/content/puppet-dashboard-v101-install
* http://www.craigdunn.org/2010/08/part-3-installing-puppet-dashboard-on-centos-puppet-2-6-1/

Comments: 1 | Read Comments | Write a Comment |

Install VirtualBox 4.0 on Ubuntu / Debian

1. Neue Softwarequelle hinzufügen

Dazu öffnet man die Datei ”/etc/apt/sources.list” mit einem Editor und fügt folgende Zeile, abhängig von der verwendeten Ubuntu Version, ein:

 

 
 

Ubuntu 10.10 (Maverick Meerkat)

deb http://download.virtualbox.org/virtualbox/debian maverick contrib

Ubuntu 10.04 (Lucid Lynx LTS)

deb http://download.virtualbox.org/virtualbox/debian lucid contrib

Ubuntu 9.10 (Jaunty Jackalope)

deb http://download.virtualbox.org/virtualbox/debian karmic contrib

2. GPG-Key hinzufügen

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

3. VirtualBox installieren

aptitude update
aptitude install virtualbox-4.0 dkms

Links

* http://www.virtualbox.org
* http://www.virtualbox.org/wiki/Changelog
* http://en.wikipedia.org/wiki/VirtualBox
* http://de.wikipedia.org/wiki/VirtualBox

Comments: 0 | Read Comments | Write a Comment |

Install Tomcat 7 on Debian (Lenny) with virtual hosts and Apache2 integration


Dieser Artikel ist eine überarbeitete Version meines Tomcat 6 Artikels. Es soll Tomcat 7 unter Debian Lenny installiert werden und mit mehreren virtuellen Hosts betrieben werden. Tomcat 7 ist unter Debian leider nicht über die Quellen zu beziehen, deshalb muss er manuell installiert werden.

Tomcat 7 ist aktuell noch BETA. Für produktive Server sollte man lieber noch auf Tomcat 6 zurückgreifen.

1. Installation von Java 6 runtime:

Eine der folgenden Java JDK Installationen wählen:

1.1 OpenJDK

aptitude install openjdk-6-jre

1.2 Sun Java (non-free)

vim /etc/apt/sources
deb http://ftp.de.debian.org/debian/ lenny main non-free
deb-src http://ftp.de.debian.org/debian/ lenny main non-free
aptitude update
aptitude install sun-java6-jre

Bemerkung: Nicht vergessen, dass eine andere Konfiguration beim Apache-Connector erforderlich sein wird, sollte Sun JDK verwendet werden.

2. Download Tomcat

Download Tomcat 7 von der Tomcat 7 Download Seite.

Zum Beispiel:

wget http://artfiles.org/apache.org/tomcat/tomcat-7/v7.0.5-beta/bin/apache-tomcat-7.0.5.tar.gz

3. Installation von Tomcat

tar -xzvf apache-tomcat-7.0.5.tar.gz
mv apache-tomcat-7.0.5 /opt/tomcat

4. Tomcat Benutzer und Gruppe anlegen

groupadd tomcat
useradd -g tomcat -d /opt/tomcat tomcat
usermod -G www-data tomcat
chown tomcat:tomcat /opt/tomcat -R

Dies legt einen neuen Benutzer “tomcat” und eine neue Gruppe “tomcat” an. Außerdem wird das Home-Directory dieses Benutzers auf “/opt/tomcat” gesetzt. Der Benutzer wird außerdem in die Gruppe “www-data” verschoben. Dies ist notwendig um Zugriff auf die virtuellen Hosts des Apaches zu haben. Zum Schluss werden dem neuen Benutzer “tomcat” noch die Besitzrechte für den Ordner “/opt/tomcat” übertragen.

5. Init-Skript erstellen

vim /etc/init.d/tomcat
#!/bin/sh
#
# /etc/init.d/tomcat -- startup script for the Tomcat 7 servlet engine
#
# Modified init-Script from Ubuntu Tomcat init-script
#
# 2010 - Sebastian Mogilowski - http://www.mogilowski.net
#
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Tomcat.
# Description:       Start the Tomcat servlet engine.
### END INIT INFO

set -e

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/tomcat
NAME=tomcat
DESC="Tomcat servlet engine"
DEFAULT=/etc/default/$NAME
JVM_TMP=/tmp/tomcat-tmp

if [ `id -u` -ne 0 ]; then
	echo "You need root privileges to run this script"
	exit 1
fi

# Make sure tomcat is started with system locale
if [ -r /etc/default/locale ]; then
	. /etc/default/locale
	export LANG
fi

. /lib/lsb/init-functions

if [ -r /etc/default/rcS ]; then
	. /etc/default/rcS
fi

# The following variables can be overwritten in $DEFAULT

# Run Tomcat 7 as this user ID and group ID
TOMCAT_USER=tomcat
TOMCAT_GROUP=tomcat

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
	JAVA_HOME="$jdir"
    fi
done
export JAVA_HOME

# Directory where the Tomcat binary distribution resides
CATALINA_HOME=/opt/$NAME

# Directory for per-instance configuration files and webapps
CATALINA_BASE=/opt/$NAME

# Use the Java security manager? (yes/no)
TOMCAT_SECURITY=no

# Default Java options
# Set java.awt.headless=true if JAVA_OPTS is not set so the
# Xalan XSL transformer can work without X11 display on JDK 1.4+
# It also looks like the default heap size of 64M is not enough for most cases
# so the maximum heap size is set to 128M
if [ -z "$JAVA_OPTS" ]; then
	JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
fi

# End of variables that can be overwritten in $DEFAULT

# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
	. "$DEFAULT"
fi

if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
	log_failure_msg "$NAME is not installed"
	exit 1
fi

POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"

if [ -z "$CATALINA_TMPDIR" ]; then
	CATALINA_TMPDIR="$JVM_TMP"
fi

# Set the JSP compiler if set in the tomcat.default file
if [ -n "$JSP_COMPILER" ]; then
	JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=\"$JSP_COMPILER\""
fi

SECURITY=""
if [ "$TOMCAT_SECURITY" = "yes" ]; then
	SECURITY="-security"
fi

# Define other required variables
CATALINA_PID="/var/run/$NAME.pid"
CATALINA_SH="$CATALINA_HOME/bin/catalina.sh"

# Look for Java Secure Sockets Extension (JSSE) JARs
if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
    JSSE_HOME="${JAVA_HOME}/jre/"
fi

catalina_sh() {
	# Escape any double quotes in the value of JAVA_OPTS
	JAVA_OPTS="$(echo $JAVA_OPTS | sed 's/\"/\\\"/g')"

	AUTHBIND_COMMAND=""
	if [ "$AUTHBIND" = "yes" -a "$1" = "start" ]; then
		JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
		AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c "
	fi

	# Define the command to run Tomcat's catalina.sh as a daemon
	# set -a tells sh to export assigned variables to spawned shells.
	TOMCAT_SH="set -a; JAVA_HOME=\"$JAVA_HOME\"; source \"$DEFAULT\"; \
		CATALINA_HOME=\"$CATALINA_HOME\"; \
		CATALINA_BASE=\"$CATALINA_BASE\"; \
		JAVA_OPTS=\"$JAVA_OPTS\"; \
		CATALINA_PID=\"$CATALINA_PID\"; \
		CATALINA_TMPDIR=\"$CATALINA_TMPDIR\"; \
		LANG=\"$LANG\"; JSSE_HOME=\"$JSSE_HOME\"; \
		cd \"$CATALINA_BASE\"; \
		\"$CATALINA_SH\" $@"

	if [ "$AUTHBIND" = "yes" -a "$1" = "start" ]; then
		TOMCAT_SH="'$TOMCAT_SH'"
	fi

	# Run the catalina.sh script as a daemon
	set +e
	touch "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out
	chown $TOMCAT_USER "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out
	start-stop-daemon --start -b -u "$TOMCAT_USER" -g "$TOMCAT_GROUP" \
		-c "$TOMCAT_USER" -d "$CATALINA_TMPDIR" \
		-x /bin/bash -- -c "$AUTHBIND_COMMAND $TOMCAT_SH"
	status="$?"
	set +a -e
	return $status
}

case "$1" in
  start)
	if [ -z "$JAVA_HOME" ]; then
		log_failure_msg "no JDK found - please set JAVA_HOME"
		exit 1
	fi

	if [ ! -d "$CATALINA_BASE/conf" ]; then
		log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
		exit 1
	fi

	log_daemon_msg "Starting $DESC" "$NAME"
	if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
		--user $TOMCAT_USER --exec "$JAVA_HOME/bin/java" \
		>/dev/null; then

		# Regenerate POLICY_CACHE file
		umask 022
		echo "// AUTO-GENERATED FILE from /opt/tomcat/" \
			> "$POLICY_CACHE"
		echo ""  >> "$POLICY_CACHE"
		cat $CATALINA_BASE/conf/*.policy \
			>> "$POLICY_CACHE"

		# Remove / recreate JVM_TMP directory
		rm -rf "$JVM_TMP"
		mkdir -p "$JVM_TMP" || {
			log_failure_msg "could not create JVM temporary directory"
			exit 1
		}
		chown $TOMCAT_USER "$JVM_TMP"

		catalina_sh start $SECURITY
		sleep 5
        	if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
			--user $TOMCAT_USER --exec "$JAVA_HOME/bin/java" \
			>/dev/null; then
			if [ -f "$CATALINA_PID" ]; then
				rm -f "$CATALINA_PID"
			fi
			log_end_msg 1
		else
			log_end_msg 0
		fi
	else
	        log_progress_msg "(already running)"
		log_end_msg 0
	fi
	;;
  stop)
	log_daemon_msg "Stopping $DESC" "$NAME"

	set +e
	if [ -f "$CATALINA_PID" ]; then
		start-stop-daemon --stop --pidfile "$CATALINA_PID" \
			--user "$TOMCAT_USER" \
			--retry=TERM/20/KILL/5 >/dev/null
		if [ $? -eq 1 ]; then
			log_progress_msg "$DESC is not running but pid file exists, cleaning up"
		elif [ $? -eq 3 ]; then
			PID="`cat $CATALINA_PID`"
			log_failure_msg "Failed to stop $NAME (pid $PID)"
			exit 1
		fi
		rm -f "$CATALINA_PID"
		rm -rf "$JVM_TMP"
	else
		log_progress_msg "(not running)"
	fi
	log_end_msg 0
	set -e
	;;
   status)
	set +e
	start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
		--user $TOMCAT_USER --exec "$JAVA_HOME/bin/java" \
		>/dev/null 2>&1
	if [ "$?" = "0" ]; then

		if [ -f "$CATALINA_PID" ]; then
		    log_success_msg "$DESC is not running, but pid file exists."
			exit 1
		else
		    log_success_msg "$DESC is not running."
			exit 3
		fi
	else
		log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
	fi
	set -e
        ;;
  restart|force-reload)
	if [ -f "$CATALINA_PID" ]; then
		$0 stop
		sleep 1
	fi
	$0 start
	;;
  try-restart)
        if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
		--user $TOMCAT_USER --exec "$JAVA_HOME/bin/java" \
		>/dev/null; then
		$0 start
	fi
        ;;
  *)
	log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
	exit 1
	;;
esac

exit 0

Herrunterladen des Init-Skripts: Tomcat 7 Init-Script (2.6 kB)

chmod +x /etc/init.d/tomcat
update-rc.d tomcat defaults

6. Aktivieren des Tomcat Managers

vim /opt/tomcat/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="admin"/>
    <role rolename="admin-gui"/>
    <user username="YOUR_USERNAME" password="YOUR_PASSWORD" roles="admin,admin-gui,manager,manager-gui"/>
</tomcat-users>

6. Start Tomcat

/etc/init.d/tomcat start

Nun kann man den Tomcat Manager mit http://SERVER:8080/manager aufrufen.

7. Installation des Apache2 Connectors

Tomcat besitzt zwar einen eingebauten Webserver, jedoch ist der Apache2 Webserver wesentlich leistungsfähiger außerdem sind so die Apache Module verwendbar. (mod_rewrite zum Beipiel)

aptitude install apache2 libapache2-mod-jk

7.1 Apache worker

vim /etc/apache2/workers.properties
workers.tomcat_home=/opt/tomcat
workers.java_home=/usr/lib/jvm/java-6-openjdk
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Bemerkung: Falls die non-free Java Runtime von Sun verwendet wird, muss “/usr/lib/jvm/java-6-openjdk” durch “/usr/lib/jvm/java-6-sun” ersetzt werden.

7.2 JK Konfigurationsdatei

vim /etc/apache2/conf.d/jk.conf
<ifmodule mod_jk.c>
    JkWorkersFile /etc/apache2/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel error
</ifmodule>
/etc/init.d/apache2 stop
/etc/init.d/tomcat restart
/etc/init.d/apache2 start

8. Neuen Virtuellen Host anlegen

Nun soll ein neuer VirtualHost angelegt werden. Dieser muss im Apache und im Tomcat angelegt werden.

8.1 Verzeichnisse anlegen

mkdir /var/www/vhost1
mkdir /var/www/vhost1/htdocs
mkdir /var/www/vhost1/logs
vim /etc/apache2/sites-available/vhost1

8.2 Apache

<virtualhost www.testsrv.local>
    JkMount /*.jsp default
    ServerName www.testsrv.local
    ServerAdmin servermaster@testsrv.local
    DocumentRoot /var/www/vhost1/htdocs
    ErrorLog /var/www/vhost1/logs/error.log
    CustomLog /var/www/vhost1/logs/access.log common
    <directory /var/www/vhost1/htdocs>
        Options -Indexes
    </directory>
</virtualhost>

Bemerkung: Man könnte auch alle Dateien an den Tomcat weiterleiten “JkMount /*” oder alle Dateien innerhalb eines Verzeichnisses “JkMount /folder/*”.

a2ensite vhost1
/etc/init.d/apache2 reload

8.3 Tomcat

vim /opt/tomcat/conf/server.xml
<!-- www.testsrv.local -->
<Host name="www.testsrv.local" appBase="/var/www/vhost1" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="htdocs" debug="0" reloadable="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/www/vhost1/logs"  prefix="tomcat_access_" suffix=".log" pattern="common" resolveHosts="false"/>
</Host>

Bemerkung: Bitte sicherstellen, dass das “H”, “C” und “V” von “Host”, “Content” und “Value” groß geschrieben sind. Dies ist wichtig seit Version 7 von Tomcat.

/etc/init.d/tomcat restart

Bemerkung: Man kann weitere Domains mit:

<Alias>additionaldomain.com</Alias>

hinzufügen.

9. Testseite anlegen

vim /var/www/vhost1/htdocs/test.jsp
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
        Today is: <%= new java.util.Date().toString() %>
    </body>
</html>

Nun kann man durch den Aufruf von http://www.testsrv.local/test.jsp die Konfiguration/Installation testen.

Comments: 35 | Read Comments | Write a Comment |

VMWare Open Virtualization Format Tool

Kommodozeilentool zum importieren und exportieren von OVF Paketen.

Herrunterladen

Zuerst das “VMWare Open Virtualization Format Tool” hier herrunterladen:

http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf

Installation

chmod +x VMware-ovftool-2.0.1-260188-lin.x86_64.sh
./VMware-ovftool-2.0.1-260188-lin.x86_64.sh

OVF zu VMX konvertieren

/opt/vmware/ovftool/ovftool /path/to/vm.ovf /path/to/vm.vmx

VMX zu OVF konvertieren

/opt/vmware/ovftool/ovftool /path/to/vm.vmx /path/to/vm.ovf

Weitere Informationen und Beispiele

OVF Tool Userguide

Comments: 1 | Read Comments | Write a Comment |

Previous Posts Next posts