new-site/infra/ansible/roles/docker/tasks/main.yml
justin f8cd37ac8c Initial commit — Performance West telecom compliance platform
Includes: API (Express/TypeScript), Astro site, Python workers,
document generators, FCC compliance tools, Canada CRTC formation,
Ansible infrastructure, and deployment scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 06:54:22 -05:00

85 lines
2 KiB
YAML

---
- name: Remove old Docker packages
ansible.builtin.apt:
name:
- docker
- docker-engine
- docker.io
- containerd
- runc
state: absent
- name: Install prerequisites for Docker repo
ansible.builtin.apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg
state: present
- name: Add Docker GPG key
ansible.builtin.get_url:
url: https://download.docker.com/linux/debian/gpg
dest: /etc/apt/keyrings/docker.asc
mode: "0644"
- name: Add Docker apt repository
ansible.builtin.apt_repository:
repo: >-
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc]
https://download.docker.com/linux/debian
{{ ansible_distribution_release }} stable
filename: docker
state: present
- name: Install Docker CE and plugins
ansible.builtin.apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: present
update_cache: true
notify: Restart docker
- name: Ensure Docker service is enabled and started
ansible.builtin.systemd:
name: docker
enabled: true
state: started
- name: Add deploy user to docker group
ansible.builtin.user:
name: "{{ deploy_user }}"
groups: docker
append: true
- name: Verify Docker Compose plugin is available
ansible.builtin.command:
cmd: docker compose version
changed_when: false
register: docker_compose_check
failed_when: docker_compose_check.rc != 0
# --- Auto-start on reboot via systemd ---
- name: Deploy performancewest systemd service unit
ansible.builtin.template:
src: performancewest.service.j2
dest: /etc/systemd/system/performancewest.service
owner: root
group: root
mode: "0644"
notify:
- Reload systemd
- Enable performancewest service
- name: Ensure performancewest service is enabled and started
ansible.builtin.systemd:
name: performancewest
enabled: true
state: started
daemon_reload: true