main.yml 2.7 KB

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