diff --git a/roles/base/defaults/main.yml b/roles/base/defaults/main.yml index 1badc57..f1ae7cc 100644 --- a/roles/base/defaults/main.yml +++ b/roles/base/defaults/main.yml @@ -1,5 +1,5 @@ --- -grub_cmdline: "console=tty0 console=ttyS{{ grub.serial_console[cluster_hardware].console }},115200" +grub_cmdline: "console=tty0 console=ttyS{{ grub.serial_console[cluster_hardware].console }},115200 plymouth.ignore-serial-consoles splash" grub_serial: "serial --unit={{ grub.serial_console[cluster_hardware].console }} --speed=115200" deploy_username: "deploy" diff --git a/roles/base/files/usr/share/grub-pvc/background.png b/roles/base/files/usr/share/grub-pvc/background.png new file mode 100644 index 0000000..0be35ee Binary files /dev/null and b/roles/base/files/usr/share/grub-pvc/background.png differ diff --git a/roles/base/files/usr/share/grub-pvc/background.xcf b/roles/base/files/usr/share/grub-pvc/background.xcf new file mode 100644 index 0000000..ce0d70c Binary files /dev/null and b/roles/base/files/usr/share/grub-pvc/background.xcf differ diff --git a/roles/base/files/usr/share/grub-pvc/theme.txt b/roles/base/files/usr/share/grub-pvc/theme.txt new file mode 100644 index 0000000..6b5b5f2 --- /dev/null +++ b/roles/base/files/usr/share/grub-pvc/theme.txt @@ -0,0 +1,25 @@ +title-text: "" +desktop-image: "/usr/share/grub-pvc/background.png" +terminal-border: "360" +terminal-left: "360" +terminal-top: "300" +terminal-width: "256" +terminal-height: "192" ++ boot_menu { + top = 40% + left = 24% + width = 60% + height = 20% + item_color = "#AAAAAA" + selected_item_color = "#FFFFFF" + item_spacing = 1 +} ++ progress_bar { + id = "__timeout__" + top = 90% + left = 30% + width = 40% + height = 1 + bg_color = "#000000" + fg_color = "#4444DD" +} diff --git a/roles/base/files/usr/share/plymouth/themes/pvc.tar b/roles/base/files/usr/share/plymouth/themes/pvc.tar new file mode 100644 index 0000000..9dc9529 Binary files /dev/null and b/roles/base/files/usr/share/plymouth/themes/pvc.tar differ diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index fb9963b..263d1b8 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -16,16 +16,18 @@ tags: always # -# Set codename +# Set Debian details # -- name: set release codename (with ansible_distribution_release) +- name: set Debian details (with ansible_distribution_*) set_fact: + debian_version: "{{ ansible_distribution_major_version }}" debian_codename: "{{ ansible_distribution_release }}" when: ansible_distribution_release is defined tags: always -- name: set release codename (with ansible_lsb) +- name: set Debian details (with ansible_lsb) set_fact: + debian_version: "{{ ansible_lsb.major_version }}" debian_codename: "{{ ansible_lsb.codename }}" when: ansible_lsb.codename is defined tags: always @@ -231,6 +233,8 @@ - haveged - ipmitool - grub-efi + - plymouth + - plymouth-themes - linux-image-amd64 - linux-headers-amd64 tags: base-packages @@ -326,6 +330,50 @@ - { src: "etc/dhcp/dhclient-enter-hooks.d/noresolv.j2", dest: "/etc/dhcp/dhclient-enter-hooks.d/noresolv" } tags: base-dns +# GRUB bootloader +- name: create PVC grub directory + file: + state: directory + dest: "/usr/share/grub-pvc" + +- name: install PVC grub style + copy: + src: "usr/share/grub-pvc/{{ item }}" + dest: "/usr/share/grub-pvc/{{ item }}" + with_items: + - background.png + - theme.txt + +- name: install GRUB configuration + template: + src: etc/default/grub.j2 + dest: /etc/default/grub + notify: + - update grub + +# Plymouth theme +- name: install PVC Plymouth theme archive + unarchive: + src: "usr/share/plymouth/themes/pvc.tar" + dest: "/usr/share/plymouth/themes/" + creates: "/usr/share/plymouth/themes/pvc" + owner: root + group: root + +- name: install PVC Plymouth background file + copy: + src: "usr/share/grub-pvc/background.png" + dest: "/usr/share/plymouth/themes/pvc/background-tile.png" + +- name: set PVC Plymouth theme as the default + command: plymouth-set-default-theme -R pvc + +# issue prompt +- name: install PVC /etc/issue file + template: + src: etc/issue.j2 + dest: /etc/issue + # syslog - name: install rsyslog and logrotate configs template: @@ -573,14 +621,6 @@ - "pvc" tags: base-ipmi -# GRUB bootloader -- name: install GRUB configuration - template: - src: etc/default/grub.j2 - dest: /etc/default/grub - notify: - - update grub - # # Configure users # diff --git a/roles/base/templates/etc/default/grub.j2 b/roles/base/templates/etc/default/grub.j2 index a01cc1c..d119a2c 100644 --- a/roles/base/templates/etc/default/grub.j2 +++ b/roles/base/templates/etc/default/grub.j2 @@ -7,3 +7,4 @@ GRUB_CMDLINE_LINUX="{{ grub_cmdline }}" GRUB_TERMINAL_INPUT="console serial" GRUB_TERMINAL_OUTPUT="gfxterm serial" GRUB_SERIAL_COMMAND="{{ grub_serial }}" +GRUB_THEME="/usr/share/grub-pvc/theme.txt" diff --git a/roles/base/templates/etc/issue.j2 b/roles/base/templates/etc/issue.j2 new file mode 100644 index 0000000..e7f1f4f --- /dev/null +++ b/roles/base/templates/etc/issue.j2 @@ -0,0 +1,4 @@ +Parallel Virtual Cluster node \n \l + +Base system: Debian GNU/Linux {{ debian_version }} "{{ debian_codename }}" +