Add DB-specific StorageBox ownership variables and make the davfs mount role honor configurable uid and gid values so database containers can access mounted files. Extend the prod DB node role to sync StorageBox writes, generate and distribute the MongoDB replica set keyfile, wait for the keyfile on each node, and enforce keyfile permissions. Tune MongoDB and Patroni templates for quieter logging, correct secret variable names, local bootstrap trust, and production network pg_hba coverage. Refresh the production setup history with the current bootstrap sequence, DB stack deployment workflow, MongoDB replica set initialization, Patroni validation, and completed DB cluster status.
51 lines
1.5 KiB
YAML
51 lines
1.5 KiB
YAML
---
|
|
- name: Install davfs2
|
|
ansible.builtin.dnf:
|
|
name: davfs2
|
|
state: present
|
|
|
|
- name: Configure davfs2 secrets
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/davfs2/secrets
|
|
line: "{{ storagebox_url }} {{ storagebox_user }} {{ storagebox_password }}"
|
|
create: yes
|
|
mode: "0600"
|
|
owner: root
|
|
group: root
|
|
|
|
- name: Create mount point
|
|
ansible.builtin.file:
|
|
path: "{{ storagebox_mount_point }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Add fstab entry for StorageBox
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/fstab
|
|
line: "{{ storagebox_url }} {{ storagebox_mount_point }} davfs _netdev,auto,user,rw,uid={{ storagebox_uid | default('root') }},gid={{ storagebox_gid | default('root') }} 0 0"
|
|
regexp: "^{{ storagebox_url | regex_escape() }}"
|
|
state: present
|
|
|
|
- name: Mount StorageBox
|
|
ansible.builtin.mount:
|
|
path: "{{ storagebox_mount_point }}"
|
|
src: "{{ storagebox_url }}"
|
|
fstype: davfs
|
|
opts: "_netdev,auto,user,rw,uid={{ storagebox_uid | default('root') }},gid={{ storagebox_gid | default('root') }}"
|
|
state: mounted
|
|
|
|
- name: Write mount marker
|
|
ansible.builtin.copy:
|
|
content: "mounted by ansible"
|
|
dest: "{{ storagebox_mount_point }}/.mounted_marker"
|
|
mode: '0644'
|
|
|
|
- name: Create managed StorageBox directories
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
owner: "{{ item.owner | default(omit) }}"
|
|
group: "{{ item.group | default(omit) }}"
|
|
mode: "{{ item.mode | default('0755') }}"
|
|
loop: "{{ storagebox_managed_directories | default([]) }}"
|