1. -1-
A u t o r : J o e l R i c h a r d M o y a L u p e
1)Rundeck
1.1 Configuración de ambiente de trabajo
Lo primero es configurar nuestros servidores. Tareas Pasos Detallados
1. Verificar acceso al servidor Apache
1. Abrir una consola de Putty
2. Conectarse con el usuario administrador a la máquina de pruebas
Comando: ssh root@172.20.200.68
Contraseña: P4ssw0rd
3. Verificar configuración de red
#ifconfig
IP: 172.20.200.68
GW: 172.20.200.1
DNS: 172.20.0.21
Proxy: 172.20.240.5:8080
2. Verificar acceso al servidor Rundeck
1. Abrir otra consola de Putty
2. Conectarse con el usuario administrador a la maquina del Rundeck
Comando: ssh root@172.20.200.XX
Contraseña: P4ssw0rd
3. Verificar configuración de red
#ifconfig
IP: 172.20.200.XX
GW: 172.20.200.1
DNS: 172.20.0.21
Proxy: 172.20.240.5:8080
3. Verificación de los servicios de Rundeck
1. En la consola de Putty conectada a la máquina de Rundeck
(172.20.200.XX) verificar si el servicio de Rundeck está corriendo
#service rundeckd status
2. Abrir el archivo de configuración rundeck-config.properties
#sudo nano /etc/rundeck/rundeck-config.properties
3. Cambiar el valor de la variable grails.serverURL valor por la IP que le corresponda
grails.serverURL=http://172.20.200.XX:4440
4. Guardar los cambios
5. Abrir el archivo de configuración framework.properties
#sudo nano /etc/rundeck/framework.properties
6. Cambiar el valor de la variable framework.server.url valor por la IP que le corresponda
framework.server.url = http://172.20.200.XX:4440
7. Guardar los cambios
8. Reiniciar el servicio
2. -2-
A u t o r : J o e l R i c h a r d M o y a L u p e
#service rundeckd restart
9. Abrir Navegador(Chrome o Firefox)
10. Abrir un Tab con el siguiente url: http://172.20.200.XX:4440/
11. Ingresar con el usuario administrador
Usuario: admin
Contraseña: admin
4. Verificación de los servicios de Jenkins
1. En la consola de Putty conectada a la máquina de Rundeck
(172.20.200.XX) verificar si el servicio de Jenkins está corriendo
# service jenkins status
2. Abrir un Tab con el siguiente url: http://172.20.200.XX:8080/
3. Ingresar con el usuario administrador
Usuario: admin
Contraseña: P4ssw0rd
1.2 Configurando proyectos
Creando y configurando nuestro proyecto. Tareas Pasos Detallados
1. Crear un nuevo proyecto
1. Click en el boton “New Project”
2. Escribir el nombre del proyecto (Evita e uso de espacios o caracteres especiales)
3. En el panel Resource Model hacer click en “Edit”
4. Cambiar el formato del archivo de configuración de nodos.
Change Format: “resourceyaml”
5. Actualizar el nombre del archivo “resources”
File path: /var/Rundeck/project/${project}/etc/resources.yml
6. Elegir la opción “Generate”
7. Dejar los otros valores por defecto
8. Click en “Save”
9. Click en “Create”
2. Agregar Nodos
1. Ir a la consola de Putty y conectarse como administrador a la máquina de Rundeck
2. Editar el archivo de configuración
#sudo nano /var/rundeck/project/${project}/etc/resources.yml
3. Aumentar las siguientes lineas
Apache:
tags: ''
osFamily: unix
username: rundeck
osArch: amd64
3. -3-
A u t o r : J o e l R i c h a r d M o y a L u p e
osVersion: 2.6.32-431.5.1.el6.x86_64
description: Apache server node
nodename: 172.20.200.68
hostname: 172.20.200.68
osName: Linux Ubuntu
4. Guardar los cambios en el archivo
5. Volver a rundeck Ir a al menu “Nodes”
6. Revisar si el nodo fue agregado con la información que se puso en el archivo de configuración en el anterior paso.
7. Seleccionar el nodo Apache agregado y correr un comando ”Node Action>Run a command on 1 Node”
8. En el campo de texto Command poner algún comando Shell por ejemplo: echo “Hola Mundo”
9. Click en el botón Run on 1 node
3. Configurar acceso remoto y permisos al usuario de Rundeck
Nota: Pasos adicionales, necesarios debido a la clonación de las maquinas
1. Ir a la consola de Putty y conectarse como administrador a la máquina de Rundeck
2. Editar el archivo passwd
#sudo nano /etc/passwd
3. Verificar que el usuario rundeck tenga la línea /bin/bash
#rundeck:x:106:113:Rundeck user account:/var/lib/rundeck:/bin/bash
4. Modificar el owner a la carpeta rundeck
#cd /var/lib/
#sudo chown rundeck:rundeck rundeck
5. Loguerarse con el usuario rundeck
#su -rundeck
6. Generar llaves con el siguiente comando
#ssh-keygen
7. Dejar todos los valores por defecto y continuar
8. Llaves debería haber sido creadas en el folder /var/lib/rundeck/.ssh
9. Salir de las sesión
#exit
Nota: No se realizara estos pasos debido a que se esta compartiendo el servidor con otros usuarios y ya se los realizaron previamente.
10. En el nodo que fue agregado crear un nuevo usuario llamado Rundeck y configurar su contraseña
#sudo useradd -m -G users,root -s /bin/bash rundeck
#sudo passwd rundeck
4. -4-
A u t o r : J o e l R i c h a r d M o y a L u p e
Pwd: rundeck
11. Logearse con el usuario rundeck:
#su - rundeck
12. Crear el directorio ssh y configurar sus permisos
#mkdir .ssh && chmod 700 .ssh
13. Crear el archivo authorized_keys dentro el directorio .ssh
#vim authorized_keys
#chmod 600 .ssh/authorized_keys
14. Ir a la consola de Putty y conectarse como administrador a la máquina de Rundeck
15. Ir al directorio de las llaves (publicas/privadas)
cd /var/lib/rundeck/.ssh
16. Exportar la llave publica en el servidor de pruebas, utilizando el siguiente comando:
cat id_rsa.pub | ssh rundeck@172.20.200.68 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
17. La contraseña es P4ssw0rd
18. Ir a la máquina de pruebas 172.20.200.68 y verificar si la llave fue agregada correctamente
#sudo nano /home/rundeck/.ssh/authorized_keys
19. Volver a la consola de rundeck
20. Seleccionar el nodo Apache agregado y correr un ”Node Action>Run a command on 1 Node”
21. En el campo de texto Command poner algún comando Shell por ejemplo: echo “Hola Mundo”
22. Click en el botón “Run on 1 node”
23. El job debería correr satisfactoriamente, revisar la información relacionada con la ejecución y los logs.
4. Crear Usuarios
1. Ir a la consola de Putty y conectarse como administrador a la máquina de Rundeck
2. Ir al siguiente directorio /etc/rundeck/
#cd /etc/rundeck/
3. Editar el archivo de configuración realm.properties
#sudo nano realm.properties
4. Agregar usuario de la siguiente manera:
usuario: MD5:8efe310f9ab3efeae8d410a8e0166eb2,user
Nota: Puede generar la contraseña en MD5 en el siguiente sitio http://www.md5.cz/
5. Guardar los cambios en el archivo
6. Ir a la página de Rundeck y Ingresar con el usuario creado
5. -5-
A u t o r : J o e l R i c h a r d M o y a L u p e
Usuario:”usuario”
Contraseña:"P4ssw0rd"
7. Usuario debería tener permisos restringidos, debido a que el usuario pertenece solo al grupo de Users
Nota: para modificar el nivel de permiso puede modificar el archivo admin.aclpolicy
#nano /etc/rundeck/admin.aclpolicy
6. -6-
A u t o r : J o e l R i c h a r d M o y a L u p e
1.3 Aprendiendo a crear Jobs
Creando nuestros primero Jobs Tareas Pasos Detallados
1. Crear primer job
1. Abrir la pagina de Rundeck en el url: http://172.20.200.XX:4440/
2. Ingresar con el usuario administrador
3. Seleccionar el proyecto creado anteriormente.
4. Ir al menú jobs y hacer click en “Create a new job”
5. Llenar los siguientes campos
Job Name: PrimerJob
Description: Hola mundo
6. Click en “Add a step”
a. Selecccionar Script –Execute an inline script
b. En el editor mostrado escribir el siguiente comando
#echo “Hola mundo”
7. Guardar el step creado
8. En la opcion Nodes seleccionar “Dispatch to Nodes”
9. En Filter hacer click in Show all nodes
10. Seleccionar el servidor Apache
11. Dejar los otros valores por defecto y hacer click en Create para guardar los cambios en el Job
12. Hacer click en “Run Job Now”
2. Crear un job con parámetros
1. Abrir la pagina de Rundeck en el url: http://172.20.200.XX:4440/
2. Ingresar con el usuario administrador
3. Seleccionar el proyecto creado anteriormente.
4. Ir al menú jobs y hacer click en “Create a new job”
5. Llenar los siguientes campos
Job Name: OtherJob
Description: Job con parametros
6. Click en “Add an option”
a. Option Name: nombre
b. Description: Nombre completo
c. Default value: Joel_moya
d. Dejar otros valores por defecto
e. Note en la opcion ”Usage” que el nombre de la variable es mostrado ${option.nombre}
f. Click en save para guardar los cambio en los parametros
7. Click en “Add a step”
7. -7-
A u t o r : J o e l R i c h a r d M o y a L u p e
8. Selecccionar Script –Execute an inline script
9. En el editor mostrado escribir el siguiente comando
#mkdir /home/rundeck/@option.nombre@
10. Guardar el step creado
11. En la Opcion Nodes seleccionar Dispatch to Nodes
12. En Filter hacer click in Show all nodes
13. Seleccionar el servidor Apache
14. Dejar los otros valores por defecto y hacer click en Create para guardar los cambios en el Job
15. Hacer click en Run Job Now
3. Crear un job con manejo de errores
1. Seleccionar el job creado en el anterior paso
2. Click en el submenú “Definition”
3. Click en “Duplicate to a New Job”
4. Cambiar el “Job Name“
5. Ir al step creado en la seccion “Workflow“
6. Selecccionar el script script
7. Hacer click en el botón “+error handler”
8. Un nuevo editor será mostrado escribir los siguientes comandos
# cd /home/rundeck
#rm -rf @option.nombre@
#echo el directorio El Job ha fallado porque el folder existía, el job correrá nuevamente
9. Guardar el step creado
10. En el campo “Retry” poner un valor 1
11. Dejar los otros valores por defecto y hacer click en Create para guardar los cambios en el Job
12. Hacer click en Run Job Now
4. Ejecutar comandos en línea
1. Ir al menú “Commands“
2. En el campo de texto “Command” poner un comando Shell
#whoami
3. En la “Opcion Nodes” seleccionar “Dispatch to Nodes”
4. En “Filter” hacer click in Show all nodes
5. Seleccionar el servidor Apache
6. Click en el botón “Run on 1 node”
7. El nombre del usuario debería ser mostrado en la ejecución del server.
8. Click en “Save as a Job”
9. Guardar el nuevo job con diferente nombre
10. Click en “Create”
8. -8-
A u t o r : J o e l R i c h a r d M o y a L u p e
1.4 Integración con Jenkins
Invocando Rundeck desde Jenkins Tareas Pasos Detallados
1. Integración con Jenkins – Configurando el pluging
1. Abrir un Tab con el siguiente url: http://172.20.200.XX:8080
2. Ingresar con el usuario administrador
Usuario: admin
Contraseña: P4ssw0rd
3. Ir al menú de configuración “Jenkins>Manage Jenkins>Configure System”
4. Buscar la configuración del pluging de Jenkins y configurarlo de la siguiente manera:
URL: http://172.20.200.XX:4440
Login: admin
Password:admin
5. Buscar la configuración del plugin the Jenkins y configurarlo de la siguiente manera:
2. Creando un Job para publicar una aplicación en Apache
Rundeck
1. Crear un nuevo Job, hacer click en “Create a new job”
2. Llenar los siguientes campos
Job Name: JenkinsTriggerJob
3. Click en “Add a step”
c. Selecccionar Script –Execute an inline script
d. En el editor mostrado escribir el siguiente comando
#ssh rundeck@172.20.200.68 mkdir /var/www/html/joelmoya
#scp -rp /var/lib/jenkins/jobs/Deploy/workspace/ rundeck@172.20.200.68:/var/www/html/joelmoya
4. Guardar el step creado
5. En la opcion Nodes seleccionar “Execute locally”
6. Dejar los otros valores por defecto y hacer click en Create para guardar los cambios en el Job
Jenkins
1. En Jenkins crear un nuevo job “New Item>Freestyle project”
2. Seleccione Git en “Source Code management”
3. Repository URL:https://github.com/TiendaNube/sample-php-app.git
4. En la sección “Post-build Action” seleccione Rundeck
5. Poner el ID de un de los jobs de Rundeck
6. 99234298-cfdd-496f-b992-b165fcd34803
7. Guardar los cambios
8. Note que el Icono de Rundeck aparece en el menú de la izquierda y también se puede ver detalles del Job
9. Correr el Job en Jenkins