main.yml 2.6 KB

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