--- - block: # Used for tagging all tasks with "wordpress" - name: "Set site_data_path to {{ www_path }}/{{ site.slug }}_wp-content" set_fact: site_data_path="{{ www_path }}/{{ site.slug }}_wp-content" tags: always ############################### # Create wp-content if needed # ############################### - name: Is it a new install? stat: path: "{{ site_data_path }}/index.php" register: wpcontent tags: bootstrap - name: Populate wp-content folder block: - name: "Clear folder {{ site_data_path }}" file: path: "{{ site_data_path }}" state: absent - name: "Download Wordpress v{{ wordpress.version }} archive" get_url: url: "https://wordpress.org/wordpress-{{ wordpress.version }}.tar.gz" dest: "/tmp/wordpress.tgz" checksum: "{{ wordpress.checksum }}" - name: "Extract Wordpress v{{ wordpress.version }} archive" unarchive: src: "/tmp/wordpress.tgz" dest: /tmp remote_src: yes - name: "Copy wp-content folder to destination" copy: src: /tmp/wordpress/wp-content/ dest: "{{ site_data_path }}" remote_src: yes # group: www-data # mode: '0660' # directory_mode: '0770' - name: Set proper access rights to wp-content tree file: path: "{{ site_data_path }}" state: directory recurse: yes group: www-data mode: "u=rwX,g=rwX,o=" - name: "Remove downloaded content" file: path: "{{ toremove }}" state: absent loop: - /tmp/wordpress.tgz - /tmp/wordpress loop_control: loop_var: toremove when: wpcontent.stat.exists is not defined or wpcontent.stat.exists == False tags: bootstrap #################### # Render templates # #################### - name: "Render templates" import_tasks: render.yml tags: render ####################### # MySQL configuration # ####################### - name: "Setup MySQL" import_tasks: mysql.yml tags: mysql ################# # Setup backups # ################# - name: "Setup backups" import_tasks: backup.yml tags: backup ################### # SSL certificate # ################### # - name: Create Let's Encrypt certificate # This seems hard, see: # https://docs.ansible.com/ansible/latest/modules/acme_certificate_module.html#acme-certificate-module # https://www.digitalocean.com/community/tutorials/how-to-acquire-a-let-s-encrypt-certificate-using-ansible-on-ubuntu-18-04 # Maybe using shell directly? e.g. # certbot certonly --webroot -w /var/www/letsencrypt -d tags: wordpress # / block