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
- Debian– www.debian.org
- Jenkins CI – www.jenkins-ci.org
- Apache Ant – ant.apache.org
- PHP QA Tools – www.phpqatools.org
- PHP – www.php.net
- Pear – www.pear.php.net
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.