Cómo instalar Ansible Semaphore en Debian 12

Ansible Semaphore es una interfaz web de código abierto para los playbooks de Ansible. Permite el despliegue mediante la automatización de Ansible a través de un navegador web. Ansible Semaphore está escrito exclusivamente en Go. Puede ejecutarse en Linux, Windows y macOS.

Ansible Semaphore permite el despliegue mediante Ansible desde un panel de administración web intuitivo y sensible. Siempre puedes revertir y restaurar la configuración y gestionar entornos, secretos, inventarios y claves de acceso. También te permite ejecutar playbooks mediante programación con registros detallados y notificaciones.

En esta guía, te guiaremos a través de la instalación de Ansible Semaphore en el servidor Debian 12. Instalarás Semaphore con PostgreSQL como base de datos y Nginx como proxy inverso.

Requisitos previos

Para empezar con esta guía, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador.

Instalación de dependencias

Para instalar Ansible Semaphore, debes instalar dependencias como Ansible, PostgreSQL y Nginx en tu sistema. Utilizarás PostgreSQL como base de datos y Nginx como proxy inverso.

En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian e instalar dependencias, como ansible, la base de datos postgresql y el servidor web nginx.

sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx

Introduce Y para confirmar la instalación.

instalar deps

Una vez finalizada la instalación, comprueba el servicio postgresql con el siguiente comando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Verás que el servicio postgresql se está ejecutando.

comprobar postgresql

Ahora comprueba el estado del servicio nginx con lo siguiente:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

A continuación, puedes ver que el servidor web nginx se está ejecutando.

comprobar nginx

Por último, comprueba la versión de ansible utilizando el siguiente comando. Ansible 2.14 debe estar instalado en tu sistema Debian.

ansible –version

comprobar la versión de ansible

Configurar la base de datos

Ahora que has instalado las dependencias, configurarás PostgreSQL y crearás una nueva base de datos y un nuevo usuario que utilizará Ansible Semaphore.

Inicia sesión en el servidor PostgreSQL con el siguiente comando:

sudo -u postgres psql

Ahora ejecuta las siguientes consultas para crear una nueva base de datos semaphoredb y el usuario semaphore. Ajusta la contraseña con tus datos.

CREAR USUARIO semáforo CON CONTRASEÑA ‘passw0rd’;
CREAR BASE DE DATOS semáforob PROPIETARIO semáforo;

crear base de datos y usuario

A continuación, ejecuta las siguientes consultas para verificar la lista de bases de datos y usuarios en PostgreSQL. Verás que el nuevo usuario semaphore y la base de datos semaphoredb están disponibles.

\du
\l

Por último, escribe quit para salir del PostgreSQL.

listar base de datos y usuario

Instalar Ansible Semaphore

Ansible Semaphore proporciona paquetes para distintas distribuciones de Linux, incluida Debian/Ubuntu. Puedes descargar el archivo DEB de Ansible Semaphore e instalarlo con el comando dpkg.

Descarga el paquete debian de Ansible Semaphore con el siguiente comando:

VER=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest|grep nombre_etiqueta | cut -d ‘»‘ -f 4|sed ‘s/v//g’)
wget -q https://github.com/semaphoreui/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.deb

Una vez descargado, instala Ansible Semaphore con el siguiente comando dpkg:

sudo dpkg -i semáforo_${VER}_linux_amd64.deb

A continuación puedes ver que la instalación se ha completado.

descargar semáforo

Ahora ejecuta el siguiente comando para localizar el binario semaphore, y debería estar disponible en /usr/bin/semaphore.

qué semáforo

Comprueba la versión de Ansible Semaphore con el siguiente comando. Verás que Ansible Semaphore 2.9 está instalado.

semáforo versión
semáforo ayuda

comprobar semáforo

Configurar Ansible Semaphore

En esta sección, configurarás el directorio de instalación de Ansible Semaphore, integrarás Semaphore con PostgreSQL y, a continuación, establecerás el usuario y la contraseña de administrador para Semaphore. Después, también ejecutarás Semaphore en segundo plano como un servicio systemd.

Crea un nuevo directorio de configuración /etc/semaphore y entra en él. A continuación, ejecuta el comando semaphore setup para configurar Ansible Semaphore.

