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.
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.
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.
Por último, comprueba la versión de ansible
utilizando el siguiente comando. Ansible 2.14 debe estar instalado en tu sistema Debian.
ansible –version
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;
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.
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.
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
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.
Una vez completado el proceso, verás la confirmación que aparece 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
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
.
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
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.
Ahora introduce el nombre de tu primer proyecto y haz clic en Siguiente para continuar.
Verás el panel de control de Semáforo como el siguiente:
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.