Debian + Jenkins + PHP + GitHub

Preparando una taller para unos alumnos sobre Integración Continua, configure un servidor utilizando Jenkins. A continuación los pasos que fui siguiendo para instalar las herramientas necesarias.

 

Herramientas que vamos a utilizar

Paso a Paso

Instalar Debian

Lo primero que tenemos que hacer es instalar Debian, en el cuadro de “Software Selection” elegimos:

  • Web Server
  • SSH Server
  • Mail Server

Software Selection

Instalar PHP y algo más…

Nota: Para los pasos que siguen, todos los comandos se ejecutan en una terminal como root.

Lo siguiente que vamos a hacer, como estamos creando un servidor de integración continua para PHP, es instalar PHP y Pear.

apt-get install php5 php5-dev php5-xdebug php-pear

Instalar Jenkins

Los siguientes pasos están tomados de la documentación oficial de Jenkins.

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
apt-get update
apt-get install jenkins

QA Tools

Para instalar las QA tools vamos a usar Pear.

pear upgrade PEAR
pear config-set auto_discover 1
pear install pear.phpqatools.org/phpqatools
pecl install xdebug

Instalar Apache Ant

Como nuestro template para contruir proyectos PHP va a utilizar Ant, vamos a instalarlo.

wget http://www.us.apache.org/dist/ant/binaries/apache-ant-1.9.2-bin.tar.gz
tar xvfvz apache-ant-1.9.2-bin.tar.gz -C /opt
ln -s /opt/apache-ant-1.9.2 /opt/ant

Configurar la variable de entorno para que podamos ejecutar Ant desde cualquier lugar

sh -c 'echo ANT_HOME=/opt/ant >> /etc/environment'
ln -s /opt/ant/bin/ant /usr/bin/ant

Para verificar que Ant se instalo bien, ejecutamos:

ant -version

Instalar Git

Por último, para que Jenkins pueda traer el código a integrar desde GitHub, necesitamos instalar git

apt-get install git-core

Luego tenemos que generar una RSA key para el usuario jenkins (el usuario que ejecuta jenkins). Para eso desde una consola de root, cambiamos el usuario a jenkins y generamos la key.

su - jenkins
ssh-keygen -t rsa -C "your_email@example.com"

Luego copiamos nuestra clave publica.

Para eso podemos hacer:

cat .ssh/id_rsa.pub

Copiamos la salida del comando cat y la pegamos en SSH keys en nuestro usuario de GitHub.

SSH Keys

 

Por último, con el usuario Jenkins, ejecutamos

ssh -T git@github.com

Y aceptamos github.com como parte de nuestros know hosts.

KnowHosts

Últimos detalles

Para poder acceder a Jenkins desde otra maquina, vamos a tener que configurar IP Tables para que nos permita acceder al puerto 8080, desde afuera. Para eso podemos ejecutar, nuevamente como root.

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Ahora ya tenemos Jenkins andando en nuestro Debian.

Jenkins Home Page

En proximos posts voy a mostrar como configurar un proyecto PHP en Jenkins.

Leave a Reply

Your email address will not be published. Required fields are marked *