mkdir -p /etc/semaphore; cd /etc/semaphore configuración de semáforo

  • Introduce 3 para utilizar PostgreSQL como base de datos.
  • Introduce /opt/playbook para establecer el directorio por defecto del libro de jugadas.
  • Pulsa ENTER y deja la URL pública por defecto.
  • Pulsa ENTER para utilizar la configuración de notificaciones por defecto.
  • Introduce tu nombre de usuario, contraseña y dirección de correo electrónico de administrador. Esto se utilizará para iniciar sesión en la aplicación web Ansible Semaphore.

configuración del semáforo

Una vez completado el proceso, verás la confirmación que aparece a continuación:

crear usuario administrador

Ahora que has configurado Ansible Semaphore, crearás un nuevo servicio systemd y ejecutarás Ansible Semaphore en segundo plano.

Crea un nuevo archivo de servicio systemd /etc/systemd/system/semaphore.service con el editor nano.

sudo nano /etc/systemd/system/semaphore.service

Introduce la configuración que aparece a continuación.

[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore service --config=/etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal del editor.

A continuación, ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar tus cambios.

sudo systemctl daemon-reload

Por último, ejecuta el siguiente comando para iniciar y habilitar el servicio semaphore. A continuación, comprueba que el servicio se está ejecutando.

sudo systemctl enable --now semáforo
sudo systemctl status semáforo

Puedes ver a continuación que el servicio semaphore está en ejecución. Y por defecto, se está ejecutando en el puerto 3000.

servicio semáforo

Configurar Nginx como proxy inverso

Ahora que Semaphore se está ejecutando, vas a configurar Nginx como inverso para tu instalación de Semaphore. Asegúrate de que tienes listo el nombre de dominio (nombre de dominio local o público).

Crea una nueva configuración del bloque del servidor /etc/nginx/sites-available/semaphore.conf con el editor nano.

sudo nano /etc/nginx/sitios-disponibles/semaphore.conf

Inserta la siguiente configuración para configurar Nginx como proxy inverso para Ansible Semaphore que se ejecuta en el puerto 3000. Asegúrate de cambiar la opción server_name por el nombre de tu dominio.

upstream semaphore {
    server 127.0.0.1:3000;
  }

server {
    listen 80;
    server_name auto.hwdomain.io;
      client_max_body_size 0;
      chunked_transfer_encoding on;

    location / {
      proxy_pass http://semaphore/;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
      proxy_set_header X-Forwarded-Proto $scheme;

      proxy_buffering off;
      proxy_request_buffering off;
    }

    location /api/ws {
      proxy_pass http://semaphore/api/ws;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Origin "";
    }
}

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando para activar el archivo de bloque del servidor semaphore.conf y verifica la sintaxis de tu Nginx. Si la sintaxis es correcta, verás una salida test is successful - syntax is ok.

sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t

Por último, ejecuta el siguiente comando systemctl para reiniciar Nginx y aplicar tus cambios.

sudo systemctl restart nginx

semáforo nginx

Asegurar Ansible Semaphore con HTTPS

Para asegurar la instalación de Ansible Semaphore, habilitarás HTTPS sobre el proxy inverso Nginx. Utilizarás Certbot para generar y configurar HTTPS para Semaphore.

Instala los paquetes certbot y python3-certbot-nginx con el siguiente comando:

sudo apt install certbot python3-certbot-nginx -y

Una vez completada la instalación, ejecuta el siguiente comando certbot para generar certificados SSL/TLS para tu instalación Ansible Semaphore. Asegúrate de cambiar el dominio y la dirección de correo electrónico con tu información.

sudo certbot –nginx –agree-tos –no-eff-email –redirect –email [email protected] -d auto.hwdomain.io

Una vez completado el proceso, tus certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/domain.com y tu instalación Semaphore estará asegurada con HTTPS.

Iniciar sesión en Ansible Semaphore

Visita tu dominio Semaphore, que es https://auto.hwdomain.io/. Si la instalación se ha realizado correctamente, verás la página de inicio de sesión de Ansible Semaphore.

Introduce tu usuario y contraseña de administrador, y haz clic en INICIAR SESIÓN para confirmar.

semáforo de acceso

Ahora introduce el nombre de tu primer proyecto y haz clic en Siguiente para continuar.

crear proyecto

Verás el panel de control de Semáforo como el siguiente:

crear cuadro de mando

Conclusión

¡Enhorabuena! Has completado la instalación de Ansible Semaphore en el servidor Debian 12. Has instalado Semáforo con el servidor PostgreSQL y el servidor web Nginx. También has asegurado Semáforo con HTTPS a través de certbot y Letsencrypt.

También te podría gustar...