Debian-Paket bauen und deployen

Das Maven-Template für eine neue Anwendung bindet automatisch Plugins für das Bauen eines Debian-Pakets (*.deb) und den Upload des Paketes in ein APT-Repository mit ein. Über diesen Prozess lässt sich eine TopLogic-Applikation "one-click" in einem Ubuntu-System installieren, betreiben und insbesondere auch aktualisieren.

POM-Einstellungen

Im pom.xml der neuen Applikation müssen die folgenden Einstellungen getätigt werden, um den Release-Prozess vorzubereiten:

<tl.deb.skipDeploy>false</tl.deb.skipDeploy>
<tl.deb.repositoryUrl>https://my.server/nexus/repository/my-deb</tl.deb.repositoryUrl>
<tl.deb.serverId>my-server</tl.deb.serverId>

Als APT-Repository kann eine Installation des Sonatype Nexus Repository Manager verwendet werden. In diesem können neben Maven-Repositories auch APT-Repositories eingerichtet werden. Der Wert tl.deb.repositoryUrl kann dann aus den Einstellungen des Repositories kopiert werden. Wichtig: Das '/'-Zeichen am Ende der URL muss weggelassen werden, da dieses von dem Deploy-Plugin automatisch ergänzt wird.

Außerdem muss im Abschnitt distributionManagement ein Maven-Release-Repository eingetragen werden ("fill-out-here" mit einer Repository-URL ersetzen):

<distributionManagement>
	<repository>
		<id>my-releases</id>
		<url>fill-out-here</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>

	<snapshotRepository>
		<id>my-snapshots</id>
		<url>fill-out-here</url>
		<releases>
			<enabled>false</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
	</snapshotRepository>
</distributionManagement>

Wenn die Anwendung nur in ein APT-Repository deployt werden soll, kann beim Deploy alternativ auch das Property maven.deploy.skip auf true gesetzt werden. Diese Property muss in den <properties> -Block eingefügt werden:

<maven.deploy.skip>true</maven.deploy.skip>

Deploy in APT-Repository

Sind alle Einstellungen getätigt, erzeugt ein normales Deploy neben der WAR-Datei auch ein DEB-Paket und lädt dieses in das konfigurierte APT-Repository hoch:

mvn deploy

Ubuntu-Installation

Das eigene APT-Repository wird über eine Datei /etc/apt/sources.list.d/my-repo.list dem System bekannt gemacht:

deb https://my.server/nexus/repository/my-repo/ toplogic main

Wenn das APT-Repository Zugangsdaten erfordert, können diese in /etc/apt/auth.conf.d/my-repo hinterlegt werden:

machine my.server
login <user-name>
password <password>

Installation in dem Ubuntu-System kann jetzt über Standard-Tooling erfolgen:

apt-get install my-app

Update der Installation

Nach Release einer neuen Applikationsversion kann diese über apt aktualisiert werden:

apt-get update
apt-get upgrade my-app

Während des Update-Prozesses wird ein Backup der Datenbank und der Bewegungsdaten der Applikation in den Ordner /root/ gemacht. Sollte das Update nicht erfolgreich sein, kann hierüber der alte Zustand wiederhergestellt werden.