-
-
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!