diff --git a/playbooks/openafs-rpm-package-build/pre.yaml b/playbooks/openafs-rpm-package-build/pre.yaml new file mode 100644 index 00000000..96ceb536 --- /dev/null +++ b/playbooks/openafs-rpm-package-build/pre.yaml @@ -0,0 +1,47 @@ +# Update system packages and reboot to ensure we're running a kernel that +# matches what available headers in package mirrors. +- name: Update and reboot nodes before installing openafs + hosts: all + tasks: + - name: DNF Update + dnf: + name: "*" + state: latest # noqa: package-latest + become: yes + + - name: Hacky script to force default kernel to new version + shell: | + set -x + # Get the newest kernel version in /boot + NEWEST=$(ls /boot | grep vmlinuz | sort -V -r | head -1) + OLDEST=$(ls /boot | grep vmlinuz | sort -V | head -1) + grubby --set-default=/boot/$NEWEST + if [[ "$OLDEST" != "$NEWEST" ]] ; then + grubby --remove-kernel=/boot/$OLDEST + fi + args: + executable: /usr/bin/bash + become: yes + + - name: Tell grub about the new kernel setup + command: grub2-mkconfig --update-bls-cmdline -o /boot/grub2/grub.cfg + become: yes + + - name: Record running kernel version + command: uname -a + + - name: Reboot + reboot: + reboot_timeout: 900 + become: yes + + - name: Restart zuul console log daemon + include_role: + name: start-zuul-console + + - name: Record running kernel version + command: uname -a + + - name: Pause for a bit to ensure system is up post reboot + pause: + seconds: 60 diff --git a/roles/openafs-rpm-package-build/tasks/main.yaml b/roles/openafs-rpm-package-build/tasks/main.yaml index 2aa9d0e7..f2fc82ca 100644 --- a/roles/openafs-rpm-package-build/tasks/main.yaml +++ b/roles/openafs-rpm-package-build/tasks/main.yaml @@ -1,5 +1,5 @@ - name: Install prereqs - package: + dnf: name: - rpm-build - kernel-devel @@ -7,14 +7,14 @@ become: yes - name: Install centos 8/9 common packages - package: + dnf: name: - elfutils-devel become: yes when: ansible_distribution_major_version is version('8', '>=') - name: Install centos9 packages - package: + dnf: name: - perl-File-Copy become: yes diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 47678550..6429716c 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -1356,6 +1356,7 @@ There are no official builds for AFS on Centos, hence we build our own and publish them to tarballs.openstack.org for our centos hosts that need access to the mirror to consume. + pre-run: playbooks/openafs-rpm-package-build/pre.yaml run: playbooks/openafs-rpm-package-build/run.yaml files: &afs-files - playbooks/openafs-rpm-package-build