-
-
Save louim/b16091082746dc920f20 to your computer and use it in GitHub Desktop.
| --- | |
| - name: Sync uploads between environments | |
| hosts: web | |
| remote_user: "{{ web_user }}" | |
| vars: | |
| project: "{{ wordpress_sites[site] }}" | |
| project_root: "{{ www_root }}/{{ site }}" | |
| tasks: | |
| # ansible-playbook uploads.yml -i hosts/staging --extra-vars="site=example.com mode=push" | |
| - name: Push uploads | |
| synchronize: | |
| src: "{{ project.local_path }}/web/app/uploads/" | |
| dest: "{{ project_root }}/current/web/app/uploads/" | |
| rsync_opts: --exclude=.DS_Store | |
| when: mode is not defined or mode == "push" | |
| # ansible-playbook uploads.yml -i hosts/staging --extra-vars="site=example.com mode=pull" | |
| - name: Pull uploads | |
| synchronize: | |
| src: "{{ project_root }}/current/web/app/uploads/" | |
| dest: "{{ project.local_path }}/web/app/uploads/" | |
| mode: pull | |
| rsync_opts: --exclude=.DS_Store | |
| when: mode is defined and mode == "pull" |
Thank you for this Playbook. It worked perfectly after placing it in /trellis/ and executing the commands you specify in the code comments.
I also attempted to include this as a Git Submodule in /trellis/deploy-hooks/sync-uploads-directory but upon running the Playbook I get this error and I don't know why.
TASK [Gathering Facts] *************************************************************************************************************************************** fatal: [site.example.com]: FAILED! => {"failed": true, "msg": "The field 'remote_user' has an invalid value, which includes an undefined variable. The error was: 'web_user' is undefined\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'web_user' is undefined"}
Can you share any insight about this?
Thanks a lot. This is still working great and saving me a lot of time, but just a note for anyone using Kinsta: Using a site with the recommended structure (conforming to the trellis example project) I had to change project_root: "{{ www_root }}/{{ site }}" to just project_root: "{{ www_root }}". If you want to be picky, delete that line entirely and change the two occurrences of "project_root" to "www_root".
cool..thanks!
Thanks. This works perfectly
Man! Thanks for having this, this made everything complete!