Instalação Ansible · 6 min read · Oct 19, 2025

Como Instalar o Ansible Semaphore no Debian 12

Ansible Semaphore é uma interface web de código aberto para playbooks do Ansible. Ele permite a implantação usando automação do Ansible via um navegador web. O Ansible Semaphore é escrito puramente em Go. Ele pode ser executado em Linux, Windows e macOS.

O Ansible Semaphore permite a implantação via Ansible a partir de um painel de administração web intuitivo e responsivo. Você pode sempre reverter e restaurar a configuração e gerenciar ambientes, segredos, inventários e chaves de acesso. Ele também permite que você execute playbooks por agendamento com logs detalhados e notificações.

Neste guia, vamos orientá-lo na instalação do Ansible Semaphore no servidor Debian 12. Você instalará o Semaphore com PostgreSQL como banco de dados e Nginx como proxy reverso.

Pré-requisitos

Para começar com este guia, certifique-se de ter o seguinte:

  • Um servidor Debian 12.
  • Um usuário não-root com privilégios de administrador.

Instalando dependências

Para instalar o Ansible Semaphore, você deve instalar dependências como Ansible, PostgreSQL e Nginx em seu sistema. Você usará o PostgreSQL como banco de dados e o Nginx como proxy reverso.

Primeiro, execute o comando abaixo para atualizar o índice de pacotes do Debian e instalar dependências, como o ansible, o banco de dados postgresql e o servidor web nginx.

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

Digite Y para confirmar a instalação.

install deps

Após a instalação ser concluída, verifique o serviço postgresql com o comando abaixo.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Você verá que o serviço postgresql está em execução.

check postgresql

Agora verifique o status do serviço nginx com o seguinte:

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

A seguir, você pode ver que o servidor web nginx está em execução.

check nginx

Por fim, verifique a versão do ansible usando o comando abaixo. O Ansible 2.14 deve estar instalado em seu sistema Debian.

ansible --version

check ansible version

Configurando o banco de dados

Agora que você instalou as dependências, você configurará o PostgreSQL e criará um novo banco de dados e usuário que o Ansible Semaphore usará.

Faça login no servidor PostgreSQL com o seguinte comando:

sudo -u postgres psql

Agora execute as consultas abaixo para criar um novo banco de dados semaphoredb e usuário semaphore. Ajuste a senha com suas informações.

CREATE USER semaphore WITH PASSWORD 'passw0rd';  
CREATE DATABASE semaphoredb OWNER semaphore;

Em seguida, execute as seguintes consultas para verificar a lista de bancos de dados e usuários no PostgreSQL. Você verá que um novo usuário semaphore e o banco de dados semaphoredb estão disponíveis.


du  

l

Por fim, digite quit para sair do PostgreSQL.

list database and user

Instalando o Ansible Semaphore

O Ansible Semaphore fornece pacotes para diferentes distribuições Linux, incluindo Debian/Ubuntu. Você pode baixar o arquivo DEB do Ansible Semaphore e instalá-lo com o comando dpkg.

Baixe o pacote debian do Ansible Semaphore com o seguinte comando:

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

Uma vez baixado, instale o Ansible Semaphore com o comando dpkg abaixo:

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

Abaixo você pode ver que a instalação está completa.

download semaphore

Agora execute o comando abaixo para localizar o binário semaphore, que deve estar disponível em /usr/bin/semaphore.

which semaphore

Verifique a versão do Ansible Semaphore com o seguinte comando. Você verá que o Ansible Semaphore 2.9 está instalado.

semaphore version  
semaphore help

check semaphore

Configurando o Ansible Semaphore

Nesta seção, você configurará o diretório de instalação do Ansible Semaphore, integrará o Semaphore com o PostgreSQL e, em seguida, configurará o usuário e a senha de administrador para o Semaphore. Depois disso, você também executará o Semaphore em segundo plano como um serviço systemd.

Crie um novo diretório de configuração /etc/semaphore e entre nele. Em seguida, execute o comando semaphore setup para configurar o Ansible Semaphore.

