Cómo instalar y configurar GoCD en CentOS 7

GoCD es un sistema de automatización y entrega continua de código abierto. Le permite modelar flujos de trabajo complejos utilizando su ejecución paralela y secuencial. Su mapa de flujo de valor le permite visualizar fácilmente un flujo de trabajo complejo con facilidad. GoCD le permite comparar fácilmente dos compilaciones e implementar cualquier versión de la aplicación que desee. El ecosistema GoCD consta de un servidor GoCD y un agente GoCD. GoCD es responsable de controlar todo, como ejecutar la interfaz de usuario basada en la web y administrar y proporcionar trabajos al agente. Los agentes de Go son responsables de ejecutar los trabajos y las implementaciones.

Prerrequisitos

  • Una instancia de servidor Vultr CentOS 7 con al menos 1 GB de RAM.
  • Un usuario de sudo .
  • Un nombre de dominio apuntado hacia el servidor.

Para este tutorial, lo utilizaremos 192.168.1.1como la dirección IP pública y gocd.example.comcomo el nombre de dominio que apunta hacia la instancia de Vultr. Asegúrese de reemplazar todas las apariciones del nombre de dominio de ejemplo y la dirección IP con la actual.

Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar Java.

Instalar Java

GoCD requiere la versión 8 de Java y es compatible con Oracle Java y OpenJDK. En este tutorial, instalaremos Java 8 desde OpenJDK.

OpenJDK se puede instalar fácilmente, ya que el paquete está disponible en el YUMrepositorio predeterminado .

sudo yum -y install java-1.8.0-openjdk-devel

Si Java está instalado correctamente, podrá verificar su versión.

java -version

Obtendrá un resultado similar al siguiente texto.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Antes de que podamos seguir adelante, tendremos que configurar los JAVA_HOMEy las JRE_HOMEvariables de entorno. Encuentre la ruta absoluta del ejecutable Java en su sistema.

readlink -f $(which java)

El siguiente texto se enviará a su terminal.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java

Ahora, configure las variables de entorno JAVA_HOMEy de JRE_HOMEacuerdo con la ruta del directorio Java.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Nota: Asegúrese de utilizar la ruta de Java obtenida en su sistema. La ruta utilizada en este tutorial puede cambiar cuando se lanza una nueva versión de Java 8.

Ejecuta el bash_profilearchivo.

source ~/.bash_profile

Ahora puede ejecutar el echo $JAVA_HOMEcomando para asegurarse de que la variable de entorno esté configurada.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Instalar GoCD

GoCD está escrito en Java, por lo tanto, Java es la única dependencia para ejecutar GoCD. GoCD se puede instalar con la ayuda de YUM. Instale su repositorio oficial en el sistema.

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

Instale el servidor GoCD en su sistema.

sudo yum install -y go-server

Inicie GoCD y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start go-server
sudo systemctl enable go-server

Antes de acceder al panel de GoCD, creemos un nuevo directorio para almacenar los artefactos. Los artefactos se pueden almacenar en el mismo disco en el que están instalados el sistema operativo y las aplicaciones. Alternativamente, puede usar un disco dedicado o una unidad de almacenamiento en bloque para almacenar los artefactos.

Si desea utilizar el mismo disco para almacenar los artefactos, simplemente cree un nuevo directorio y proporcione la propiedad al usuario de GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Configurar almacenamiento en bloque

El software GoCD recomienda usar una partición o unidad adicional para almacenar los artefactos. En una plataforma de integración y entrega continua, los artefactos se generan con mucha frecuencia. El espacio en disco disminuye con el tiempo cuando se generan continuamente nuevos artefactos. En algún momento, su sistema se quedará sin espacio libre en disco y los servicios que se ejecutan en su sistema fallarán. Para superar este problema, puede adjuntar una nueva unidad de almacenamiento de bloques Vultr para almacenar los artefactos. Si aún desea continuar con el almacenamiento de artefactos en la misma unidad, vaya a la sección "Configuración del firewall".

Implemente una nueva unidad de almacenamiento en bloque y conéctela a su instancia de servidor GoCD. Ahora cree una nueva partición en el dispositivo de almacenamiento en bloque.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Cree el sistema de archivos en el nuevo disco.

sudo mkfs.ext4 /dev/vdb1

Monte la unidad de almacenamiento en bloque.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

