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

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.

Por último, con el usuario Jenkins, ejecutamos
ssh -T git@github.com
Y aceptamos github.com como parte de nuestros know hosts.

Ú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.

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