Jenkins och Gerrit under Tomcat 8 i Debian Wheezy

From Peters wiki
Revision as of 21:49, 8 August 2014 by Peter (talk | contribs) (H2)
Jump to navigation Jump to search

Denna artikel beskriver hur man kör Jenkins & Gerrir under Tomcat 8 i Debian Wheezy. Artikeln går bara igenom hur man installerar Tomcat 8 och hur man installerar Jenkins & Gerrit, inte hur man sedan konfiguerar dessa applikationer.

Tomcat 8 för Debian Wheezy hämtar man från wheezy-backports. Tomcat 8 kräver Java 7 eller senare.

Installera Tomcat 8

Installera tomcat8, tomcat8-admin och tomcat8-docs:

root # apt-get install -t wheezy-backports tomcat8 tomcat8-admin tomcat8-docs

Verifiera att Tomcat 8 har startats genom att browse:a till sidan: http://localhost:8080.

Addera en admin användare

För att kunna komma åt via Tomcat sidor behöver man tillhöra rollen manager-gui eller admin-gui. Skapa därför en admin användare genom att lägga till följande i filen /etc/tomcat8/tomcat-users.xml:

<tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <user username="<username>" password="<password>" roles="manager-gui,admin-gui"/>
</tomcat-users>

Ange valfritt användarnamn och lösenord. Testa att du nu kommer åt admin sidan i Tomcat.

Förbereda Tomcat för Gerrit

Sätt upp JDBC (Java databasanslutning) för Gerrit

PostgreSQL

Ladda ner JDBC för PostgreSQL här. Till PostgreSQL-9.1 och Java 7 verkar version 9.3 för JDBC41 fungera bra. Spara JAR filen i katalogen /usr/share/tomcat8/lib.

Konfiguera sedan kopplingen till PostgreSQL-databasen genom att lägga till följande i filen /etc/tomcat8/context.xml:

<Context>
    <Resource
        name="jdbc/ReviewDb"
	auth="Container"
	type="javax.sql.DataSource"
	username="<username>"
	password="<password>"
	driverClassName="org.postgresql.Driver"
	url="jdbc:postgresql://localhost:5432/<database>"
    />
</Context>

Ange namnet på databasen, namnet på databasanvändaren och dess lösenord.

MySQL/MariaDB

Ladda ner JDBC för MySQL här. Packa upp och spara JAR filen i katalogen /usr/share/tomcat8/lib. Konfiguera sedan kopplingen till MySQL-databasen genom att lägga till följande i filen /etc/tomcat8/context.xml:

<Context>
    <Resource
        name="jdbc/ReviewDb"
	auth="Container"
	type="javax.sql.DataSource"
	username="<username>"
	password="<password>"
	driverClassName="com.mysql.jdbc.Driver"
	url="jdbc:mysql://localhost:3306/<database>"
    />
</Context>

Ange namnet på databasen, namnet på databasanvändaren och dess lösenord.

H2

(Beskriv hur man extraherar H2 JDBC ur gerrit.war filen)

   name="jdbc/ReviewDb"
   type="javax.sql.DataSource"
   username=""
   driverClassName="org.h2.Driver"
   password=""
   url="jdbc:h2:file:/install_dir/gerrit/db/ReviewDB"
   maxActive="100"
   maxIdle="20"/>

Kryptering

Då Gerrit kör all kommunikation över SSH krävs kryptostöd. Ladda ner Provider samt PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL från http://www.bouncycastle.org/latest_releases.html. Välj versionen som passar Java 7. I skrivande stund är det dessa filer man ska ladda ner: http://www.bouncycastle.org/download/bcprov-jdk15on-151.jar och http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar. Spara filerna i katalogen /usr/share/tomcat8/lib.

Inställning av Jenkins och Gerrit hemkatalog

För att välja var Jenkins och Gerrit filerna sparas, sätt variablerna JENKINS_HOME och GERRIT_SITE. Om vi vill ha Jenkins under /var/lib/jenkins och Gerrit under /var/lib/gerrit/review_site, lägg till följande i /etc/default/tomcat8:

CATALINA_OPTS="-DJENKINS_HOME=/var/lib/jenkins -DGERRIT_SITE=/var/lib/gerrit/review_site"

Då alla inställningar i Tomcat är klara, starta om Tomcat servern:

root # service tomcat8 restart

Installera Gerrit

Ladda ner Gerrit. Döp om filen till gerrit.war, men lägg den ännu inte under /var/lib/tomcat8/webapps. Vi behöver initiera Gerrit först. Kör kommandona:

root # mkdir -p /var/lib/gerrit/review_site
root # chmod -R 755 /var/lib/gerrit
root # java -jar gerrit.war init -d /var/lib/gerrit/review_site

Ställ in Gerrit som vanligt, men man kan nog mata in en oanvänd URL listen port. Även om jag inte tror den ens används. Canonical URL ställer du in till http://<webadress>:8080/gerrit. När Gerrit är initierat, kan vi deploy:a Gerrit genom att kopiera eller flytta gerrit.war filen till katalogen /var/lib/tomcat8/webapps. Efter en kort stund kommer applikationen auto-deploy:as och katalogen /var/lib/tomcat8/webapps/gerrit kommer skapas. Kolla på Tomcat admin sidan om applikationen startat ordentligt. Om inte, försök felsöka genom att titta i loggarna under /var/log/tomcat8. Om allt verkar ok, försök logga in i Gerrit: http://localhost:8080/gerrit/

Då Gerrit kommer köras som samma användare som kör Tomcat, se till att review_site mappen har tomcat8 som ägare och grupp:

root # chown -R tomcat8:tomcat8 /var/lib/gerrit

Installera Jenkins

Jenkins kräver ingen initiering som Gerrit. Det räcker att skapa hemkatalogen och se till att den har tomcat8 som ägare och grupp:

root # mkdir /var/lib/jenkins
root # chown tomcat8:tomcat8 /var/lib/jenkins
root # chmod 755 /var/lib/jenkins

Ladda ner Jenkins .war filen, döp om den till jenkins.war och flytta den till katalogen /var/lib/tomcat8/webapps. Efter en kort stund kommer applikationen auto-deploy:as och katalogen /var/lib/tomcat8/webapps/jenkins kommer skapas. Kolla på Tomcat admin sidan om applikationen startat ordentligt. Om inte, försök felsöka genom att titta i loggarna under /var/log/tomcat8. Om allt verkar ok, försök logga in i Gerrit: http://localhost:8080/jenkins/