wordpress: add wordpress_create_master
This commit is contained in:
133
seb4itik/byow/roles/wordpress/tasks/install_wordpress.yml
Normal file
133
seb4itik/byow/roles/wordpress/tasks/install_wordpress.yml
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
- name: Téléchargement de Wordpress
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
ansible.builtin.command:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
cmd: "wp core download --locale='{{ wordpress_locale }}' --skip-content"
|
||||||
|
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-config-sample.php"
|
||||||
|
|
||||||
|
# TODO: https://make.wordpress.org/cli/handbook/references/config/#config-files
|
||||||
|
- name: Configuration de Wordpress
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
ansible.builtin.shell:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
executable: "/usr/bin/bash"
|
||||||
|
cmd: |
|
||||||
|
set -o pipefail
|
||||||
|
wp config create \
|
||||||
|
--dbhost='{{ wordpress_db_host }}' \
|
||||||
|
--dbname='{{ wordpress_db_name }}' \
|
||||||
|
--dbuser='{{ wordpress_db_user }}' \
|
||||||
|
--dbpass='{{ wordpress_db_pass }}' \
|
||||||
|
--dbprefix='{{ wordpress_db_prefix }}' \
|
||||||
|
--dbcharset='{{ wordpress_db_charset }}' \
|
||||||
|
--extra-php <<PHP
|
||||||
|
define('FS_METHOD', 'direct');
|
||||||
|
define('FORCE_SSL_ADMIN', false);
|
||||||
|
define('WP_HOME', 'https://{{ wordpress_site }}');
|
||||||
|
define('WP_SITEURL', 'https://{{ wordpress_site }}');
|
||||||
|
|
||||||
|
error_reporting(0);
|
||||||
|
@ini_set('display_errors', 0);
|
||||||
|
define('DISALLOW_FILE_EDIT', true);
|
||||||
|
|
||||||
|
if (isset(\$_SERVER['HTTP_X_FORWARDED_PROTO']) && \$_SERVER['HTTP_X_FORWARDED_PROTO']=='https')
|
||||||
|
\$_SERVER['HTTPS'] = 'on';
|
||||||
|
PHP
|
||||||
|
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-config.php"
|
||||||
|
notify:
|
||||||
|
- "Flush Wordpress"
|
||||||
|
|
||||||
|
- name: Create Wordpress database tables
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
ansible.builtin.command:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
cmd: >
|
||||||
|
wp core install
|
||||||
|
--url='{{ wordpress_url }}'
|
||||||
|
--title='{{ wordpress_site_title }}'
|
||||||
|
--admin_user='{{ wordpress_admin_user }}'
|
||||||
|
--admin_password='{{ wordpress_admin_password }}'
|
||||||
|
--admin_email='{{ wordpress_admin_email }}'
|
||||||
|
--locale='{{ wordpress_locale }}'
|
||||||
|
--skip-email
|
||||||
|
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/uploads/ }}"
|
||||||
|
register: "wordpress_out_core_install"
|
||||||
|
changed_when: "'Success: WordPress installed successfully.' in wordpress_out_core_install.stdout"
|
||||||
|
notify:
|
||||||
|
- "Flush Wordpress"
|
||||||
|
|
||||||
|
- name: Installation des thèmes Wordpress
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
loop: "{{ wordpress_themes }}"
|
||||||
|
ansible.builtin.command:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
cmd: "wp theme install '{{ item }}'"
|
||||||
|
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/themes/{{ item | basename | splitext | first }}"
|
||||||
|
register: "wordpress_out_theme_install"
|
||||||
|
changed_when: "'Success: Installed 1 of 1 themes' in wordpress_out_theme_install.stdout"
|
||||||
|
notify:
|
||||||
|
- "Flush Wordpress"
|
||||||
|
|
||||||
|
- name: Activation du thème Wordpress
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
ansible.builtin.command:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
cmd: "wp theme activate '{{ wordpress_active_theme }}'"
|
||||||
|
register: "wordpress_out_theme_activate"
|
||||||
|
changed_when: "'Success: Switched to ' in wordpress_out_theme_activate.stdout"
|
||||||
|
notify:
|
||||||
|
- "Flush Wordpress"
|
||||||
|
|
||||||
|
- name: Installation des plugins wordpress-importer et one-click-demo-import
|
||||||
|
vars:
|
||||||
|
wordpress_plugins_to_install:
|
||||||
|
- "wordpress-importer"
|
||||||
|
- "one-click-demo-import"
|
||||||
|
ansible.builtin.include_tasks: "install_plugins.yml"
|
||||||
|
|
||||||
|
- name: Importation des plugins OCDI
|
||||||
|
become: true
|
||||||
|
become_user: "{{ wordpress_user }}"
|
||||||
|
loop: "{{ wordpress_import_ocdi_indexes }}"
|
||||||
|
ansible.builtin.shell:
|
||||||
|
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
||||||
|
executable: "/usr/bin/bash"
|
||||||
|
cmd: |
|
||||||
|
set -o pipefail
|
||||||
|
wp ocdi import --predefined='{{ item }}' \
|
||||||
|
&& touch /var/www/{{ wordpress_user }}/{{ wordpress_site }}/.ocdi_index{{ item }}_imported
|
||||||
|
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/.ocdi_index{{ item }}_imported"
|
||||||
|
register: "wordpress_out_ocdi_import"
|
||||||
|
changed_when: "'Success: Content import finished!' in wordpress_out_ocdi_import.stdout"
|
||||||
|
notify:
|
||||||
|
- "Flush Wordpress"
|
||||||
|
|
||||||
|
- name: Installation des plugins Wordpress
|
||||||
|
vars:
|
||||||
|
wordpress_plugins_to_install: "{{ wordpress_plugins }}"
|
||||||
|
ansible.builtin.include_tasks: "install_plugins.yml"
|
||||||
|
|
||||||
|
- name: Création du répertoire cache de Wordpress
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/cache"
|
||||||
|
state: "directory"
|
||||||
|
owner: "{{ wordpress_user }}"
|
||||||
|
group: "www-data"
|
||||||
|
mode: "0750"
|
||||||
|
|
||||||
|
- name: Apply permissions
|
||||||
|
loop:
|
||||||
|
- "cache"
|
||||||
|
- "upgrade"
|
||||||
|
- "uploads"
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/{{ item }}/"
|
||||||
|
owner: "{{ wordpress_user }}"
|
||||||
|
group: "www-data"
|
||||||
|
mode: "u=rwX,g=rwX,o=rX"
|
||||||
|
recurse: true
|
||||||
@@ -16,7 +16,6 @@
|
|||||||
- "zip"
|
- "zip"
|
||||||
|
|
||||||
- name: Installation de wp-cli
|
- name: Installation de wp-cli
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
ansible.builtin.get_url:
|
ansible.builtin.get_url:
|
||||||
url: "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
|
url: "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
|
||||||
dest: "/usr/local/bin/wp"
|
dest: "/usr/local/bin/wp"
|
||||||
@@ -42,148 +41,8 @@
|
|||||||
mode: "0750"
|
mode: "0750"
|
||||||
|
|
||||||
- name: Installation de Wordpress
|
- name: Installation de Wordpress
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
when: "wordpress_create_master == None or wordpress_create_master == ansible_hostname"
|
||||||
become: true
|
ansible.builtin.include_tasks: "install_wordpress.yml"
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
ansible.builtin.command:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
cmd: "wp core download --locale='{{ wordpress_locale }}' --skip-content"
|
|
||||||
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-config-sample.php"
|
|
||||||
|
|
||||||
# TODO: https://make.wordpress.org/cli/handbook/references/config/#config-files
|
|
||||||
- name: Configuration de Wordpress
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
ansible.builtin.shell:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
executable: "/usr/bin/bash"
|
|
||||||
cmd: |
|
|
||||||
set -o pipefail
|
|
||||||
wp config create \
|
|
||||||
--dbhost='{{ wordpress_db_host }}' \
|
|
||||||
--dbname='{{ wordpress_db_name }}' \
|
|
||||||
--dbuser='{{ wordpress_db_user }}' \
|
|
||||||
--dbpass='{{ wordpress_db_pass }}' \
|
|
||||||
--dbprefix='{{ wordpress_db_prefix }}' \
|
|
||||||
--dbcharset='{{ wordpress_db_charset }}' \
|
|
||||||
--extra-php <<PHP
|
|
||||||
define('FS_METHOD', 'direct');
|
|
||||||
define('FORCE_SSL_ADMIN', false);
|
|
||||||
define('WP_HOME', 'https://{{ wordpress_site }}');
|
|
||||||
define('WP_SITEURL', 'https://{{ wordpress_site }}');
|
|
||||||
|
|
||||||
error_reporting(0);
|
|
||||||
@ini_set('display_errors', 0);
|
|
||||||
define('DISALLOW_FILE_EDIT', true);
|
|
||||||
|
|
||||||
if (isset(\$_SERVER['HTTP_X_FORWARDED_PROTO']) && \$_SERVER['HTTP_X_FORWARDED_PROTO']=='https')
|
|
||||||
\$_SERVER['HTTPS'] = 'on';
|
|
||||||
PHP
|
|
||||||
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-config.php"
|
|
||||||
notify:
|
|
||||||
- "Flush Wordpress"
|
|
||||||
|
|
||||||
- name: Create Wordpress database tables
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
ansible.builtin.command:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
cmd: >
|
|
||||||
wp core install
|
|
||||||
--url='{{ wordpress_url }}'
|
|
||||||
--title='{{ wordpress_site_title }}'
|
|
||||||
--admin_user='{{ wordpress_admin_user }}'
|
|
||||||
--admin_password='{{ wordpress_admin_password }}'
|
|
||||||
--admin_email='{{ wordpress_admin_email }}'
|
|
||||||
--locale='{{ wordpress_locale }}'
|
|
||||||
--skip-email
|
|
||||||
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/uploads/ }}"
|
|
||||||
register: "wordpress_out_core_install"
|
|
||||||
changed_when: "'Success: WordPress installed successfully.' in wordpress_out_core_install.stdout"
|
|
||||||
notify:
|
|
||||||
- "Flush Wordpress"
|
|
||||||
|
|
||||||
- name: Installation des thèmes Wordpress
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
loop: "{{ wordpress_themes }}"
|
|
||||||
ansible.builtin.command:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
cmd: "wp theme install '{{ item }}'"
|
|
||||||
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/themes/{{ item | basename | splitext | first }}"
|
|
||||||
register: "wordpress_out_theme_install"
|
|
||||||
changed_when: "'Success: Installed 1 of 1 themes' in wordpress_out_theme_install.stdout"
|
|
||||||
notify:
|
|
||||||
- "Flush Wordpress"
|
|
||||||
|
|
||||||
- name: Activation du thème Wordpress
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
ansible.builtin.command:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
cmd: "wp theme activate '{{ wordpress_active_theme }}'"
|
|
||||||
register: "wordpress_out_theme_activate"
|
|
||||||
changed_when: "'Success: Switched to ' in wordpress_out_theme_activate.stdout"
|
|
||||||
notify:
|
|
||||||
- "Flush Wordpress"
|
|
||||||
|
|
||||||
- name: Installation des plugins wordpress-importer et one-click-demo-import
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
vars:
|
|
||||||
wordpress_plugins_to_install:
|
|
||||||
- "wordpress-importer"
|
|
||||||
- "one-click-demo-import"
|
|
||||||
ansible.builtin.include_tasks: "install_plugins.yml"
|
|
||||||
|
|
||||||
- name: Importation des plugins OCDI
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ wordpress_user }}"
|
|
||||||
loop: "{{ wordpress_import_ocdi_indexes }}"
|
|
||||||
ansible.builtin.shell:
|
|
||||||
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
|
|
||||||
executable: "/usr/bin/bash"
|
|
||||||
cmd: |
|
|
||||||
set -o pipefail
|
|
||||||
wp ocdi import --predefined='{{ item }}' \
|
|
||||||
&& touch /var/www/{{ wordpress_user }}/{{ wordpress_site }}/.ocdi_index{{ item }}_imported
|
|
||||||
creates: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/.ocdi_index{{ item }}_imported"
|
|
||||||
register: "wordpress_out_ocdi_import"
|
|
||||||
changed_when: "'Success: Content import finished!' in wordpress_out_ocdi_import.stdout"
|
|
||||||
notify:
|
|
||||||
- "Flush Wordpress"
|
|
||||||
|
|
||||||
- name: Installation des plugins Wordpress
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
vars:
|
|
||||||
wordpress_plugins_to_install: "{{ wordpress_plugins }}"
|
|
||||||
ansible.builtin.include_tasks: "install_plugins.yml"
|
|
||||||
|
|
||||||
- name: Création du répertoire cache de Wordpress
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/cache"
|
|
||||||
state: "directory"
|
|
||||||
owner: "{{ wordpress_user }}"
|
|
||||||
group: "www-data"
|
|
||||||
mode: "0750"
|
|
||||||
|
|
||||||
- name: Apply permissions
|
|
||||||
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
|
|
||||||
loop:
|
|
||||||
- "cache"
|
|
||||||
- "upgrade"
|
|
||||||
- "uploads"
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/{{ item }}/"
|
|
||||||
owner: "{{ wordpress_user }}"
|
|
||||||
group: "www-data"
|
|
||||||
mode: "u=rwX,g=rwX,o=rX"
|
|
||||||
recurse: true
|
|
||||||
|
|
||||||
- name: Configuration de Nginx
|
- name: Configuration de Nginx
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|||||||
Reference in New Issue
Block a user