80 lines
2.2 KiB
YAML
80 lines
2.2 KiB
YAML
- name: discover grub-install command
|
|
find:
|
|
paths:
|
|
- "{{ tmp_rootfs_mount }}/usr/sbin"
|
|
pattern: "grub*-install"
|
|
register: grub_install_found
|
|
|
|
- name: discover grub-mkconfig command
|
|
find:
|
|
paths:
|
|
- "{{ tmp_rootfs_mount }}/usr/sbin"
|
|
pattern: "grub*-mkconfig"
|
|
register: grub_config_found
|
|
|
|
- name: find grub config file
|
|
find:
|
|
paths:
|
|
- "{{ tmp_rootfs_mount }}/boot"
|
|
pattern: "grub*.cfg"
|
|
recurse: yes
|
|
register: grub_file_found
|
|
|
|
- name: test if all needed grub files were found
|
|
assert:
|
|
that:
|
|
- "{{ grub_install_found.matched > 0 }}"
|
|
- "{{ grub_config_found.matched > 0 }}"
|
|
- "{{ grub_file_found.matched > 0 }}"
|
|
|
|
- name: set paths to grub commands
|
|
set_fact:
|
|
grub_install_cmd: "{{ grub_install_found.files[0].path | replace(tmp_rootfs_mount,'') }}"
|
|
grub_config_cmd: "{{ grub_config_found.files[0].path | replace(tmp_rootfs_mount,'') }}"
|
|
grub_config_file: "{{ grub_file_found.files[0].path | replace(tmp_rootfs_mount,'') }}"
|
|
|
|
- name: make dirs for chroot
|
|
become: yes
|
|
file:
|
|
state: directory
|
|
path: "{{ tmp_rootfs_mount }}/{{ item }}"
|
|
with_items:
|
|
- dev
|
|
- sys
|
|
- proc
|
|
|
|
- name: mount dirs for chroot
|
|
become: yes
|
|
command: mount -o bind /{{ item }} {{ tmp_rootfs_mount }}/{{ item }}
|
|
with_items:
|
|
- dev
|
|
- sys
|
|
- proc
|
|
|
|
- block:
|
|
- name: get grub version string
|
|
become: yes
|
|
command: chroot {{ tmp_rootfs_mount }} /bin/sh -c '{{ grub_install_cmd }} --version'
|
|
register: grub_version_string
|
|
- name: install grub to disk
|
|
become: yes
|
|
command: chroot {{ tmp_rootfs_mount }} /bin/sh -c '{{ grub_install_cmd }} /dev/{{ ansible_devices | first }}'
|
|
- name: preload lvm modules for grub2
|
|
become: yes
|
|
lineinfile:
|
|
dest: "{{ tmp_rootfs_mount }}/etc/default/grub"
|
|
state: present
|
|
line: GRUB_PRELOAD_MODULES=lvm
|
|
when: "{{ grub_version_string.stdout.split() | last | first == '2' }}"
|
|
- name: create grub config
|
|
become: yes
|
|
command: chroot {{ tmp_rootfs_mount }} /bin/sh -c '{{ grub_config_cmd }} -o {{ grub_config_file }}'
|
|
always:
|
|
- name: unmount dirs for chroot
|
|
become: yes
|
|
command: umount {{ tmp_rootfs_mount }}/{{ item }}
|
|
with_items:
|
|
- dev
|
|
- sys
|
|
- proc
|