Files
rick-infra/roles/sigvild-gallery/tasks/main.yml

92 lines
2.2 KiB
YAML

---
# Sigvild Gallery Deployment Tasks
- name: Install required packages
pacman:
name:
- rsync
state: present
- name: Create sigvild gallery user
user:
name: "{{ sigvild_gallery_user }}"
system: yes
shell: /bin/bash
home: "{{ sigvild_gallery_home }}"
create_home: yes
- name: Create directories
file:
path: "{{ item }}"
state: directory
owner: "{{ sigvild_gallery_user }}"
group: "{{ sigvild_gallery_user }}"
mode: '0755'
loop:
- "{{ sigvild_gallery_home }}"
- "{{ sigvild_gallery_data_dir }}"
- "{{ sigvild_gallery_web_root }}"
- name: Build and deploy backend
include_tasks: deploy_backend.yml
tags: [backend, build]
- name: Build and deploy frontend
include_tasks: deploy_frontend.yml
tags: [frontend, build]
- name: Deploy systemd service
template:
src: sigvild-gallery.service.j2
dest: /etc/systemd/system/sigvild-gallery.service
owner: root
group: root
mode: '0644'
notify:
- reload systemd
- restart sigvild-gallery
tags: [backend, service]
- name: Deploy Caddy configurations
template:
src: "{{ item.src }}"
dest: "{{ caddy_sites_enabled_dir }}/{{ item.dest }}"
owner: root
group: "{{ caddy_user }}"
mode: '0644'
loop:
- { src: 'frontend.caddy.j2', dest: 'sigvild-frontend.caddy' }
- { src: 'api.caddy.j2', dest: 'sigvild-api.caddy' }
notify: reload caddy
tags: [caddy, frontend, backend]
- name: Enable and start sigvild-gallery service
systemd:
name: sigvild-gallery
enabled: "{{ sigvild_gallery_service_enabled }}"
state: "{{ sigvild_gallery_service_state }}"
daemon_reload: yes
tags: [backend, service]
- name: Create superuser account
command: >
{{ sigvild_gallery_binary }} superuser upsert
"{{ vault_pb_su_email }}"
"{{ vault_pb_su_password }}"
args:
chdir: "{{ sigvild_gallery_home }}"
become: yes
become_user: "{{ sigvild_gallery_user }}"
register: superuser_result
failed_when: superuser_result.rc != 0
- name: Verify gallery health
uri:
url: "https://{{ sigvild_gallery_api_domain }}/api/health"
method: GET
status_code: [200, 404] # 404 is ok if health endpoint doesn't exist yet
timeout: 15
retries: 5
delay: 5
ignore_errors: yes
tags: [verify]