Instalación · 6 min read · Oct 19, 2025

Cómo instalar Ansible Semaphore en Debian 12

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

Ansible Semaphore permite el despliegue a través de Ansible desde un panel de administración web intuitivo y receptivo. Siempre puedes retroceder y restaurar la configuración y gestionar entornos, secretos, inventarios y claves de acceso. También te permite ejecutar playbooks programados 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 comenzar con esta guía, asegúrate de tener lo siguiente:

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

Instalando 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.

Primero, 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

Ingresa Y para confirmar la instalación.

install deps

Una vez que la instalación esté completa, verifica el servicio postgresql con el siguiente comando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Verás que el servicio postgresql está en ejecución.

check postgresql

Ahora verifica 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 está en ejecución.

check nginx

Por último, verifica la versión de ansible utilizando el siguiente comando. Deberías tener Ansible 2.14 instalado en tu sistema Debian.

ansible –version

check ansible version

Configurando la base de datos

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

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

sudo -u postgres psql

Ahora ejecuta las consultas a continuación para crear una nueva base de datos semaphoredb y un usuario semaphore. Ajusta la contraseña con tu información.

CREATE USER semaphore WITH PASSWORD ‘passw0rd’;
CREATE DATABASE semaphoredb OWNER semaphore;

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

\du
\l

Por último, escribe quit para salir de PostgreSQL.

list database and user

Instalando Ansible Semaphore

Ansible Semaphore proporciona paquetes para diferentes distribuciones de Linux, incluyendo 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 tagname | 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 comando dpkg a continuación:

sudo dpkg -i semaphore_${VER}_linux_amd64.deb

A continuación, puedes ver que la instalación está completa.

download semaphore

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

which semaphore

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

semaphore version
semaphore help

check semaphore

Configurando Ansible Semaphore

En esta sección, configurarás el directorio de instalación de Ansible Semaphore, integrarás Semaphore con PostgreSQL y luego configurarás el usuario administrador y la contraseña para Semaphore. Después de eso, 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. Luego, ejecuta el comando semaphore setup para configurar Ansible Semaphore.

mkdir -p /etc/semaphore; cd /etc/semaphore semaphore setup

  • Ingresa 3 para usar PostgreSQL como la base de datos.
  • Ingresa /opt/playbook para configurar el directorio de playbook predeterminado.
  • Presiona ENTER y deja la URL pública como predeterminada.
  • Presiona ENTER para usar la configuración de notificación predeterminada.
  • Ingresa 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 de Ansible Semaphore.

setup semaphore

Después de que el proceso esté completo, verás la confirmación a continuación:

create admin user

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

Inserta la configuración 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 comando systemctl a continuación para recargar el administrador de systemd y aplicar tus cambios.

sudo systemctl daemon-reload

Por último, ejecuta el siguiente comando para iniciar y habilitar el servicio semaphore. Luego, verifica el servicio para asegurarte de que esté en ejecución.

sudo systemctl enable –now semaphore
sudo systemctl status semaphore

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

semaphore service

Configurando Nginx como proxy inverso

Ahora que Semaphore está en ejecución, configurarás Nginx como un proxy inverso para tu instalación de Semaphore. Asegúrate de tener el nombre de dominio listo (nombre de dominio local o público).

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

sudo nano /etc/nginx/sites-available/semaphore.conf

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

upstream semaphore {
    server 127.0.0.1:3000;
  }

server {
    listen 80;
    server_name auto.howtoforge.local;
      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 termines.

Ahora ejecuta el siguiente comando para activar el archivo de bloque de servidor semaphore.conf y verificar la sintaxis de tu Nginx. Si tienes la sintaxis 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 a continuación para reiniciar Nginx y aplicar tus cambios.

sudo systemctl restart nginx

semaphore nginx

Asegurando Ansible Semaphore con HTTPS

Para asegurar la instalación de Ansible Semaphore, habilitarás HTTPS sobre el proxy inverso de 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 que la instalación esté completa, ejecuta el comando certbot a continuación para generar certificados SSL/TLS para tu instalación de 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.howtoforge.local

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

Iniciando sesión en Ansible Semaphore

Visita tu nombre de dominio de Semaphore, que es https://auto.howtoforge.local/. Si tu instalación fue exitosa, verás la página de inicio de sesión de Ansible Semaphore.

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

login semaphore

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

create project

Verás el panel de control de Semaphore como el siguiente:

create dashboard

Conclusión

¡Felicidades! Has completado la instalación de Ansible Semaphore en el servidor Debian 12. Has instalado Semaphore con el servidor PostgreSQL y el servidor web Nginx. También aseguraste Semaphore con HTTPS a través de certbot y Letsencrypt.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.