Jenkins (Hudson)

Vi använder Jenkins, en Java-baserad continous-integration server, med ett webbgränssnitt på: https://hudson-1.sys.kth.se/hudson. Hudson är inte allmänt åtkomlig utanför KTH, utan man behöver VPN eller motsvarande för att ansluta, se http://www.lan.kth.se/vpn/. Flera av projekten installerar efter framgångsrikt bygge automatiskt ut på diverse test-servrar.

Starta om Jenkins

En del har ssh-nycklar för att logga in på servern som tomcat-användaren, tomcat-användaren kan starta om tjänsten med sudo. 

sudo service jenkins restart  # start/stop kan också användas.

Uppdatering

Bör ske med den schedulerade yum update som sker i det allmänna server-underhållet och borde då kunna aktiveras med omstart enligt ovan. Annars kan tomcat-användaren uppdatera med kommandot:

sudo yum update jenkins

Pluginer underhålls inifrån Jenkins administrationsgränssnitt.

Installation

Jenkins är numera installerad på ett mer standardmässigt sätt än tidigare med rpm ifrån ett repo som tillhandahålls av jenkinsprojektet. Mer information om hur man installerar jenkins därifrån finns här: http://pkg.jenkins-ci.org/redhat/.

Testerna i ett par projekt är beroende av att man använder Sun (Oracle) JDK istället för OpenJDK. Den finns att installera parallellt med OpenJDK som är standard på RedHat och konfigureras som standard-variant med alternatives.

yum install java-1.6.0-sun java-1.6.0-sun-devel java-1.6.0-sun-jdbc
alternatives --config java # Välj sedan Sun JRE (som /usr/lib/jvm/jre)
alternatives --config java_sdk_1.6.0 # Välj sedan Sun JDK (som /usr/lib/jvm/java)

Konfiguration

Inställningar av jenkinstjänsten görs i /etc/alternatives/jenkins. Inställningar som är gjorda är peka ut rätt JDK eftersom start-scriptet annars själv letar i en sökväg som tar OpenJDK. Användaren sätts till "tomcat" av historiska skäl, vilket gör att tomcat måste sättas som ägare till /var/log/jenkins, och Jenkins data bor i ~tomcat/var/work. Pathen sätts så att Play hittas i ~tomcat/play och default Ant i ~tomcat/ant.

Jenkins frontas av en Apache httpd som reverse-proxar in den med mod_proxy. Apache hanterar SSL-termineringen. Konfiguration i /etc/httpd/cond.d/ssl.conf och /etc/httpd/conf.d/hudson.sys.kth.se.site.conf.

Byta hårdvara

När man byter server är det ~tomcat man behöver ha med sig. Framför allt är det Jenkins data i ~tomcat/var/work som är väsentligt. Vidare är en del byggen beroende av brandväggshål i Umeå, både IP och DNS måste vara rätt, liksom host-certifikatet (/etc/pki/tls). Vidare måste Java-miljön ha tillgång till det cert som behövs för att koppla upp mot Ture, se dist-katalogen i student-projektet (MSS). Ett sätt att få till det är att göra lägga det i /etc/pki/java/cacerts och se till att Sun JDK/JRE använder den genom att mjuklänka in den på rätt ställe, de använder inte den per default.

Feedback Nyheter