playbook-unarchive_wordpress
# ansible-playbook -i inventory playbook-unarchive_wordpress.yml
---
- hosts: all
become: yes
tasks:
- name: Get Wordpress archive
ansible.builtin.unarchive:
src: https://fr.wordpress.org/wordpress-5.8-fr_FR.tar.gz
dest: /tmp/wordpress_5.8
remote_src: true #obligatoire pour recupérer un fichier distant via URL
creates: /tmp/wordpress_5.8/wordpress/wp-settings.php #Skip si le fichier existe
delegate_to: 127.0.0.1
- name: Create a directory if it does not exist
ansible.builtin.file:
path: /var/www/html/wordpress/
state: directory
mode: '0755'
# - name: Copie des fichiers sur les postes distants
# ansible.builtin.copy:
# force: no #Ne force pas la réécriture
# src: /tmp/wordpress_5.8/
# dest: /var/www/html/wordpress/
# #owner: tbr
# #group: tbr
# #mode: '0644'
- name: Install php
ansible.builtin.package:
name:
- apache2
- php
- php-mysql
- libapache2-mod-php7.3
- mariadb-server
state: present
notify: restart apache2
# - name: backup config file
# command: cp /var/www/html/wordpress/wordpress/wp-config.php /var/www/html/wordpress/wordpress/wp-config.php.old
- name: Copy sample config file
ansible.builtin.copy:
remote_src: true
src: /var/www/html/wordpress/wordpress/wp-config-sample.php
dest: /var/www/html/wordpress/wordpress/wp-config.php
- name: Update Wordpress config file
lineinfile:
path: /var/www/html/wordpress/wordpress/wp-config.php
regexp: "{{item.regexp}}"
line: "{{item.line}}"
with_items:
- {'regexp': "define\\( 'DB_NAME', '(.)+' \\);", 'line': "define( 'DB_NAME', 'wordpress' );"}
- {'regexp': "define\\( 'DB_USER', '(.)+' \\);", 'line': "define( 'DB_USER', 'wpuser' );"}
- {'regexp': "define\\( 'DB_PASSWORD', '(.)+' \\);", 'line': "define( 'DB_PASSWORD', 'wpuserpassword' );"}
- name: Update ownership to Apache user
file:
path: /var/www/html/wordpress/wordpress/
state: directory
recurse: yes
owner: www-data
- name: Set the correct permissions on Wordpress directories
command: find /var/www/html/wordpress/wordpress/ -type d -exec chmod 750 {} \;
- name: Set the correct permissions for Wordpress files
command: find /var/www/html/wordpress/wordpress/ -type f -exec chmod 640 {} \;
##########################
- name: Create a new database called wordpress
mysql_db:
login_user: root
login_password: ""
name: wordpress
state: present
- name: Configure new MySQL user called wpuser
mysql_user:
login_user: root
login_password: ""
name: wpuser
password: wpuserpassword
priv: 'wordpress.*:ALL'
state: present
##########################
- name: Restart service httpd, in all cases
ansible.builtin.service:
name: apache2
state: restarted
- name: Restart service mariadb, in all cases
ansible.builtin.service:
name: mariadb
state: restarted
##########################
handlers:
- name: restart apache2
ansible.builtin.service:
name: apache2
state: restarted