From e94fcdc2dfd0b3f6774ed7eead3be443a517395a Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 8 Oct 2018 19:31:59 +0200 Subject: [PATCH] Externalize role --- files/usr/local/sbin/update-grub | 30 ++++++++++++++++++++++++++++++ tasks/main.yml | 13 +++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 files/usr/local/sbin/update-grub create mode 100644 tasks/main.yml diff --git a/files/usr/local/sbin/update-grub b/files/usr/local/sbin/update-grub new file mode 100755 index 0000000..adf596e --- /dev/null +++ b/files/usr/local/sbin/update-grub @@ -0,0 +1,30 @@ +#!/bin/sh + +. /etc/os-release +if [ -d /sys/firmware/efi -a -e /boot/efi/EFI/centos/grub.cfg ]; then + CONFDIR=/boot/efi/EFI/centos +else + CONFDIR=/boot/grub2 +fi +#grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 | grep -Ev '(with debugging$|-rescue-)' | grep ^"$NAME" | sort -n | tail -n 1 +# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 | grep -Ev '(with debugging$|-rescue-)' | head -n1 +# grub2-set-default "CentOS Linux (4.7.2-1.el7.elrepo.x86_64) 7 (Core)" +# Contrôle : grub2-editenv list +KERNLIST="$(ls -1 /boot/vmlinuz-* | grep -v rescue | sed 's|/boot/vmlinuz-\([.0-9]*\)-.*|\1|')" +LASTMAJKERNEL="$(echo $KERNLIST | sed 's/ /\n/g' | cut -d. -f1 | sort -n -u | while read i; do + echo $KERNLIST | sed 's/ /\n/g' | grep ^$i | cut -d. -f1-2 | sort -n -u -k2 -t. +done | while read j; do + echo $KERNLIST | sed 's/ /\n/g' | grep ^$j | sort -n -u -k3 -t. +done | tail -n 1)" + +KERNLIST="$(ls -1 /boot/vmlinuz-* | grep -v rescue | sed 's|/boot/vmlinuz-'${LASTMAJKERNEL}'-\([.0-9]*\).*|\1|')" +LASTKERNEL="${LASTMAJKERNEL}-$(echo $KERNLIST | sed -e 's/ /\n/g' -e 's/.$//' | cut -d. -f1 | sort -n -u | while read i; do + echo $KERNLIST | sed 's/ /\n/g' | grep ^$i | cut -d. -f1-2 | sort -n -u -k2 -t. +done | while read j; do + echo $KERNLIST | sed 's/ /\n/g' | grep ^$j | sort -n -u -k3 -t. +done | tail -n 1)" + +grub2-set-default "$(grep "^menuentry" "${CONFDIR}"/grub.cfg | cut -d "'" -f2 | grep -Ev '(with debugging$|-rescue-)' | grep ^"$NAME" | grep $LASTKERNEL | sort -n | tail -n 1)" + +grub2-mkconfig -o "${CONFDIR}"/grub.cfg + diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..7a78bd2 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Install script update-grub + copy: src=files/usr/local/sbin/update-grub dest=/usr/local/sbin/update-grub owner=root group=root mode=0755 + when: ansible_architecture == "x86_64" or ansible_architecture == "i386" +- stat: path=/etc/dracut.conf.d/02-rescue.conf + register: st +- name: Copy dracut's rescue config file + copy: src=/usr/lib/dracut/dracut.conf.d/02-rescue.conf dest=/etc/dracut.conf.d/02-rescue.conf remote_src=yes + when: not st.stat.exists +- name: Disable dracut's recue img + lineinfile: dest=/etc/dracut.conf.d/02-rescue.conf regexp="^dracut_rescue_image" line="dracut_rescue_image=no" state=present +# Nécessite un handler pour regénérer l'initramfs +