wordpress.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. ---
  2. -
  3. gather_facts: false
  4. hosts: tag_system_wordpress2
  5. vars:
  6. remote_deploy_user: ubuntu
  7. remote_deploy_group: ubuntu
  8. remote_deploy_home: /home/ubuntu
  9. remote_www_dir: /var/www
  10. remote_wordpress_dir: /var/www/html
  11. mysql_root_password: mypass
  12. wordpress_db_name: wordpress
  13. wordpress_db_user: dbuser
  14. wordpress_db_user_pass: dbpass
  15. wordpress_db_prefix: wp_
  16. wordpress_home_url: http://35.178.251.165
  17. wordpress_site_title: Test Site
  18. wordpress_admin_user: admin
  19. wordpress_admin_user_pass: adminpass
  20. wordpress_admin_email: email@example.com
  21. tasks:
  22. - name: Install PHP v5.6 for WP-CLI support
  23. become: yes
  24. apt:
  25. pkg: ['php5.6', 'php5.6-common', 'php5.6-mysqlnd', 'php5.6-mcrypt', 'php5.6-curl', 'php5.6-cli', 'php-pear']
  26. - name: Download WP-CLI
  27. shell: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  28. - name: Make WP-CLI executable
  29. become: yes
  30. file:
  31. path: /home/ubuntu/wp-cli.phar
  32. mode: u=rwx,g=rx,o=rx
  33. - name: Move WP-CLI to /usr/local/bin/wp
  34. become: yes
  35. command: mv /home/ubuntu/wp-cli.phar /usr/local/bin/wp
  36. - name: Create WordPress database
  37. mysql_db:
  38. name: "{{ wordpress_db_name }}"
  39. state: present
  40. login_user: root
  41. login_password: "{{ mysql_root_password }}"
  42. - name: Create MySQL conf file
  43. copy:
  44. dest: "/home/ubuntu/.my.cnf"
  45. content: |
  46. [client]
  47. user=root
  48. password={{ mysql_root_password }}
  49. - name: Create WordPress DB user and grant permissions to WordPress DB
  50. mysql_user:
  51. name: "{{ wordpress_db_user }}"
  52. password: "{{ wordpress_db_user_pass }}"
  53. priv: "{{ wordpress_db_name }}.*:ALL"
  54. state: present
  55. login_unix_socket: /var/run/mysqld/mysqld.sock
  56. - name: Download WordPress
  57. command: wp core download
  58. args:
  59. chdir: "{{ remote_deploy_home }}/"
  60. remote_user: "{{ remote_deploy_user }}"
  61. - name: Change owner
  62. become: yes
  63. command: chown ubuntu:ubuntu /var/www/html -R
  64. - name: Copy WordPress to /var/www/html
  65. command: cp -r /home/ubuntu/. "{{ remote_wordpress_dir }}"/
  66. - name: Change WordPress owner
  67. file: dest=/var/www/html owner=ubuntu group=ubuntu recurse=yes
  68. become: yes
  69. - name: Configure WordPress
  70. command: wp core config
  71. --path="{{ remote_wordpress_dir }}"
  72. --dbname="{{ wordpress_db_name }}"
  73. --dbuser="{{ wordpress_db_user }}"
  74. --dbpass="{{ wordpress_db_user_pass }}"
  75. --dbprefix="{{ wordpress_db_prefix }}"
  76. remote_user: "{{ remote_deploy_user }}"
  77. - name: Is WordPress installed?
  78. command: wp core is-installed --path='/var/www/html'
  79. register: wordpress_is_installed
  80. ignore_errors: True
  81. remote_user: "{{ remote_deploy_user }}"
  82. - name: Install WordPress tables
  83. command: wp core install
  84. --url="{{ wordpress_home_url }}"
  85. --title="{{ wordpress_site_title }}"
  86. --admin_user="{{ wordpress_admin_user }}"
  87. --admin_password="{{ wordpress_admin_user_pass }}"
  88. --admin_email="{{ wordpress_admin_email }}"
  89. args:
  90. chdir: "{{ remote_wordpress_dir }}/"
  91. remote_user: "{{ remote_deploy_user }}"
  92. - name: Download WordPress dummy data
  93. get_url:
  94. url: https://raw.githubusercontent.com/manovotny/wptest/master/wptest.xml
  95. dest: "{{ remote_wordpress_dir }}/wptest.xml"
  96. - name: Import WordPress dummy data
  97. command: "wp import {{ item }} --authors=create"
  98. args:
  99. chdir: "{{ remote_wordpress_dir }}"
  100. with_items:
  101. - wp-content/plugins/woocommerce/dummy-data/dummy-data.xml
  102. - wptest.xml