1.9.0 Release affine

This commit is contained in:
2026-04-06 23:33:44 +09:00
parent 8c3fe409ae
commit 664cf2956d
12 changed files with 414 additions and 4 deletions

View File

@@ -0,0 +1,163 @@
---
- name: Set manticore service name
ansible.builtin.set_fact:
manticore_service: "affine"
- name: Create manticore directory
ansible.builtin.file:
path: "{{ node['home_path'] }}/{{ item }}"
state: "directory"
owner: "{{ services['manticore']['subuid'] }}"
group: "svadmins"
mode: "0770"
loop:
- "data/containers/manticore"
- "data/containers/manticore/{{ manticore_service }}"
become: true
- name: Deploy manticore.container file
ansible.builtin.template:
src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/manticore/manticore.container.j2"
dest: "{{ node['home_path'] }}/.config/containers/systemd/manticore_{{ manticore_service }}.container"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0644"
register: "is_manticore_containerfile"
- name: Enable (Restart) manticore.service
ansible.builtin.systemd:
name: "manticore_{{ manticore_service }}.service"
state: "restarted"
enabled: true
daemon_reload: true
scope: "user"
when: is_manticore_containerfile.changed # noqa: no-handler
- name: Set redis service name
ansible.builtin.set_fact:
redis_service: "affine"
- name: Create redis_affine directory
ansible.builtin.file:
path: "{{ node['home_path'] }}/{{ item }}"
state: "directory"
owner: "{{ services['redis']['subuid'] }}"
group: "svadmins"
mode: "0770"
loop:
- "containers/redis"
- "containers/redis/{{ redis_service }}"
- "containers/redis/{{ redis_service }}/data"
become: true
- name: Deploy redis config file
ansible.builtin.template:
src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/redis/redis.conf.j2"
dest: "{{ node['home_path'] }}/containers/redis/{{ redis_service }}/redis.conf"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0644"
register: "is_redis_conf"
- name: Deploy redis container file
ansible.builtin.template:
src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/redis/redis.container.j2"
dest: "{{ node['home_path'] }}/.config/containers/systemd/redis_{{ redis_service }}.container"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0644"
register: "is_redis_containerfile"
- name: Enable (Restart) redis service
ansible.builtin.systemd:
name: "redis_{{ redis_service }}.service"
state: "restarted"
enabled: true
daemon_reload: true
scope: "user"
when: is_redis_conf.changed or is_redis_containerfile.changed # noqa: no-handler
- name: Create affine directory
ansible.builtin.file:
path: "{{ node['home_path'] }}/{{ item }}"
state: "directory"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0770"
loop:
- "data/containers/affine"
- "containers/affine"
- "containers/affine/ssl"
- "containers/affine/config"
- name: Deploy root certificate
ansible.builtin.copy:
content: |
{{ hostvars['console']['ca']['root']['crt'] }}
dest: "{{ node['home_path'] }}/containers/affine/ssl/{{ root_cert_filename }}"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0440"
notify: "notification_restart_affine"
no_log: true
- name: Register secret value to podman secret
containers.podman.podman_secret:
name: "{{ item.name }}"
data: "{{ item.value }}"
state: "present"
force: true
loop:
- name: "AFFINE_PRIVATE_KEY"
value: "{{ hostvars['console']['affine']['secret_key'] }}"
- name: "AFFINE_DATABASE_URL"
value: "postgresql://affine:{{ hostvars['console']['postgresql']['password']['affine'] | urlencode | replace('/', '%2F') }}\
@{{ services['postgresql']['domain'] }}.{{ domain['internal'] }}/affine_db?sslmode=verify-full&\
sslrootcert=/etc/ssl/affine/{{ root_cert_filename }}"
notify: "notification_restart_affine"
no_log: true
- name: Check data directory empty
ansible.builtin.stat:
path: "{{ node['home_path'] }}/data/containers/affine/.init"
register: "is_affine_init"
- name: Initialize affine
when: not is_affine_init.stat.exists
block:
- name: Execute init command (Including pulling image)
containers.podman.podman_container:
name: "affine_init"
image: "ghcr.io/toeverything/affine:{{ version['containers']['affine'] }}"
command: ['sh', '-c', 'node ./scripts/self-host-predeploy.js']
state: "started"
rm: true
detach: false
secrets:
- "AFFINE_DATABASE_URL,type=env,target=DATABASE_URL"
no_log: true
- name: Create .init file
ansible.builtin.file:
path: "{{ node['home_path'] }}/data/containers/affine/.init"
state: "touch"
mode: "0644"
owner: "{{ ansible_user }}"
group: "svadmins"
- name: Deploy affine.container file
ansible.builtin.template:
src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/affine/affine.container.j2"
dest: "{{ node['home_path'] }}/.config/containers/systemd/affine.container"
owner: "{{ ansible_user }}"
group: "svadmins"
mode: "0644"
notify: "notification_restart_affine"
- name: Enable affine.service
ansible.builtin.systemd:
name: "affine.service"
state: "started"
enabled: true
daemon_reload: true
scope: "user"