Ansible

Link to GitHub or Website

Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality

Ansible Semaphore is a modern UI for Ansible. It lets you easily run Ansible playbooks, get notifications about fails, control access to deployment system.

docker-compose.yml
---
volumes:
  inventory:
  authorized-keys:
  config:
  mysql:
  
services:
  mysql:
    image: mysql:8.0
    hostname: mysql
    volumes:
      - mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_DATABASE=semaphore
      - MYSQL_USER=semaphore
      - MYSQL_PASSWORD=$DB_PW  # change!
    restart: unless-stopped
  semaphore:
    container_name: ansiblesemaphore
    image: semaphoreui/semaphore:v2.8.92
    ports:
      - $PORT:3000
    environment:
      - SEMAPHORE_DB_USER=semaphore
      - SEMAPHORE_DB_PASS=$DB_PW  # change!
      - SEMAPHORE_DB_HOST=mysql
      - SEMAPHORE_DB_PORT=3306
      - SEMAPHORE_DB_DIALECT=mysql
      - SEMAPHORE_DB=semaphore
      - SEMAPHORE_PLAYBOOK_PATH=/tmp/semaphore/
      - SEMAPHORE_ADMIN_PASSWORD=$ADMIN_UN  # change!
      - SEMAPHORE_ADMIN_NAME=$ADMIN_UN
      - SEMAPHORE_ADMIN_EMAIL=ADMIN_EMAIL
      - SEMAPHORE_ADMIN=$ADMIN_UN
      - SEMAPHORE_ACCESS_KEY_ENCRYPTION=$ENCRYPTIONKEY  # add to your access key encryption !
      - ANSIBLE_HOST_KEY_CHECKING=false  # (optional) change to true if you want to enable host key checking
    volumes:
      - inventory:/inventory:ro
      - authorized-keys:/authorized-keys:ro
      - config:/etc/semaphore:rw
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    restart: unless-stopped
    depends_on:
      - mysql

Last updated

Was this helpful?