Introdução

O Ansible Semaphore é uma interface web open source e leve para gerenciamento de playbooks Ansible, oferecendo controle de acesso, histórico de execuções, agendamento de tarefas e integração com repositórios Git. É uma alternativa mais simples ao AWX/Tower, ideal para equipes de TI industrial que precisam de uma camada visual sobre a automação sem a complexidade operacional de uma stack Kubernetes. Neste tutorial, vamos instalar o Semaphore no Ubuntu Linux utilizando Docker, a forma mais rápida e recomendada de colocá-lo em produção.

Pré-requisitos

Instalando o Docker (caso ainda não tenha)

sudo apt update
sudo apt install ca-certificates curl gnupg -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

Passo 1: Preparando o ambiente

Crie um diretório dedicado para os dados persistentes do Semaphore:

mkdir -p ~/semaphore/mysql ~/semaphore/data
cd ~/semaphore

Passo 2: Criando o docker-compose.yml

O Semaphore requer um banco de dados (MySQL, PostgreSQL ou BoltDB). O exemplo abaixo usa MySQL:

version: "3"
services:
  mysql:
    image: mysql:8.0
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: senha_root_segura
      MYSQL_DATABASE: semaphore
      MYSQL_USER: semaphore
      MYSQL_PASSWORD: senha_semaphore_segura
    volumes:
      - ./mysql:/var/lib/mysql

  semaphore:
    image: semaphoreui/semaphore:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      SEMAPHORE_DB_USER: semaphore
      SEMAPHORE_DB_PASS: senha_semaphore_segura
      SEMAPHORE_DB_HOST: mysql
      SEMAPHORE_DB_PORT: 3306
      SEMAPHORE_DB: semaphore
      SEMAPHORE_DB_DIALECT: mysql
      SEMAPHORE_ADMIN: admin
      SEMAPHORE_ADMIN_PASSWORD: senha_admin_segura
      SEMAPHORE_ADMIN_NAME: Administrador
      SEMAPHORE_ADMIN_EMAIL: [email protected]
    depends_on:
      - mysql

Passo 3: Subindo os containers

sudo docker compose up -d

Verifique se os containers estão rodando corretamente:

sudo docker compose ps
sudo docker compose logs -f semaphore

Passo 4: Acessando a interface web

Abra o navegador e acesse:

http://<IP_DO_SERVIDOR>:3000

Faça login com o usuário e senha definidos nas variáveis SEMAPHORE_ADMIN e SEMAPHORE_ADMIN_PASSWORD.

Passo 5: Configurando seu primeiro projeto

  1. No painel, clique em New Project e dê um nome, por exemplo, "Automacao Chao de Fabrica".
  2. Em Key Store, cadastre a chave SSH privada usada para acessar os hosts gerenciados.
  3. Em Repositories, aponte para o repositório Git onde seus playbooks estão versionados.
  4. Em Inventory, cole ou importe seu arquivo hosts.ini.
  5. Em Templates, crie uma nova task apontando para o playbook desejado, por exemplo site.yml.

Boas práticas

ansiblesemaphoredockerubuntuautomacao
← Voltar para o blog