mkdir -p /etc/semaphore; cd /etc/semaphore  
semaphore setup
  • Digite 3 para usar o PostgreSQL como banco de dados.
  • Digite /opt/playbook para configurar o diretório de playbook padrão.
  • Pressione ENTER e deixe a URL pública como padrão.
  • Pressione ENTER para usar as configurações de notificação padrão.
  • Digite seu nome de usuário, senha e endereço de e-mail de administrador. Isso será usado para fazer login na aplicação web Ansible Semaphore.

setup semaphore

Após o processo ser concluído, você verá a confirmação abaixo:

create admin user

Agora que você configurou o Ansible Semaphore, você criará um novo serviço systemd e executará o Ansible Semaphore em segundo plano.

Crie um novo arquivo de serviço systemd /etc/systemd/system/semaphore.service com o editor nano.

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

Insira a configuração abaixo.

[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

Salve o arquivo e saia do editor.

Em seguida, execute o comando systemctl abaixo para recarregar o gerenciador systemd e aplicar suas alterações.

sudo systemctl daemon-reload

Por fim, execute o comando abaixo para iniciar e habilitar o serviço semaphore. E então, verifique o serviço para garantir que está em execução.

sudo systemctl enable --now semaphore  
sudo systemctl status semaphore

Você pode ver abaixo que o serviço semaphore está em execução. E por padrão, ele está rodando na porta 3000.

semaphore service

Configurando o Nginx como proxy reverso

Agora que o Semaphore está em execução, você configurará o Nginx como um reverso para sua instalação do Semaphore. Certifique-se de ter o nome de domínio pronto (nome de domínio local ou público).

Crie uma nova configuração de bloco de servidor /etc/nginx/sites-available/semaphore.conf com o editor nano.

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

Insira a seguinte configuração para configurar o Nginx como um proxy reverso para o Ansible Semaphore que está rodando na porta 3000. Certifique-se de alterar a opção server_name com seu nome de domínio.

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 "";
    }
}

Salve o arquivo e saia do editor quando terminar.

Agora execute o comando abaixo para ativar o arquivo de bloco de servidor semaphore.conf e verificar sua sintaxe do Nginx. Se você tiver a sintaxe correta, verá uma saída test is successful - syntax is ok.

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

Por fim, execute o seguinte comando systemctl abaixo para reiniciar o Nginx e aplicar suas alterações.

sudo systemctl restart nginx

semaphore nginx

Protegendo o Ansible Semaphore com HTTPS

Para proteger a instalação do Ansible Semaphore, você habilitará o HTTPS em cima do proxy reverso Nginx. Você usará o Certbot para gerar e configurar HTTPS para o Semaphore.

Instale os pacotes certbot e python3-certbot-nginx com o seguinte comando:

sudo apt install certbot python3-certbot-nginx -y

Após a instalação ser concluída, execute o comando certbot abaixo para gerar certificados SSL/TLS para sua instalação do Ansible Semaphore. Certifique-se de alterar o domínio e o endereço de e-mail com suas informações.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [email protected] -d auto.howtoforge.local

Uma vez que o processo esteja completo, seus certificados SSL estarão disponíveis no diretório /etc/letsencrypt/live/domain.com e sua instalação do Semaphore estará protegida com HTTPS.

Fazendo login no Ansible Semaphore

Visite seu nome de domínio do Semaphore, que é https://auto.howtoforge.local/. Se sua instalação for bem-sucedida, você verá a página de login do Ansible Semaphore.

Digite seu usuário e senha de administrador e clique em SIGN IN para confirmar.

login semaphore

Agora digite o nome do seu primeiro projeto e clique em Next para continuar.

create project

Você verá o painel do Semaphore como o seguinte:

create dashboard

Conclusão

Parabéns! Você completou a instalação do Ansible Semaphore no servidor Debian 12. Você instalou o Semaphore com o servidor PostgreSQL e o servidor web Nginx. Você também protegeu o Semaphore com HTTPS através do certbot e Letsencrypt.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.