main.yml 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ---
  2. - name: Vérifier si WordPress existe sous /var/www/wordpress
  3. stat:
  4. path: /var/www/wordpress
  5. register: wordpress_dir
  6. # Si /var/www/wordpress n'existe pas, alors télécharger WordPress
  7. - name: Télécharger l'archive WordPress en utilisant curl
  8. command: curl -o /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz
  9. args:
  10. creates: /tmp/wordpress.tar.gz
  11. when: wordpress_dir.stat.exists == False
  12. # Si /var/www/wordpress n'existe pas, alors décompresser WordPress
  13. - name: Décompacter l'archive WordPress
  14. ansible.builtin.unarchive:
  15. src: /tmp/wordpress.tar.gz
  16. dest: /var/www
  17. remote_src: yes
  18. owner: www-data
  19. group: www-data
  20. when: wordpress_dir.stat.exists == False
  21. # Vérifier si /var/www/wordpress/wp-config.php existe
  22. - name: Vérifier si wp-config.php existe sous /var/www/wordpress
  23. stat:
  24. path: /var/www/wordpress/wp-config.php
  25. register: wp_config
  26. # Télécharger des clés secrètes WordPress
  27. - name: Télécharger config wp salt
  28. command: curl https://api.wordpress.org/secret-key/1.1/salt/
  29. register: wp_salt
  30. when: wp_config.stat.exists == False
  31. # Créer wp-config.php s'il n'existe pas
  32. - name: Create wp-config.php
  33. ansible.builtin.template:
  34. src: templates/wp-config-sample.php.j2
  35. dest: /var/www/wordpress/wp-config.php
  36. owner: www-data
  37. group: www-data
  38. mode: "0440"
  39. when: wp_config.stat.exists == False
  40. # Vérifier si WordPress CLI existe
  41. - name: Vérifier si wp-cli existe
  42. ansible.builtin.stat:
  43. path: /usr/local/bin/wp
  44. register: wp_cli
  45. # Télécharger WordPress CLI
  46. - name: Télécharger wp-cli
  47. command: curl -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  48. args:
  49. creates: /usr/local/bin/wp
  50. when: wp_cli.stat.exists == False
  51. # Rendre WordPress CLI exécutable
  52. - name: Rendre WordPress CLI exécutable
  53. command: chmod +x /usr/local/bin/wp
  54. # Vérifier si WordPress est installé (tables de la base de données initialisées)
  55. - name: Vérifier si WordPress est installé
  56. command: sudo -u www-data wp core is-installed --path=/var/www/wordpress
  57. register: wp_installed
  58. ignore_errors: yes
  59. # Installer Wordpress avec wp core install (cwd: /var/www/wordpress)
  60. - name: Installer WordPress
  61. command: sudo -u www-data wp core install --url={{ wp_site_url }} --title="{{ wp_site_title }}" --admin_user={{ wp_username }} --admin_password={{ wp_password }} --admin_email={{ wp_admin_email }}
  62. # WP-CLI complains if we run it as root, so we become a regular user
  63. become: no
  64. # Shou
  65. args:
  66. chdir: /var/www/wordpress
  67. when: wp_installed.rc != 0