Ahora, ejecute df, y verá la nueva unidad de almacenamiento en bloque montada /mnt/artifacts.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

Proporcione la propiedad del directorio al usuario de GoCD.

sudo chown -R go:go /mnt/artifacts

Configurar firewall

Cambie la configuración del firewall para permitir puertos 8153y a 8154través del firewall. El puerto 8153escucha las conexiones no seguras y el puerto las 8154conexiones seguras.

sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload

Ahora puede acceder al panel de GoCD activado http://192.168.1.1:8153. Para acceder al panel de GoCD en una conexión segura, acceda https://192.168.1.1:8154. Recibirá algún error que muestra que los certificados no son válidos. Puede ignorar el error de forma segura ya que los certificados son autofirmados. Por razones de seguridad, siempre debe usar el tablero sobre una conexión segura.

Antes de configurar una nueva tubería, navegue hasta " Admin >> Server Configuration" desde la barra de navegación superior.

Ingrese la URL a su sitio no Site URLseguro en el campo " " y sitio seguro en el Secure Site URLcampo " ".

Cómo instalar y configurar GoCD en CentOS 7

A continuación, proporcione los detalles de su servidor SMTP para enviar notificaciones por correo electrónico desde GoCD.

Cómo instalar y configurar GoCD en CentOS 7

Finalmente, proporcione la ruta a la ubicación donde desea almacenar los artefactos. Si ha elegido almacenar los artefactos en el mismo disco que el sistema operativo, ingrese /opt/artifacts; Si ha elegido conectar una unidad de almacenamiento en bloque, puede ingresar /mnt/artifacts.

Además, puede configurar GoCD para eliminar automáticamente los artefactos antiguos. Configure la siguiente opción según el tamaño de su disco. Sin embargo, la opción de eliminación automática no realiza una copia de seguridad de sus artefactos antiguos. Para realizar una copia de seguridad manualmente y luego eliminar los artefactos antiguos, desactive la eliminación automática seleccionando la Neveropción " " para la Auto delete old artifactsopción " ".

Cómo instalar y configurar GoCD en CentOS 7

Deberá reiniciar el servidor GoCD para que se apliquen los nuevos cambios.

sudo systemctl restart go-server

Configurar autenticación

De manera predeterminada, el panel de GoCD no está configurado para usar ningún tipo de autenticación, pero admite la autenticación mediante un archivo de contraseña y LDAP. En este tutorial, configuraremos la autenticación basada en contraseña.

Nota : La configuración de la autenticación es un paso opcional, pero se recomienda encarecidamente para los servidores públicos, como Vultr.

Instale las herramientas de Apache para que podamos usar el htpasswdcomando para crear un archivo de contraseña cifrado.

sudo yum -y install httpd-tools

Cree un archivo de contraseña con el htpasswdcomando utilizando el cifrado Bcrypt.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Proporcione la contraseña para el usuario dos veces. Verá el siguiente resultado.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Puede agregar tantos usuarios como desee utilizando el mismo comando anterior, pero eliminando la -copción. La -copción reemplazará el archivo existente, reemplazando a los usuarios antiguos con el nuevo usuario.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Desde entonces, hemos creado el archivo de contraseña, acceda nuevamente al panel de GoCD. Navegue a " Admin >> Security >> Authorization Configurations" desde la barra de navegación superior. Haga clic en el Addbotón y proporcione una identificación. Elija " Password File Authentication Plugin for GoCD" para la ID del complemento y dirija la ruta al archivo de contraseña. Ahora haga clic en el Check Connectionbotón " " para verificar que GoCD pueda usar el archivo de contraseña para la autenticación.

Cómo instalar y configurar GoCD en CentOS 7

Finalmente, guarde el método de autenticación. Vuelva a cargar el tablero y se cerrará automáticamente. Verá una pantalla de inicio de sesión ahora. Inicie sesión con las credenciales creadas anteriormente.

Deberá promocionar al usuario administrador manualmente, de lo contrario, todos los usuarios tendrán privilegios de administrador. Navegue a " Admin >> User Summary" desde la barra de navegación superior.

Ahora seleccione el usuario administrador que ha creado y haga clic en el Rolesmenú desplegable " ". Promocione al usuario al único administrador seleccionando la Go System Administratorcasilla de verificación " ".

Cómo instalar y configurar GoCD en CentOS 7

