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

59 lines
1.4 KiB
Markdown

# 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:
```bash
ansible-galaxy collection install -r collections/requirements.yml
```
Currently required collections:
- `community.docker`
- `community.general`
- `ansible.posix`
## Docker baseline
Semaphore template: **Docker Baseline**
Playbook:
```bash
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
```yaml
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:
```yaml
docker_run_hello_world: true
```