62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
# Docker Service Redeployment Implementation Plan
|
|
|
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|
|
|
**Goal:** Redeploy Docker services on `docker-host11` to update Jellyfin to version 10.11 and Gitea to version 1.24-rootless.
|
|
|
|
**Architecture:** Use the existing Ansible `docker.yaml` playbook and `docker_host` role to update the `compose.yaml` template on the target host, which triggers handlers to restart and recreate the containers with new images.
|
|
|
|
**Tech Stack:** Ansible, Docker, Docker Compose, Jinja2.
|
|
|
|
---
|
|
|
|
### Task 1: Verify Host Connectivity
|
|
|
|
**Files:**
|
|
- Read: `vars/docker.ini`
|
|
|
|
- [ ] **Step 1: Run Ansible ping to verify connectivity**
|
|
|
|
Run: `ansible -i vars/docker.ini docker_host -m ping`
|
|
Expected: `docker-host11 | SUCCESS => {"ping": "pong"}`
|
|
|
|
- [ ] **Step 2: Check current running versions (baseline)**
|
|
|
|
Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Image}}'"`
|
|
Expected: `jellyfin: jellyfin/jellyfin:10.10` and `gitea: gitea/gitea:1.23-rootless` (or currently running versions).
|
|
|
|
### Task 2: Execute Redeployment Playbook
|
|
|
|
**Files:**
|
|
- Read: `playbooks/docker.yaml`
|
|
- Read: `vars/group_vars/docker/docker.yaml` (already modified with new versions)
|
|
|
|
- [ ] **Step 1: Run the full Docker deployment playbook**
|
|
|
|
Run: `ansible-playbook -i vars/docker.ini playbooks/docker.yaml`
|
|
Expected: Playbook completes with `changed` for the `docker_host` role (template task) and `ok` for others.
|
|
|
|
- [ ] **Step 2: Commit changes to the repository**
|
|
|
|
```bash
|
|
git add vars/group_vars/docker/docker.yaml
|
|
git commit -m "chore: update jellyfin to 10.11 and gitea to 1.24-rootless"
|
|
```
|
|
|
|
### Task 3: Verify Post-Deployment State
|
|
|
|
**Files:**
|
|
- N/A
|
|
|
|
- [ ] **Step 1: Verify new versions are running**
|
|
|
|
Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Image}}'"`
|
|
Expected:
|
|
- `jellyfin: jellyfin/jellyfin:10.11`
|
|
- `gitea: gitea/gitea:1.24-rootless`
|
|
|
|
- [ ] **Step 2: Verify container health status**
|
|
|
|
Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Status}}'"`
|
|
Expected: Both containers show `Up` and `(healthy)` (if healthchecks are active).
|