Para agregar los usuarios en GoCD creados en el archivo de contraseña, haga clic en el ADDbotón " " y busque el usuario para agregarlos. Los usuarios también se agregan automáticamente al panel de GoCD en su primer inicio de sesión. Obviamente, para que los usuarios inicien sesión, deben agregarse al archivo de contraseña que hemos creado anteriormente.

Asegurando GoCD con Let's Encrypt SSL

Por defecto, GoCD escucha puertos 8153y 8154conexiones seguras. Aunque el puerto 8154proporciona una conexión segura a la aplicación, también muestra errores del navegador, ya que utiliza un certificado autofirmado. En esta sección del tutorial, instalaremos y aseguraremos Nginx con el certificado SSL gratuito Let's Encrypt. El servidor web Nginx funcionará como un proxy inverso para reenviar las solicitudes entrantes al punto HTTPfinal de GoCD .

Instala Nginx.

sudo yum -y install nginx

Inicie Nginx y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start nginx
sudo systemctl enable nginx

Instale Certbot, que es la aplicación cliente para Let's Encrypt CA.

sudo yum -y install certbot

Antes de que pueda solicitar certificados, deberá permitir puertos 80y 443/ o estándares HTTPy HTTPSservicios, a través del firewall. Además, elimine el puerto 8153, que escucha las conexiones no seguras.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload

Nota : Para obtener certificados de Let's Encrypt CA, el dominio para el que se generarán los certificados debe apuntar hacia el servidor. De lo contrario, realice los cambios necesarios en los registros DNS del dominio y espere a que se propague el DNS antes de volver a solicitar el certificado. Certbot verifica la autoridad del dominio antes de proporcionar los certificados.

Generar los certificados SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d gocd.example.com

Es probable que los certificados generados se almacenen en /etc/letsencrypt/live/gocd.example.com/. El certificado SSL se almacenará como fullchain.pemy la clave privada se almacenará como privkey.pem.

Encriptemos los certificados caducan en 90 días, por lo que se recomienda configurar la renovación automática de los certificados mediante trabajos cron.

Abra el archivo de trabajo cron.

sudo crontab -e

Agregue la siguiente línea al final del archivo.

30 5 * * * /usr/bin/certbot renew --quiet

El trabajo cron anterior se ejecutará todos los días a las 5:30 a.m. Si el certificado vence, se renovará automáticamente.

Ahora, cambie el archivo de configuración predeterminado de Nginx para eliminar la default_serverlínea.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

Cree un nuevo archivo de configuración para la interfaz web GoCD.

sudo nano /etc/nginx/conf.d/gocd.conf

Rellene el archivo.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80 default_server;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

Verifique si hay errores en el nuevo archivo de configuración.

sudo nginx -t

Si ve el siguiente resultado, la configuración está libre de errores.

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si ha recibido algún tipo de error, asegúrese de verificar la ruta a los certificados SSL. Reinicie el servidor web Nginx para implementar el cambio en la configuración.

sudo systemctl restart nginx

Ahora puede acceder al panel de GoCD en https://gocd.example.com. Inicie sesión en su tablero con las credenciales de administrador y navegue hasta " Admin >> Server Configuration" desde la barra de navegación superior.

Cómo instalar y configurar GoCD en CentOS 7

Establezca " Site URL" y " Secure Site URL" en https://gocd.example.com. El puerto 8154aún debe ser accesible a través del firewall para que los agentes remotos puedan conectarse al servidor a través del puerto 8154, en caso de que no puedan conectarse a través del HTTPpuerto estándar .

Instalación de GoCD Agent

En el entorno de integración continua de GoCD, los agentes de GoCD son los trabajadores responsables de la ejecución de todas las tareas. Cuando se detecta un cambio en la fuente, se activa la canalización y los trabajos se asignan a los trabajadores disponibles para su ejecución. El agente ejecuta la tarea e informa el estado final después de la ejecución.

Para ejecutar una canalización, se debe configurar al menos un agente. Proceda a instalar el agente GoCD en el servidor GoCD.

Como ya hemos importado el repositorio GoCD en el servidor, podemos instalar directamente Go Agent.

sudo yum install -y go-agent

Ahora, inicie el servidor GoCD y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start go-agent
sudo systemctl enable go-agent

El agente GoCD que se ejecuta en el host local se habilita automáticamente cuando se detecta.



Leave a Comment

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.