mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-07-26 15:55:56 +02:00
Update to 2021-12-01 19:13
This commit is contained in:
7
roles/wordpress/tasks/archive_post.yml
Normal file
7
roles/wordpress/tasks/archive_post.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_compress_archive.yml
|
||||
vars:
|
||||
- root_dir: "{{ wp_root_dir }}"
|
||||
- version: "{{ wp_current_version }}"
|
||||
tags: wp
|
9
roles/wordpress/tasks/archive_pre.yml
Normal file
9
roles/wordpress/tasks/archive_pre.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_archive.yml
|
||||
vars:
|
||||
- root_dir: "{{ wp_root_dir }}"
|
||||
- version: "{{ wp_current_version }}"
|
||||
- db_name: "{{ wp_db_name }}"
|
||||
tags: wp
|
||||
|
21
roles/wordpress/tasks/conf.yml
Normal file
21
roles/wordpress/tasks/conf.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_webconf.yml
|
||||
vars:
|
||||
- app_id: wordpress_{{ wp_id }}
|
||||
- php_version: "{{ wp_php_version }}"
|
||||
- php_fpm_pool: "{{ wp_php_fpm_pool | default('') }}"
|
||||
tags: wp
|
||||
|
||||
- import_tasks: ../includes/webapps_create_mysql_db.yml
|
||||
vars:
|
||||
- db_name: "{{ wp_db_name }}"
|
||||
- db_user: "{{ wp_db_user }}"
|
||||
- db_server: "{{ wp_db_server }}"
|
||||
- db_pass: "{{ wp_db_pass }}"
|
||||
tags: wp
|
||||
|
||||
- name: Deploy wp configuration
|
||||
template: src=wp-config.php.j2 dest={{ wp_root_dir }}/web/wp-config.php owner={{ wp_php_user }} group={{ wp_php_user }} mode=660
|
||||
tags: wp
|
||||
|
24
roles/wordpress/tasks/directories.yml
Normal file
24
roles/wordpress/tasks/directories.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
|
||||
- name: Create directory structure
|
||||
file: path={{ item.dir }} state=directory owner={{ item.owner | default(omit) }} group={{ item.group | default(omit) }} mode={{ item.mode | default(omit) }}
|
||||
with_items:
|
||||
- dir: "{{ wp_root_dir }}"
|
||||
- dir: "{{ wp_root_dir }}/web"
|
||||
owner: "{{ wp_php_user }}"
|
||||
group: "{{ wp_php_user }}"
|
||||
- dir: "{{ wp_root_dir }}/tmp"
|
||||
owner: "{{ wp_php_user }}"
|
||||
group: "{{ wp_php_user }}"
|
||||
mode: 700
|
||||
- dir: "{{ wp_root_dir }}/sessions"
|
||||
owner: "{{ wp_php_user }}"
|
||||
group: "{{ wp_php_user }}"
|
||||
mode: 700
|
||||
- dir: "{{ wp_root_dir }}/meta"
|
||||
mode: 700
|
||||
- dir: "{{ wp_root_dir }}/backup"
|
||||
mode: 700
|
||||
- dir: "{{ wp_root_dir }}/archives"
|
||||
mode: 700
|
||||
tags: wp
|
93
roles/wordpress/tasks/facts.yml
Normal file
93
roles/wordpress/tasks/facts.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
---
|
||||
|
||||
- block:
|
||||
- set_fact: wp_install_mode='none'
|
||||
- set_fact: wp_installed=False
|
||||
- set_fact: wp_current_version=''
|
||||
- set_fact: wp_version=''
|
||||
tags: wp
|
||||
|
||||
- name: Install wp-cli
|
||||
yum:
|
||||
name:
|
||||
- wp-cli
|
||||
tags: wp
|
||||
|
||||
- name: Check if wordpress is installed
|
||||
command: php{{ wp_php_version }} /usr/bin/wp core is-installed
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
become_user: "{{ wp_php_user }}"
|
||||
failed_when: False
|
||||
changed_when: False
|
||||
register: wp_installed
|
||||
tags: wp
|
||||
|
||||
- name: Set install mode
|
||||
set_fact: wp_install_mode='install'
|
||||
when: wp_installed.rc != 0
|
||||
tags: wp
|
||||
|
||||
- when: wp_manage_upgrade == True and wp_installed.rc == 0
|
||||
tags: wp
|
||||
block:
|
||||
- name: Check if an update is available
|
||||
shell: "php{{ wp_php_version }} /usr/bin/wp core check-update | grep -q 'Success: WordPress is at the latest version'"
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
become_user: "{{ wp_php_user }}"
|
||||
changed_when: False
|
||||
failed_when: False
|
||||
register: wp_check_new_version
|
||||
|
||||
- name: Set upgrade mode
|
||||
set_fact: wp_install_mode='upgrade'
|
||||
when: wp_check_new_version.rc != 0
|
||||
|
||||
- name: Register current version
|
||||
command: php{{ wp_php_version }} /usr/bin/wp core version
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
become_user: "{{ wp_php_user }}"
|
||||
changed_when: False
|
||||
register: wp_current_version
|
||||
- set_fact: wp_current_version={{ wp_current_version.stdout }}
|
||||
|
||||
- when: wp_db_pass is not defined
|
||||
tags: wp
|
||||
block:
|
||||
- import_tasks: ../includes/get_rand_pass.yml
|
||||
vars:
|
||||
- pass_file: "{{ wp_root_dir }}/meta/ansible_dbpass"
|
||||
- set_fact: wp_db_pass={{ rand_pass }}
|
||||
|
||||
- name: Check is secrets have been created
|
||||
stat: path={{ wp_root_dir }}/meta/ansible_{{ item }}
|
||||
register: wp_secrets_files
|
||||
loop:
|
||||
- AUTH_KEY
|
||||
- SECURE_AUTH_KEY
|
||||
- LOGGED_IN_KEY
|
||||
- NONCE_KEY
|
||||
- AUTH_SALT
|
||||
- SECURE_AUTH_SALT
|
||||
- LOGGED_IN_SALT
|
||||
- NONCE_SALT
|
||||
- WP_CACHE_KEY_SALT
|
||||
tags: wp
|
||||
|
||||
- name: Create missing secrets
|
||||
shell: curl https://api.wordpress.org/secret-key/1.1/salt | perl -ne '/^define\(.{{ item.item }}.\s*,\s*.(.*).\s*\);/ && print "$1"' > {{ wp_root_dir }}/meta/ansible_{{ item.item }}
|
||||
args:
|
||||
creates: " {{ wp_root_dir }}/meta/ansible_{{ item.item }}"
|
||||
warn: False
|
||||
loop: "{{ wp_secrets_files.results }}"
|
||||
when: not item.stat.exists
|
||||
tags: wp
|
||||
|
||||
- name: Read secrets
|
||||
command: cat {{ wp_root_dir }}/meta/ansible_{{ item.item }}
|
||||
register: wp_secrets
|
||||
changed_when: False
|
||||
loop: "{{ wp_secrets_files.results }}"
|
||||
tags: wp
|
78
roles/wordpress/tasks/install.yml
Normal file
78
roles/wordpress/tasks/install.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_webconf.yml
|
||||
vars:
|
||||
- app_id: wordpress_{{ wp_id }}
|
||||
- php_version: "{{ wp_php_version }}"
|
||||
- php_fpm_pool: "{{ wp_php_fpm_pool | default('') }}"
|
||||
tags: wp
|
||||
|
||||
- when: wp_install_mode == 'install'
|
||||
tags: wp
|
||||
become_user: "{{ wp_php_user }}"
|
||||
block:
|
||||
- name: Download wordpress
|
||||
command: php{{ wp_php_version }} /usr/bin/wp core download --locale={{ wp_locale }}
|
||||
failed_when: False # Ignore failure, it might have been downloaded previously
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
|
||||
- name: Install wordpress
|
||||
command: >
|
||||
php{{ wp_php_version }} /usr/bin/wp core install
|
||||
--url={{ wp_public_url }}
|
||||
--title=Wordpress
|
||||
--admin_user={{ wp_admin_user }}
|
||||
--admin_email={{ wp_admin_email }}
|
||||
--admin_password='{{ wp_admin_pass }}'
|
||||
--skip-email
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
|
||||
- when: wp_install_mode == 'upgrade'
|
||||
tags: wp
|
||||
become_user: "{{ wp_php_user }}"
|
||||
block:
|
||||
- name: Upgrade wordpress
|
||||
command: php{{ wp_php_version }} /usr/bin/wp core update
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
|
||||
- name: Upgrade database
|
||||
command: php{{ wp_php_version }} /usr/bin/wp core update-db
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
|
||||
- name: Upgrade locales, plugins and themes
|
||||
shell: |
|
||||
php{{ wp_php_version }} /usr/bin/wp core language update
|
||||
php{{ wp_php_version }} /usr/bin/wp plugin update --all
|
||||
php{{ wp_php_version }} /usr/bin/wp theme update --all
|
||||
php{{ wp_php_version }} /usr/bin/wp language plugin update --all
|
||||
php{{ wp_php_version }} /usr/bin/wp language theme update --all
|
||||
args:
|
||||
chdir: "{{ wp_root_dir }}/web"
|
||||
|
||||
- name: Set correct SELinux context
|
||||
sefcontext:
|
||||
target: "{{ wp_root_dir }}(/.*)?"
|
||||
setype: httpd_sys_content_t
|
||||
when: ansible_selinux.status == 'enabled'
|
||||
tags: wp
|
||||
|
||||
- name: Deploy permission script
|
||||
template: src=perms.sh.j2 dest={{ wp_root_dir }}/perms.sh mode=755
|
||||
register: wp_perms_script
|
||||
tags: wp
|
||||
|
||||
- name: Set permissions
|
||||
command: "{{ wp_root_dir }}/perms.sh"
|
||||
when: wp_install_mode != 'none' or wp_perms_script.changed
|
||||
tags: wp
|
||||
|
||||
- name: Deploy pre/post backup hooks
|
||||
template: src={{ item }}-backup.sh.j2 dest=/etc/backup/{{ item }}.d/wordpress_{{ wp_id }} mode=750
|
||||
loop:
|
||||
- pre
|
||||
- post
|
||||
tags: wp
|
11
roles/wordpress/tasks/main.yml
Normal file
11
roles/wordpress/tasks/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
|
||||
- include: user.yml
|
||||
- include: directories.yml
|
||||
- include: facts.yml
|
||||
- include: archive_pre.yml
|
||||
when: wp_install_mode == 'upgrade'
|
||||
- include: conf.yml
|
||||
- include: install.yml
|
||||
- include: archive_post.yml
|
||||
when: wp_install_mode == 'upgrade'
|
7
roles/wordpress/tasks/user.yml
Normal file
7
roles/wordpress/tasks/user.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/create_system_user.yml
|
||||
vars:
|
||||
- user: "{{ wp_php_user }}"
|
||||
- comment: "PHP FPM for wordpress {{ wp_id }}"
|
||||
tags: wp
|
Reference in New Issue
Block a user