diff --git a/seb4itik/byow/roles/wordpress/tasks/install_wordpress.yml b/seb4itik/byow/roles/wordpress/tasks/install_wordpress.yml new file mode 100644 index 0000000..781d204 --- /dev/null +++ b/seb4itik/byow/roles/wordpress/tasks/install_wordpress.yml @@ -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 < + 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 diff --git a/seb4itik/byow/roles/wordpress/tasks/main.yml b/seb4itik/byow/roles/wordpress/tasks/main.yml index 1382709..8fef6ff 100644 --- a/seb4itik/byow/roles/wordpress/tasks/main.yml +++ b/seb4itik/byow/roles/wordpress/tasks/main.yml @@ -16,7 +16,6 @@ - "zip" - name: Installation de wp-cli - when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname" ansible.builtin.get_url: url: "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" dest: "/usr/local/bin/wp" @@ -42,148 +41,8 @@ mode: "0750" - name: Installation de 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 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 < - 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 + when: "wordpress_create_master == None or wordpress_create_master == ansible_hostname" + ansible.builtin.include_tasks: "install_wordpress.yml" - name: Configuration de Nginx ansible.builtin.template: