✨: migrate wordpress to app dir
All checks were successful
ansible-lint / lint-everything (push) Successful in 1m24s
All checks were successful
ansible-lint / lint-everything (push) Successful in 1m24s
This commit is contained in:
104
roles/wordpress/tasks/wordpress.yml
Normal file
104
roles/wordpress/tasks/wordpress.yml
Normal 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 doesn’t 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/"
|
Reference in New Issue
Block a user