--- - name: Crear directori d'instal·lació de WordPress si no existeix ansible.builtin.file: path: "{{ wp_install_dir }}" state: directory owner: www-data group: www-data mode: '0755' - name: Comprovar la versió actual de WordPress instal·lada ansible.builtin.slurp: src: "{{ wp_install_dir }}/.wp_version" register: wp_current_version_encoded failed_when: false - name: Definir la versió actual com a variable ansible.builtin.set_fact: wp_current_version: "{{ (wp_current_version_encoded.content | b64decode | trim) if wp_current_version_encoded.content is defined else '0.0.0' }}" - name: Bloc d'actualització (S'executa només si canvia la versió) block: - name: Trobar fitxers de WordPress anteriors per netejar (mantenint wp-content i wp-config) ansible.builtin.find: paths: "{{ wp_install_dir }}" excludes: - 'wp-content' - 'wp-config.php' - '.wp_version' file_type: any hidden: true register: files_to_delete - name: Eliminar fitxers de la versió antiga ansible.builtin.file: path: "{{ item.path }}" state: absent loop: "{{ files_to_delete.files }}" - name: Descarregar i extreure la nova versió de WordPress directament ansible.builtin.unarchive: src: "https://wordpress.org/wordpress-{{ wp_version }}.tar.gz" dest: "{{ wp_install_dir }}" remote_src: yes owner: www-data group: www-data extra_opts: [--strip-components=1] - name: Desar el registre de la nova versió instal·lada ansible.builtin.copy: content: "{{ wp_version }}" dest: "{{ wp_install_dir }}/.wp_version" owner: www-data group: www-data mode: '0644' when: wp_version != wp_current_version - name: Copiar o actualitzar wp-config.php (S'executa sempre per seguretat) ansible.builtin.template: src: wp-config.php.j2 dest: "{{ wp_install_dir }}/wp-config.php" owner: www-data group: www-data mode: '0640'