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.

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.

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.

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

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.

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.

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

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
3para usar PostgreSQL como la base de datos. - Ingresa
/opt/playbookpara 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.

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

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

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

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.

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

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

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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.