diff --git a/handlers/main.yml b/handlers/main.yml index 381a97f..ebfe7a6 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -45,3 +45,5 @@ until: _restart is success retries: 5 delay: 2 + delegate_to: "{{ groups['repo_all'][0] }}" + run_once: true diff --git a/tasks/repo_post_install.yml b/tasks/repo_post_install.yml index 7022468..cd0b191 100644 --- a/tasks/repo_post_install.yml +++ b/tasks/repo_post_install.yml @@ -53,6 +53,7 @@ dest: "/etc/nginx/sites-available/openstack-slushee.vhost" notify: - reload nginx + - reload lsyncd - name: Drop rsyncd configuration file template: diff --git a/tasks/repo_pre_install.yml b/tasks/repo_pre_install.yml index c1222a6..15fdefa 100644 --- a/tasks/repo_pre_install.yml +++ b/tasks/repo_pre_install.yml @@ -50,6 +50,15 @@ - path: "/var/log/nginx" mode: "0775" +- name: Sync file for master repo node + file: + path: "{{ repo_service_home_folder }}/repo/repo_sync_complete" + state: "touch" + owner: "{{ repo_service_user_name }}" + group: "{{ repo_service_group_name }}" + when: inventory_hostname == groups['repo_all'][0] + changed_when: False + - name: Drop repo pre/post command script template: src: repo_prepost_cmd.sh.j2 diff --git a/templates/lsyncd.lua.j2 b/templates/lsyncd.lua.j2 index 5e580b4..032c1d6 100644 --- a/templates/lsyncd.lua.j2 +++ b/templates/lsyncd.lua.j2 @@ -618,7 +618,7 @@ sync { rsync, source = "{{ repo_service_home_folder }}/repo", target = "{{ hostvars[node]['ansible_host'] }}:{{ repo_service_home_folder }}/repo", - exclude = "{{ repo_build_global_links_dirname }}", + exclude = {"{{ repo_build_global_links_dirname }}","/repo_sync_complete"}, rsync = { compress = true, acls = true, diff --git a/templates/repo_prepost_cmd.sh.j2 b/templates/repo_prepost_cmd.sh.j2 index 2b49ce7..9a1a69f 100644 --- a/templates/repo_prepost_cmd.sh.j2 +++ b/templates/repo_prepost_cmd.sh.j2 @@ -6,10 +6,12 @@ case $CMD in pre-www) rm /etc/nginx/sites-enabled/openstack-slushee.vhost systemctl reload nginx + rm -f {{ repo_service_home_folder }}/repo/repo_sync_complete ;; post-www) ln -s /etc/nginx/sites-available/openstack-slushee.vhost /etc/nginx/sites-enabled/openstack-slushee.vhost systemctl reload nginx + touch {{ repo_service_home_folder }}/repo/repo_sync_complete ;; *) echo "Unknown command."