: migrate wordpress to app dir
All checks were successful
ansible-lint / lint-everything (push) Successful in 1m24s

This commit is contained in:
VC
2025-04-11 11:38:48 +02:00
parent a9b279fe8b
commit c49025d712
6 changed files with 218 additions and 1 deletions

View File

@@ -2,3 +2,5 @@
- name: Init DB
ansible.builtin.include_tasks: db.yml
- name: Install wordpress
ansible.builtin.include_tasks: wordpress.yml

View File

@@ -0,0 +1,104 @@
---
## Remove the previous app & install the new version
- name: Remove wordpress previous version
ansible.builtin.file:
state: absent
dest: "{{ wordpress_app_home }}"
- name: Create app home
ansible.builtin.file:
state: directory
dest: "{{ wordpress_app_home }}"
owner: root
group: www-data
mode: "0o750"
- name: Install wordpress application
ansible.builtin.unarchive:
remote_src: true
src: "{{ wordpress_url }}"
dest: "{{ wordpress_app_home }}"
owner: root
group: www-data
mode: "a-rwx,u+rwX,g+rX"
extra_opts: ['--strip-components=1']
exclude: "{{ wordpress_userdata_app_dirs | map('regex_replace', '^', 'wordpress/') }}"
## Ensure the data dirs exist, populate them if not
- name: Create data home
ansible.builtin.file:
state: directory
path: "{{ wordpress_data_home }}"
owner: www-data
group: www-data
mode: "a-rwx,u+rwX,g+rX"
# If the first data dir exists, other should exist too
- name: Get data dir
ansible.builtin.stat:
path: "{{ wordpress_data_home }}/{{ wordpress_userdata_app_dirs[0] }}"
register: _wordpress_userdata_dir_stat
- name: Install wordpress data dir
when: not _wordpress_userdata_dir_stat.stat.exists
block:
- name: Unarchive wp-content
ansible.builtin.unarchive:
remote_src: true
src: "{{ wordpress_url }}"
dest: "{{ wordpress_data_home }}"
owner: www-data
group: www-data
mode: "a-rwx,u+rwX,g+rX"
extra_opts: ['--strip-components=1']
include: "{{ wordpress_userdata_app_dirs | map('regex_replace', '^', 'wordpress/') | first }}"
## no-wp doesnt exist by default, creating it
- name: Create no-wp
ansible.builtin.file:
state: directory
dest: "{{ wordpress_data_home }}/no-wp"
owner: www-data
group: www-data
mode: "0o750"
- name: Link wordpress userdata dirs
ansible.builtin.file:
state: link
src: "{{ wordpress_data_home }}/{{ item }}"
dest: "{{ wordpress_app_home }}/{{ item }}"
loop: "{{ wordpress_userdata_app_dirs }}"
# Put config file
- name: Get secret-key salt
ansible.builtin.uri:
url: "https://api.wordpress.org/secret-key/1.1/salt/"
return_content: true
register: _wordpress_secret_salt
- name: Put wordpress configuration file
ansible.builtin.template:
src: wp-config.php.j2
dest: "{{ wordpress_config_path }}"
owner: root
group: www-data
mode: "0o640"
vars:
salt_block: "{{ _wordpress_secret_salt.content }}"
# Handle languages
- name: Find & delete default language files inside wp-content
ansible.builtin.command:
cmd: "find {{ wordpress_data_home }}/wp-content/languages/ -type f -maxdepth 1 -delete"
changed_when: true
- name: Reextract language files
ansible.builtin.unarchive:
remote_src: true
src: "{{ wordpress_url }}"
dest: "{{ wordpress_data_home }}"
owner: www-data
group: www-data
mode: "a-rwx,u+rwX,g+rX"
extra_opts: ['--strip-components=1']
include: "wordpress/wp-content/languages/"