diff --git a/playbooks/tasks/include/post-upgrade/borg-clients.yml b/playbooks/tasks/include/post-upgrade/borg-clients.yml new file mode 100644 index 0000000000000000000000000000000000000000..883fd50748370e1c7c9ee2e7ba626ad2aeb5d5e2 --- /dev/null +++ b/playbooks/tasks/include/post-upgrade/borg-clients.yml @@ -0,0 +1,7 @@ +- name: Check if /backup exists + stat: path=/backup + register: backup_mountdir + +- name: Abort reboot when borg backup is running + meta: end_host + when: backup_mountdir.stat.exists diff --git a/playbooks/tasks/include/post-upgrade/build.archlinux.org.yml b/playbooks/tasks/include/post-upgrade/build.archlinux.org.yml new file mode 100644 index 0000000000000000000000000000000000000000..0277c0971ac5b6be47d4516706fd7534410930cc --- /dev/null +++ b/playbooks/tasks/include/post-upgrade/build.archlinux.org.yml @@ -0,0 +1,8 @@ +- name: List build-related processes + command: pgrep -x 'mkarchroot|makechrootpkg|systemd-nspawn' + register: pgrep + ignore_errors: true + +- name: Abort reboot with running builds + meta: end_host + when: pgrep is succeeded diff --git a/playbooks/tasks/include/post-upgrade/gemini.archlinux.org.yml b/playbooks/tasks/include/post-upgrade/gemini.archlinux.org.yml new file mode 100644 index 0000000000000000000000000000000000000000..d3d6ce08a3efbb74bfb05894d219b7b68ce97910 --- /dev/null +++ b/playbooks/tasks/include/post-upgrade/gemini.archlinux.org.yml @@ -0,0 +1,17 @@ +- name: List logged on users + command: who + register: who + +- name: Abort reboot with logged on users + meta: end_host + when: + - who is changed + - who.stdout_lines|length > 1 + +- name: Stop arch-svntogit.timer + service: name=arch-svntogit.timer state=stopped + +- name: Wait for svntogit to finish + wait_for: + path: /srv/svntogit/update-repos.sh.lock + state: absent diff --git a/playbooks/tasks/include/upgrade-server.yml b/playbooks/tasks/include/upgrade-server.yml index f29270dd1c26a038e212e3d2f6772f069ee7be34..3efd2aaf9400c40f7e8099e1a334a467cb35705c 100644 --- a/playbooks/tasks/include/upgrade-server.yml +++ b/playbooks/tasks/include/upgrade-server.yml @@ -13,50 +13,17 @@ meta: end_host when: pacman_upgrade is not changed -- name: Check for running builds - block: - - name: List build-related processes - command: pgrep -x 'mkarchroot|makechrootpkg|systemd-nspawn' - register: pgrep - ignore_errors: true - - - name: Abort reboot with running builds - meta: end_host - when: pgrep is succeeded - when: "'buildservers' in group_names" - - -- name: Check for active borg backup jobs - block: - - name: Check if /backup exists - stat: path=/backup - register: backup_mountdir - - - name: Abort reboot when borg backup is running - meta: end_host - when: backup_mountdir.stat.exists +- name: Run borg client post-upgrade tasks + include_tasks: include/post-upgrade/borg-clients.yml when: "'borg_clients' in group_names" -- name: Gemini pre-reboot checks - block: - - name: List logged on users - command: who - register: who - - - name: Abort reboot with logged on users - meta: end_host - when: - - who is changed - - who.stdout_lines|length > 1 - - - name: Stop arch-svntogit.timer - service: name=arch-svntogit.timer state=stopped +- name: Check for host-specific post-upgrade tasks + local_action: stat path=include/post-upgrade/{{ inventory_hostname }}.yml + register: post_upgrade_tasks - - name: Wait for svntogit to finish - wait_for: - path: /srv/svntogit/update-repos.sh.lock - state: absent - when: inventory_hostname == "gemini.archlinux.org" +- name: Run host-specific post-upgrade tasks + include_tasks: "{{ post_upgrade_tasks.stat.path }}" + when: post_upgrade_tasks.stat.exists - name: Reboot reboot: