clustered-fucks/playbooks/deploy-homepage.yml
2026-01-24 22:51:13 +00:00

62 lines
1.8 KiB
YAML

---
- name: Deploy Homepage to replicant
hosts: replicant
vars:
service_name: homepage
service_dir: "{{ docker_appdata }}/{{ service_name }}"
compose_src: "{{ playbook_dir }}/../compose-files/replicant/{{ service_name }}"
tasks:
- name: Create service directory
ansible.builtin.file:
path: "{{ service_dir }}"
state: directory
mode: '0755'
- name: Copy docker-compose.yml
ansible.builtin.copy:
src: "{{ compose_src }}/docker-compose.yml"
dest: "{{ service_dir }}/docker-compose.yml"
mode: '0644'
- name: Create config directory
ansible.builtin.file:
path: "{{ service_dir }}/config"
state: directory
mode: '0755'
- name: Pull latest image
community.docker.docker_image:
name: ghcr.io/gethomepage/homepage:latest
source: pull
force_source: yes
- name: Deploy Homepage
community.docker.docker_compose_v2:
project_src: "{{ service_dir }}"
state: present
pull: missing
register: deploy_result
- name: Show deployment result
ansible.builtin.debug:
msg: "Homepage deployed: {{ deploy_result.changed }}"
- name: Wait for container to be healthy
ansible.builtin.shell: |
for i in {1..30}; do
status=$(docker inspect --format='{{ "{{" }}.State.Health.Status{{ "}}" }}' homepage 2>/dev/null || echo "starting")
if [ "$status" = "healthy" ]; then
echo "Container is healthy"
exit 0
fi
sleep 2
done
echo "Warning: Container not healthy after 60s"
docker logs homepage 2>&1 | tail -20
register: health_check
changed_when: false
- name: Display health status
ansible.builtin.debug:
msg: "{{ health_check.stdout }}"