No description
| collections | ||
| inventories | ||
| inventory | ||
| playbooks | ||
| roles | ||
| ansible.cfg | ||
| README.md | ||
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.dockercommunity.generalansible.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
dockergroup, - creates
/opt/stacks, - enables IPv4 forwarding,
- optionally disables IPv6,
- creates shared Docker networks such as
pangolin, - verifies
docker --versionanddocker 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