wulf-ansible/README.md
2026-07-22 12:12:49 +00:00

1.4 KiB

wulf-ansible

Ansible playbooks used by Semaphore for Wulf infrastructure automation.

Collection requirements

Install required Ansible collections before running playbooks locally or in a new Semaphore worker environment:

ansible-galaxy collection install -r collections/requirements.yml

Currently required collections:

  • community.docker
  • community.general
  • ansible.posix

Docker baseline

Semaphore template: Docker Baseline

Playbook:

ansible-playbook playbooks/docker.yml

The Docker role:

  • supports Debian/Ubuntu apt-based hosts,
  • removes conflicting distro/container packages,
  • configures Docker's official apt repository,
  • installs Docker Engine, Buildx, and Compose V2 plugin,
  • configures Docker daemon log rotation and live-restore,
  • enables Docker,
  • adds the target Ansible user to the docker group,
  • creates /opt/stacks,
  • enables IPv4 forwarding,
  • optionally disables IPv6,
  • creates shared Docker networks such as pangolin,
  • verifies docker --version and docker compose version.

Docker role variables

docker_package_state: present       # set to latest when intentionally upgrading Docker packages
docker_stacks_dir: /opt/stacks
docker_networks:
  - pangolin
docker_disable_ipv6: false
docker_run_hello_world: false       # optional runtime pull/run verification

To run a full runtime verification during provisioning:

docker_run_hello_world: true