diff --git a/roles/grub/README.md b/roles/grub/README.md new file mode 100644 index 000000000..1b5b983 --- /dev/null +++ b/roles/grub/README.md @@ -0,0 +1,6 @@ +grub +========= + +Ansible Role for misc. `GRUB` bootloader opinions. Notably: + +- `GRUB_RECORDFAIL_TIMEOUT`: prevents requiring human intervention when the _last_ boot failed. diff --git a/roles/grub/defaults/main.yml b/roles/grub/defaults/main.yml new file mode 100644 index 000000000..4c0629d --- /dev/null +++ b/roles/grub/defaults/main.yml @@ -0,0 +1,10 @@ +--- +# defaults file for grub +# +grub_cfgs: + debian: /etc/default/grub + redhat: /etc/sysconfig/grub # likely a symlink, stub just in case + +grub_updatecmd: + debian: update-grub + redhat: grub2-mkconfig -o /etc/grub2.cfg diff --git a/roles/grub/handlers/main.yml b/roles/grub/handlers/main.yml new file mode 100644 index 000000000..9e6c769 --- /dev/null +++ b/roles/grub/handlers/main.yml @@ -0,0 +1,9 @@ +--- +# handlers file for grub +# +- name: Generate Config + ansible.builtin.command: + cmd: "{{ grub_updatecmd[ansible_os_family | lower] }}" + become: true + changed_when: true # handler, assume this cmd is realizing changes/making more + listen: update_grubcfg diff --git a/roles/grub/tasks/debian.yml b/roles/grub/tasks/debian.yml new file mode 100644 index 000000000..9405cea --- /dev/null +++ b/roles/grub/tasks/debian.yml @@ -0,0 +1,9 @@ +--- + +- name: Ensure 'GRUB_RECORDFAIL_TIMEOUT' + ansible.builtin.lineinfile: + path: "{{ grub_cfgs[ansible_os_family | lower] }}" + regexp: '^GRUB_RECORDFAIL_TIMEOUT' + line: 'GRUB_RECORDFAIL_TIMEOUT=5' + become: true + notify: update_grubcfg diff --git a/roles/grub/tasks/main.yml b/roles/grub/tasks/main.yml new file mode 100644 index 000000000..6203d6b --- /dev/null +++ b/roles/grub/tasks/main.yml @@ -0,0 +1,6 @@ +--- +# tasks file for grub +# +- name: Include tasks by OS family + ansible.builtin.include_tasks: + file: "{{ ansible_os_family | lower }}.yml" diff --git a/roles/grub/tasks/redhat.yml b/roles/grub/tasks/redhat.yml new file mode 100644 index 000000000..ed97d53 --- /dev/null +++ b/roles/grub/tasks/redhat.yml @@ -0,0 +1 @@ +--- diff --git a/roles/grub/vars/main.yml b/roles/grub/vars/main.yml new file mode 100644 index 000000000..0fa64ec --- /dev/null +++ b/roles/grub/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for grub