Sync runner checkout / sync (push) Successful in 7s
Each host mounts wp-content and gets a compose file from inventory instead of a hand-copied one. Also allow LAN TCP 8020 so abc_voice is reachable through UFW.
78 lines
2.2 KiB
YAML
78 lines
2.2 KiB
YAML
---
|
|
# Mount each site's shared wp-content and write its compose file.
|
|
# List lives in inventory/wordpress_sites.yml. Containers are not started
|
|
# here: the first browser install must run on one host only.
|
|
|
|
- name: Load WordPress site list
|
|
ansible.builtin.include_vars:
|
|
file: "{{ inventory_dir }}/wordpress_sites.yml"
|
|
|
|
- name: Install NFS client
|
|
ansible.builtin.apt:
|
|
name: nfs-common
|
|
state: present
|
|
|
|
- name: Create WordPress mount points
|
|
ansible.builtin.file:
|
|
path: "{{ item.mount }}"
|
|
state: directory
|
|
mode: "0755"
|
|
loop: "{{ wordpress_sites }}"
|
|
loop_control:
|
|
label: "{{ item.name }}"
|
|
|
|
- name: Mount WordPress wp-content
|
|
ansible.posix.mount:
|
|
src: "{{ wordpress_nfs_server }}:{{ item.export }}"
|
|
path: "{{ item.mount }}"
|
|
fstype: nfs
|
|
opts: "{{ wordpress_nfs_opts }}"
|
|
dump: "0"
|
|
passno: "0"
|
|
state: mounted
|
|
loop: "{{ wordpress_sites }}"
|
|
loop_control:
|
|
label: "{{ item.name }}"
|
|
|
|
- name: Ensure WordPress env directory
|
|
ansible.builtin.file:
|
|
path: "{{ apps_env_dir }}"
|
|
state: directory
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0700"
|
|
|
|
- name: Ensure WordPress compose directories
|
|
ansible.builtin.file:
|
|
path: "{{ wordpress_root }}/{{ item.name | regex_replace('_beta$', '-beta') }}"
|
|
state: directory
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0755"
|
|
loop: "{{ wordpress_sites }}"
|
|
when: (item.url | default('') | length) > 0
|
|
loop_control:
|
|
label: "{{ item.name }}"
|
|
|
|
- name: Note WordPress sites waiting on a public URL
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
WordPress {{ item.name }} has no url. NFS is mounted.
|
|
Compose is not written until url is set in inventory/wordpress_sites.yml.
|
|
loop: "{{ wordpress_sites }}"
|
|
when: (item.url | default('') | length) == 0
|
|
loop_control:
|
|
label: "{{ item.name }}"
|
|
|
|
- name: Write WordPress compose file
|
|
ansible.builtin.template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ wordpress_root }}/{{ item.name | regex_replace('_beta$', '-beta') }}/docker-compose.yml"
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0644"
|
|
loop: "{{ wordpress_sites }}"
|
|
when: (item.url | default('') | length) > 0
|
|
loop_control:
|
|
label: "{{ item.name }}"
|