Search
  • benjamin1846

Instalación y primeros pasos de Rundeck en CentOS Linux

Updated: May 6

Publicado por Reinar Acuña, Community Support Engineer de Rundeck


Entender cómo funciona Rundeck no es tarea difícil la verdad, pero creo que hay muy poca información para todos aquellos que hablamos el idioma de Cervantes, así pues, espero que esta serie de entradas que iré agregando sea útil a todas aquellas personas que necesitan de esta herramienta y se defiendan poco en el lenguaje de Shakespeare.


¿Qué es Rundeck y para qué sirve?


Rundeck es una solución extremadamente potente para la automatización de tareas complejas en servidores, es un concepto englobado como Self-Service Operations que traducido en nuestro idioma significa Operaciones de Auto Servicio; con Rundeck por ejemplo, podemos automatizar cualquier tarea de manera paralela en varios servidores o bien programar una tarea que se ejecute cada cierto tiempo (localmente, en servidores remotos, de manera paralela en varios servidores o siguiendo una secuencia en servidores distintos), Rundeck esta disponible para cualquier Sistema Operativo que pueda ejecutar Java 8.


Existen dos sabores de Rundeck, Rundeck Community (protagonista de este blog) y Rundeck Enterprise; la diferencia radica en que la versión Enterprise posee un soporte técnico dedicado, manejo de flujo de trabajos avanzados (Advanced Workflow), soporte para clustering y el acceso a una serie de plugins exclusivos.


Para los más curiosos existe una imagen Docker pre-configurada y lista para ser usada; para los que prefieran el team Vagrant, también existe una imagen.


Instalando Rundeck


Este tutorial aunque es básico supongo que tienes conocimientos básicos de Linux. Rundeck esta construido bajo el framework Grails, por ende, necesitaremos instalar la máquina virtual Java; en específico la versión 1.8, para ello hacemos:


# yum install java-1.8.0

Ya con esto tenemos ya podemos instalar Rundeck con:


# rpm -Uvh https://repo.rundeck.org/latest.rpm
# yum install rundeck

Probablemente necesites decirle al cortafuegos el puerto que necesitará Rundeck para ser accedido (el 4440 por defecto):

# firewall-cmd --permanent --zone=public --add-port=4440/tcp

Reiniciamos el cortafuegos:

# firewall-cmd --reload

Ahora sí, iniciamos Rundeck (el proceso puede tardar cierto tiempo dependiendo de la potencia de tu hardware):


# systemctl start rundeckd

Puedes verificar el estatus del servicio con:


# systemctl status rundeckd

Y para que inicie cada vez que arranque el sistema hacemos:


# systemctl enable rundeckd

Al arrancar el servicio podemos acceder desde nuestro navegador web colocando el host o IP donde instalamos Rundeck hacia el puerto 4440.


http://el-host-donde-esta-rundeck:4440

De esta forma podemos visualizar la interfaz gráfica; para ingresar Rundeck incluye un usuario por defecto, este usuario es admin con contraseña igualmente admin.


Pantalla de entrada a Rundeck


Podemos probar nuestra instalación creando un nuevo proyecto muy básico que se ejecute localmente, para ello presionamos el botónNew Project +(Nuevo Proyecto).


Una vez que introducimos el usuario y contraseña ya podemos empezar a trabajar


Un proyecto puede contener una serie de Jobs (Trabajos) que están divididos en Steps (pasos). Los proyectos pueden configurarse para funcionar bajo distintos Node Excecutors (Ejecutores de Nodo) como lo son SSH, WinRM (Windows) o ejecutar playbooks Ansible entre otros; en el caso de nuestro *muy básico* ejemplo, le daremos el nombre que queramos y usaremos el Ejecutor de Nodo Local, lo que significa que nuestros Jobs se ejecutarán en la misma máquina donde tenemos Rundeck instalado.


Aquí podemos darle un nombre a nuestro proyecto


Bajando al momento de definir nuestro proyecto, lo definimos como Local y el Default Node File Copier (Copiador por Defecto del Nodo) lo dejamos en Stub, no lo necesitaremos por ahora


Al darle al botón Create (crear) nos mostrará si queremos definir de donde Rundeck tomará los nodos, existen varias opciones pero para nuestro ejemplo lo dejaremos como esta; si te fijas muestra que el primer origen dice “Local”, lo obvio es lo obvio.



Al hacer click en Save (Salvar) ya tenemos nuestro Proyecto creado; si eres observador notarás que a la izquierda tendremos un menú con todas las opciones relacionadas con nuestro proyecto. Ya es hora de crear nuestro primerJob: así que le damos click a la opción Jobs del menú de la izquierda.


Como no hemos creado ninguno, aparece la lista de Jobs en cero, si hacemos click al botónJob Actions + nos aparece un menú donde seleccionaremosNew Job (Nuevo Trabajo).


No hay jobs, todavía


Al igual como hicimos con el proyecto, le damos un nombre y tenemos la opción de darle una descripción; existen opciones más avanzadas como asignarle grupo, opciones, filtros de salida, despacharlo a nodos específicos pero apenas estamos aprendiendo a andar, así que calma 😛


Le damos nombre y una descripción a nuestro Job


Bajamos y presionamos el botón+ Add a step(Agregar un paso); podemos agregar tantos Steps como queramos; como dije antes los proyectos contienen Jobs y los Jobs contienen Steps; muy simple.


Tenemos una buena cantidad de opciones a la hora de crear nuestro Step, desde un comando simple, pasando por scripts bash hasta ejecutar play books de Ansible


Para nuestra prueba lazaremos un comando, seleccionamos en la pestañaNode Steps (Pasos de Nodo) la opción Command (Comando) e imprimimos un simple “Hello World” con el comando echo, presionamos el botón Save y ya nuestro Step esta listo, solo tenemos que bajar hasta el final y presionar el botón Save; tenemos nuestro Job preparado.


Un simple “Hello World”


Si presionas nuevamente en el menú de la izquierda notarás que nuestro Job ha sido guardado y podemos ejecutarlo si presionamos el botón con el triángulo.


Ya nuestro Job aparece en la lista de Jobs de nuestro proyecto


Rundeck nos confirmará para ejecutar elJob, para ver todo lo que sucede “en vivo” tildamos la opciónFollow Excecution (Seguir ejecución).


Ejecutamos elJob, es buena idea tildar la casillaFollow Exceution para ver lo que sucede en tiempo real


Y tendremos nuestro Job ejecutado, mediante Rundeck hemos ejecutado un simple echo y podemos ver el resultado; de igual modo podemos ir al menú Activity (Actividad) y ver todas las ejecuciones de nuestroJob, nada mal.


Que maravilla, nuestro primer Job; ahora imagina las posibilidades


Y esto es todo por hoy, ahora que sabemos cómo instalar Rundeck, tendremos que entender su estructura interna (componentes y archivos de configuración) también aprenderemos hacerlo funcionar correctamente en una base de datos “seria” porque por defecto funciona bajo una base de datos llamada H2 que no se recomienda para entornos de producción, sólo para hacer pruebas; como la de hoy.


Mientras tanto aprovecha las calcomanías gratis que no está nada mal.

46 views

Santiago, Chile

©2020 by Variacode.

  • Icono social LinkedIn