Sync repos to correct location on repo master

The repo container sync task synchronises the following directories to a
wrong location.

pools
-----
Wrongly created dir on target: /var/www/repo/{{ repo_build_os_distro_version }}
Fixed dir on target: /var/www/repo/pools/{{ repo_build_os_distro_version }}

As the links and other directories are synced successfuly, they point
to invalid locations which will cause the repo build on the existing
repo master to fail.

venvs
-----
Wrongly created dir on target: /var/www/repo/{{ repo_build_os_distro_version }}
Fixed dir on target: /var/www/repo/venvs/{{ repo_build_release_tag }}/{{ repo_build_os_distro_version }}

os-releases
-----------
Wrongly created dir on target: /var/www/repo/{{ repo_build_os_distro_version }}
Fixed dir on target: /var/www/repo/os-releases/{{ repo_build_release_tag }}/{{ repo_build_os_distro_version }}

The patch achieves this by creating the directory befor rsync starts.
Using rsyncs relative option and synchronizing to the remotes root
/ dir does not work due to permissions on /var/.

See this blog post:
http://www.schwertly.com/2013/07/forcing-rsync-to-create-a-remote-path-using-rsync-path/
or the man pages of "rsync":
https://linux.die.net/man/1/rsync

[1] https://bugs.launchpad.net/openstack-ansible/+bug/1707630

Change-Id: I947ffc815e1574fe533d2a9ca6df6b2a991cff24
Closes-Bug: #1707630
(cherry picked from commit 18b165c5dc)
This commit is contained in:
Andreas Scheuring 2017-07-31 13:35:35 +02:00 committed by Jesse Pretorius (odyssey4me)
parent c17379ef82
commit aba8910567
1 changed files with 1 additions and 0 deletions

View File

@ -21,6 +21,7 @@
--delay-updates -F --compress --archive
--rsh 'ssh -l {{ repo_build_service_user_name }} -o stricthostkeychecking=no'
--out-format='<<CHANGED>>%i %n%L'
--rsync-path='mkdir -p {{ item.dest }} && rsync'
{{ item.src }}
{{ repo_build_service_user_name }}@{{ hostvars[groups['repo_all'][0]]['ansible_host'] }}:{{ item.dest }}
with_items: