92 lines
2.9 KiB
Text
92 lines
2.9 KiB
Text
include:
|
|
- .base
|
|
|
|
system_bootloader_pkgs:
|
|
pkg.installed:
|
|
- pkgs:
|
|
- grub
|
|
- grub-efi
|
|
- mkinitfs
|
|
- mkinitfs-doc
|
|
- efibootmgr
|
|
|
|
{% set CURRENT_SUBVOLUME_TIMESTAMP = salt['cmd.shell']('CURRENT_SUBVOLUME=$(LC_ALL=C btrfs sub show / | LC_ALL=C grep Name: | tr -d \'[:space:]\'); TIMESTAMP_FORMAT=\'[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}_[[:digit:]]{2}-[[:digit:]]{2}-[[:digit:]]{2}\'; echo "$CURRENT_SUBVOLUME" | grep -Eo "$TIMESTAMP_FORMAT"') %}
|
|
{% set CURRENT_SUBVOLUME_TIMESTAMP_HUMAN = salt['cmd.shell']('CURRENT_SUBVOLUME_TIMESTAMP=\'' + CURRENT_SUBVOLUME_TIMESTAMP + '\'; echo "${CURRENT_SUBVOLUME_TIMESTAMP:0:10} ${CURRENT_SUBVOLUME_TIMESTAMP:11:2}:${CURRENT_SUBVOLUME_TIMESTAMP:14:2}"') %}
|
|
{% set KERNEL_VERSION = salt['cmd.shell']('uname -r') %}
|
|
|
|
system_bootloader_install:
|
|
cmd.run:
|
|
- name: "grub-install --target=x86_64-efi --efi-directory=/efi --data-directory=/efi --bootloader-id=alpine-{{ CURRENT_SUBVOLUME_TIMESTAMP }}"
|
|
- require:
|
|
- system_bootloader_pkgs
|
|
|
|
system_bootloader_grub_dir:
|
|
file.directory:
|
|
- name: /efi/grub
|
|
- makedirs: true
|
|
- user: root
|
|
- group: root
|
|
- mode: '0755'
|
|
- require:
|
|
- system_bootloader_pkgs
|
|
- system_bootloader_install
|
|
|
|
system_bootloader_mkinitfs_conf:
|
|
file.keyvalue:
|
|
- name: /etc/mkinitfs/mkinitfs.conf
|
|
- key_values:
|
|
features: '"ata base cdrom ext4 btrfs keymap kms mmc nvme raid scsi usb virtio"'
|
|
- separator: '='
|
|
- uncomment: '# '
|
|
- key_ignore_case: false
|
|
- value_ignore_case: false
|
|
- append_if_not_found: true
|
|
- require:
|
|
- system_base_pkgs
|
|
- system_bootloader_pkgs
|
|
|
|
system_bootloader_os-release:
|
|
file.keyvalue:
|
|
- name: /etc/os-release
|
|
- key_values:
|
|
VERSION_ID: '"Timestamp: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN }} | Kernel: {{ KERNEL_VERSION }}"'
|
|
- separator: '='
|
|
- uncomment: '# '
|
|
- key_ignore_case: False
|
|
- append_if_not_found: True
|
|
|
|
system_bootloader_remove_default_menuentry:
|
|
file.absent:
|
|
- name: /etc/grub.d/10_linux
|
|
- require:
|
|
- system_bootloader_install
|
|
|
|
system_bootloader_menuentry:
|
|
file.managed:
|
|
- name: /etc/grub.d/10_noveria
|
|
- source: salt://{{ tpldir }}/files/bootloader_menuentry
|
|
- template: jinja
|
|
- context:
|
|
CURRENT_SUBVOLUME_TIMESTAMP_HUMAN: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN }}
|
|
CURRENT_SUBVOLUME_TIMESTAMP: {{ CURRENT_SUBVOLUME_TIMESTAMP }}
|
|
- mode: '0755'
|
|
- require:
|
|
- system_base_pkgs
|
|
- system_bootloader_pkgs
|
|
- system_bootloader_remove_default_menuentry
|
|
|
|
system_bootloader_menuentry_prepend_shebang:
|
|
file.prepend:
|
|
- name: /etc/grub.d/10_noveria
|
|
- text: "#!/bin/sh"
|
|
- require:
|
|
- system_bootloader_menuentry
|
|
|
|
system_bootloader_config:
|
|
cmd.run:
|
|
- name: 'grub-mkconfig -o /efi/grub/grub.cfg'
|
|
- require:
|
|
- system_bootloader_pkgs
|
|
- system_bootloader_install
|
|
- system_bootloader_grub_dir
|
|
- system_bootloader_menuentry_prepend_shebang
|