Jenkins och Gerrit under Tomcat 8 i Debian Wheezy

From Peters wiki
Revision as of 13:45, 29 December 2014 by Peter (talk | contribs) (MySQL/MariaDB)
Jump to navigation Jump to search

Denna artikel beskriver hur man kör Jenkins & Gerrit 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 och MariaDB

Ladda ner JDBC för MySQL eller MariaDB 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" eller "org.mariadb.jdbc.Driver"
	url="jdbc:mysql://localhost:3306/<database>"
    />
</Context>

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

H2

h2 JDBC stödet kan vi extrahera ur gerrit.war filen. För att veta vad filen heter, kör:

user $ jar -tf gerrit.war | grep lib/h2

Sen kan man extrahera h2 filen och spara den under /usr/share/tomcat8/lib via kommandot:

root # java -jar gerrit.war cat lib/h2-1.3.174.jar > /usr/share/tomcat8/lib/h2-1.3.174.jar

(Exakt kommando beror på vilken h2 version som Gerrit har)

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

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

Justera sökvägen till databasen om den inte läggs i katalogen /var/lib/gerrit/review_site/db.

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"

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 vilken URL listen port som helst. Canonical URL ställer du in till http://<webadress>:8080/gerrit. Användaren för container processen ska sättas till tomcat8, dvs den användare som kör Tomcat servern.

Då Gerrit kör all kommunikation över SSH krävs kryptostöd. Under initieringen av Gerrit, se till att ladda ner Bouncycastle biblioteken. Vi behöver kopiera dessa till Tomcat.

När initieringen är klar, kopiera bcprov och bcpkix JAR filerna från /var/lib/gerrit/review_site/lib och lägg dom under /usr/share/tomcat8/lib. Starta om Tomcat servern:

root # service tomcat8 restart

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

Nu 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/

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 öppna Jenkins: http://localhost:8080/jenkins/