From ae4fb6f43c2205702e441e68c1a155b52e3b6606 Mon Sep 17 00:00:00 2001 From: Sandwich Date: Sat, 27 Dec 2025 23:52:06 +0100 Subject: [PATCH] Condition LUKS and guest tools in bootstrap vars --- roles/bootstrap/tasks/almalinux.yml | 6 +- roles/bootstrap/tasks/archlinux.yml | 6 +- roles/bootstrap/tasks/debian.yml | 5 +- roles/bootstrap/tasks/fedora.yml | 6 +- roles/bootstrap/tasks/main.yml | 10 - roles/bootstrap/tasks/rhel.yml | 6 +- roles/bootstrap/tasks/rocky.yml | 6 +- roles/bootstrap/tasks/ubuntu.yml | 5 +- roles/bootstrap/vars/main.yml | 1081 ++++++++++++++++----------- 9 files changed, 640 insertions(+), 491 deletions(-) diff --git a/roles/bootstrap/tasks/almalinux.yml b/roles/bootstrap/tasks/almalinux.yml index b9ace90..9df1c77 100644 --- a/roles/bootstrap/tasks/almalinux.yml +++ b/roles/bootstrap/tasks/almalinux.yml @@ -4,11 +4,7 @@ bootstrap_alma_extra: >- {{ ( - ( - lookup('vars', bootstrap_var_key) - | difference(bootstrap_guest_agent_remove_packages) - ) - + bootstrap_guest_agent_packages + lookup('vars', bootstrap_var_key) ) | join(' ') }} diff --git a/roles/bootstrap/tasks/archlinux.yml b/roles/bootstrap/tasks/archlinux.yml index e1e4345..2702727 100644 --- a/roles/bootstrap/tasks/archlinux.yml +++ b/roles/bootstrap/tasks/archlinux.yml @@ -3,11 +3,7 @@ vars: bootstrap_archlinux_packages: >- {{ - ( - lookup('vars', bootstrap_var_key) - | difference(bootstrap_guest_agent_remove_packages) - ) - + bootstrap_guest_agent_packages + lookup('vars', bootstrap_var_key) }} ansible.builtin.command: >- pacstrap /mnt {{ bootstrap_archlinux_packages | join(' ') }} --asexplicit diff --git a/roles/bootstrap/tasks/debian.yml b/roles/bootstrap/tasks/debian.yml index e77db3a..c3865f3 100644 --- a/roles/bootstrap/tasks/debian.yml +++ b/roles/bootstrap/tasks/debian.yml @@ -9,12 +9,11 @@ }} bootstrap_debian_base_list: "{{ lookup('vars', bootstrap_var_key).base | default([]) }}" bootstrap_debian_extra_list: "{{ lookup('vars', bootstrap_var_key).extra | default([]) }}" - bootstrap_debian_base: "{{ (bootstrap_debian_base_list | difference(bootstrap_guest_agent_remove_packages)) | join(',') }}" + bootstrap_debian_base: "{{ bootstrap_debian_base_list | join(',') }}" bootstrap_debian_extra: >- {{ ( - (bootstrap_debian_extra_list | difference(bootstrap_guest_agent_remove_packages)) - + bootstrap_guest_agent_packages + bootstrap_debian_extra_list ) | join(' ') }} diff --git a/roles/bootstrap/tasks/fedora.yml b/roles/bootstrap/tasks/fedora.yml index 07c7068..1a76c5f 100644 --- a/roles/bootstrap/tasks/fedora.yml +++ b/roles/bootstrap/tasks/fedora.yml @@ -4,11 +4,7 @@ bootstrap_fedora_extra: >- {{ ( - ( - lookup('vars', bootstrap_var_key) - | difference(bootstrap_guest_agent_remove_packages) - ) - + bootstrap_guest_agent_packages + lookup('vars', bootstrap_var_key) ) | join(' ') }} diff --git a/roles/bootstrap/tasks/main.yml b/roles/bootstrap/tasks/main.yml index 997e0e9..ea3e055 100644 --- a/roles/bootstrap/tasks/main.yml +++ b/roles/bootstrap/tasks/main.yml @@ -3,16 +3,6 @@ vars: bootstrap_os_key: "{{ os | lower }}" bootstrap_var_key: "{{ 'bootstrap_' + (os | lower | replace('-', '_')) }}" - bootstrap_hypervisor_key: "{{ hypervisor | default('none') | lower }}" - bootstrap_guest_agent_packages: >- - {{ - ['qemu-guest-agent'] if bootstrap_hypervisor_key in ['libvirt', 'proxmox'] - else ['open-vm-tools'] if bootstrap_hypervisor_key == 'vmware' - else [] - }} - bootstrap_guest_agent_remove_packages: - - open-vm-tools - - qemu-guest-agent block: - name: Include AlmaLinux bootstrap tasks when: bootstrap_os_key == 'almalinux' diff --git a/roles/bootstrap/tasks/rhel.yml b/roles/bootstrap/tasks/rhel.yml index 916ce00..1452a08 100644 --- a/roles/bootstrap/tasks/rhel.yml +++ b/roles/bootstrap/tasks/rhel.yml @@ -56,11 +56,7 @@ bootstrap_rhel_extra: >- {{ ( - ( - lookup('vars', bootstrap_var_key) - | difference(bootstrap_guest_agent_remove_packages) - ) - + bootstrap_guest_agent_packages + lookup('vars', bootstrap_var_key) ) | join(' ') }} diff --git a/roles/bootstrap/tasks/rocky.yml b/roles/bootstrap/tasks/rocky.yml index 82bc18e..4c25610 100644 --- a/roles/bootstrap/tasks/rocky.yml +++ b/roles/bootstrap/tasks/rocky.yml @@ -4,11 +4,7 @@ bootstrap_rocky_extra: >- {{ ( - ( - lookup('vars', bootstrap_var_key) - | difference(bootstrap_guest_agent_remove_packages) - ) - + bootstrap_guest_agent_packages + lookup('vars', bootstrap_var_key) ) | join(' ') }} diff --git a/roles/bootstrap/tasks/ubuntu.yml b/roles/bootstrap/tasks/ubuntu.yml index 44bb683..9f16b07 100644 --- a/roles/bootstrap/tasks/ubuntu.yml +++ b/roles/bootstrap/tasks/ubuntu.yml @@ -5,12 +5,11 @@ {{ 'plucky' if bootstrap_os_key == 'ubuntu' else 'noble' }} bootstrap_ubuntu_base_list: "{{ lookup('vars', bootstrap_var_key).base | default([]) }}" bootstrap_ubuntu_extra_list: "{{ lookup('vars', bootstrap_var_key).extra | default([]) }}" - bootstrap_ubuntu_base: "{{ (bootstrap_ubuntu_base_list | difference(bootstrap_guest_agent_remove_packages)) | join(',') }}" + bootstrap_ubuntu_base: "{{ bootstrap_ubuntu_base_list | join(',') }}" bootstrap_ubuntu_extra: >- {{ ( - (bootstrap_ubuntu_extra_list | difference(bootstrap_guest_agent_remove_packages)) - + bootstrap_guest_agent_packages + bootstrap_ubuntu_extra_list ) | join(' ') }} diff --git a/roles/bootstrap/vars/main.yml b/roles/bootstrap/vars/main.yml index 1058e0f..90d64ed 100644 --- a/roles/bootstrap/vars/main.yml +++ b/roles/bootstrap/vars/main.yml @@ -1,472 +1,653 @@ --- -bootstrap_almalinux: - - bind-utils - - cryptsetup - - dbus-daemon - - dhcp-client - - efibootmgr - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi - - lrzsz - - lvm2 - - nc - - nfs-utils - - nfsv4-client-utils - - mtr - - ppp - - shim - - tmux - - tpm2-tools - - vim - - wget - - zram-generator - - zstd +bootstrap_almalinux: >- + {{ + [ + 'bind-utils', + 'dbus-daemon', + 'dhcp-client', + 'efibootmgr', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi', + 'lrzsz', + 'lvm2', + 'nc', + 'nfs-utils', + 'nfsv4-client-utils', + 'mtr', + 'ppp', + 'shim', + 'tmux', + 'vim', + 'wget', + 'zram-generator', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_archlinux: - - base - - btrfs-progs - - cronie - - cryptsetup - - dhcpcd - - efibootmgr - - fastfetch - - firewalld - - fish - - fzf - - grub - - htop - - libpwquality - - linux - - logrotate - - lrzsz - - lsof - - lvm2 - - ncdu - - networkmanager - - nfs-utils - - openssh - - ppp - - prometheus-node-exporter - - python-psycopg2 - - reflector - - rsync - - sudo - - tldr - - tmux - - tpm2-tools - - vim - - wireguard-tools - - zram-generator +bootstrap_archlinux: >- + {{ + [ + 'base', + 'btrfs-progs', + 'cronie', + 'dhcpcd', + 'efibootmgr', + 'fastfetch', + 'firewalld', + 'fish', + 'fzf', + 'grub', + 'htop', + 'libpwquality', + 'linux', + 'logrotate', + 'lrzsz', + 'lsof', + 'lvm2', + 'ncdu', + 'networkmanager', + 'nfs-utils', + 'openssh', + 'ppp', + 'prometheus-node-exporter', + 'python-psycopg2', + 'reflector', + 'rsync', + 'sudo', + 'tldr', + 'tmux', + 'vim', + 'wireguard-tools', + 'zram-generator' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} bootstrap_debian11: - base: - - apparmor-utils - - btrfs-progs - - chrony - - cron - - cryptsetup - - cryptsetup-initramfs - - gnupg - - grub-efi - - grub-efi-amd64-signed - - grub2-common - - linux-image-amd64 - - locales - - logrotate - - lvm2 - - net-tools - - openssh-server - - python3 - - sudo - - xfsprogs + base: >- + {{ + [ + 'apparmor-utils', + 'btrfs-progs', + 'chrony', + 'cron', + 'gnupg', + 'grub-efi', + 'grub-efi-amd64-signed', + 'grub2-common', + 'linux-image-amd64', + 'locales', + 'logrotate', + 'lvm2', + 'net-tools', + 'openssh-server', + 'python3', + 'sudo', + 'xfsprogs' + ] + + ( + (luks_enabled | default(false)) + | ternary(['cryptsetup', 'cryptsetup-initramfs'], []) + ) + }} - extra: - - bat - - curl - - entr - - firewalld - - fish - - fzf - - htop - - jq - - libpam-pwquality - - lrzsz - - mtr - - ncdu - - neofetch - - network-manager - - python-is-python3 - - ripgrep - - rsync - - screen - - software-properties-common - - syslog-ng - - tcpd - - tldr - - tpm2-tools - - vim - - wget - - zstd + extra: >- + {{ + [ + 'bat', + 'curl', + 'entr', + 'firewalld', + 'fish', + 'fzf', + 'htop', + 'jq', + 'libpam-pwquality', + 'lrzsz', + 'mtr', + 'ncdu', + 'neofetch', + 'network-manager', + 'python-is-python3', + 'ripgrep', + 'rsync', + 'screen', + 'software-properties-common', + 'syslog-ng', + 'tcpd', + 'tldr', + 'vim', + 'wget', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} bootstrap_debian12: - base: - - btrfs-progs - - cron - - cryptsetup - - cryptsetup-initramfs - - gnupg - - grub-efi - - grub-efi-amd64-signed - - grub2-common - - linux-image-amd64 - - locales - - logrotate - - lvm2 - - xfsprogs + base: >- + {{ + [ + 'btrfs-progs', + 'cron', + 'gnupg', + 'grub-efi', + 'grub-efi-amd64-signed', + 'grub2-common', + 'linux-image-amd64', + 'locales', + 'logrotate', + 'lvm2', + 'xfsprogs' + ] + + ( + (luks_enabled | default(false)) + | ternary(['cryptsetup', 'cryptsetup-initramfs'], []) + ) + }} - extra: - - apparmor-utils - - bat - - chrony - - curl - - duf - - entr - - firewalld - - fish - - fzf - - htop - - jq - - libpam-pwquality - - logrotate - - lrzsz - - mtr - - ncdu - - neofetch - - net-tools - - network-manager - - openssh-server - - python-is-python3 - - python3 - - ripgrep - - rsync - - screen - - software-properties-common - - sudo - - syslog-ng - - systemd-zram-generator - - tcpd - - tldr - - tpm2-tools - - vim - - wget - - zstd + extra: >- + {{ + [ + 'apparmor-utils', + 'bat', + 'chrony', + 'curl', + 'duf', + 'entr', + 'firewalld', + 'fish', + 'fzf', + 'htop', + 'jq', + 'libpam-pwquality', + 'logrotate', + 'lrzsz', + 'mtr', + 'ncdu', + 'neofetch', + 'net-tools', + 'network-manager', + 'openssh-server', + 'python-is-python3', + 'python3', + 'ripgrep', + 'rsync', + 'screen', + 'software-properties-common', + 'sudo', + 'syslog-ng', + 'systemd-zram-generator', + 'tcpd', + 'tldr', + 'vim', + 'wget', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} bootstrap_debian13: - base: - - btrfs-progs - - cron - - cryptsetup - - cryptsetup-initramfs - - gnupg - - grub-efi - - grub-efi-amd64-signed - - grub2-common - - linux-image-amd64 - - locales - - logrotate - - lvm2 - - xfsprogs + base: >- + {{ + [ + 'btrfs-progs', + 'cron', + 'gnupg', + 'grub-efi', + 'grub-efi-amd64-signed', + 'grub2-common', + 'linux-image-amd64', + 'locales', + 'logrotate', + 'lvm2', + 'xfsprogs' + ] + + ( + (luks_enabled | default(false)) + | ternary(['cryptsetup', 'cryptsetup-initramfs'], []) + ) + }} - extra: - - apparmor-utils - - bat - - chrony - - curl - - duf - - entr - - fastfetch - - firewalld - - fish - - fzf - - htop - - jq - - libpam-pwquality - - logrotate - - lrzsz - - mtr - - ncdu - - net-tools - - network-manager - - openssh-server - - python-is-python3 - - python3 - - ripgrep - - rsync - - screen - - sudo - - syslog-ng - - systemd-zram-generator - - tcpd - - tpm2-tools - - vim - - wget - - zstd + extra: >- + {{ + [ + 'apparmor-utils', + 'bat', + 'chrony', + 'curl', + 'duf', + 'entr', + 'fastfetch', + 'firewalld', + 'fish', + 'fzf', + 'htop', + 'jq', + 'libpam-pwquality', + 'logrotate', + 'lrzsz', + 'mtr', + 'ncdu', + 'net-tools', + 'network-manager', + 'openssh-server', + 'python-is-python3', + 'python3', + 'ripgrep', + 'rsync', + 'screen', + 'sudo', + 'syslog-ng', + 'systemd-zram-generator', + 'tcpd', + 'vim', + 'wget', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_fedora: - - bat - - bind-utils - - btrfs-progs - - cronie - - cryptsetup - - dhcp-client - - duf - - efibootmgr - - entr - - fish - - fzf - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi - - htop - - iperf3 - - logrotate - - lrzsz - - lvm2 - - nc - - nfs-utils - - nfsv4-client-utils - - polkit - - ppp - - ripgrep - - shim - - tmux - - tpm2-tools - - vim-default-editor - - wget - - zoxide - - zram-generator - - zstd +bootstrap_fedora: >- + {{ + [ + 'bat', + 'bind-utils', + 'btrfs-progs', + 'cronie', + 'dhcp-client', + 'duf', + 'efibootmgr', + 'entr', + 'fish', + 'fzf', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi', + 'htop', + 'iperf3', + 'logrotate', + 'lrzsz', + 'lvm2', + 'nc', + 'nfs-utils', + 'nfsv4-client-utils', + 'polkit', + 'ppp', + 'ripgrep', + 'shim', + 'tmux', + 'vim-default-editor', + 'wget', + 'zoxide', + 'zram-generator', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_rhel8: - - bind-utils - - cryptsetup - - dhcp-client - - efibootmgr - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi-x64 - - grub2-tools-extra - - lrzsz - - lvm2 - - mtr - - ncurses-term - - nfs-utils - - policycoreutils-python-utils - - python39 - - shim - - tmux - - tpm2-tools - - vim - - zstd +bootstrap_rhel8: >- + {{ + [ + 'bind-utils', + 'dhcp-client', + 'efibootmgr', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi-x64', + 'grub2-tools-extra', + 'lrzsz', + 'lvm2', + 'mtr', + 'ncurses-term', + 'nfs-utils', + 'policycoreutils-python-utils', + 'python39', + 'shim', + 'tmux', + 'vim', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_rhel9: - - bind-utils - - cryptsetup - - dhcp-client - - efibootmgr - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi - - grub2-tools-extra - - lrzsz - - lvm2 - - mtr - - ncurses-term - - nfs-utils - - policycoreutils-python-utils - - python - - shim - - tmux - - tpm2-tools - - vim - - zram-generator - - zstd +bootstrap_rhel9: >- + {{ + [ + 'bind-utils', + 'dhcp-client', + 'efibootmgr', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi', + 'grub2-tools-extra', + 'lrzsz', + 'lvm2', + 'mtr', + 'ncurses-term', + 'nfs-utils', + 'policycoreutils-python-utils', + 'python', + 'shim', + 'tmux', + 'vim', + 'zram-generator', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_rhel10: - - bind-utils - - cryptsetup - - efibootmgr - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi - - kernel - - lrzsz - - lvm2 - - mtr - - ncurses-term - - nfs-utils - - policycoreutils-python-utils - - python - - shim - - tmux - - tpm2-tools - - vim - - zram-generator - - zstd +bootstrap_rhel10: >- + {{ + [ + 'bind-utils', + 'efibootmgr', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi', + 'kernel', + 'lrzsz', + 'lvm2', + 'mtr', + 'ncurses-term', + 'nfs-utils', + 'policycoreutils-python-utils', + 'python', + 'shim', + 'tmux', + 'vim', + 'zram-generator', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} -bootstrap_rocky: - - bind-utils - - cryptsetup - - dbus-daemon - - dhcp-client - - efibootmgr - - glibc-langpack-de - - glibc-langpack-en - - grub2 - - grub2-efi - - lrzsz - - lvm2 - - mtr - - nc - - nfs-utils - - nfsv4-client-utils - - ppp - - shim - - telnet - - tmux - - tpm2-tools - - util-linux-core - - vim - - wget - - zram-generator - - zstd +bootstrap_rocky: >- + {{ + [ + 'bind-utils', + 'dbus-daemon', + 'dhcp-client', + 'efibootmgr', + 'glibc-langpack-de', + 'glibc-langpack-en', + 'grub2', + 'grub2-efi', + 'lrzsz', + 'lvm2', + 'mtr', + 'nc', + 'nfs-utils', + 'nfsv4-client-utils', + 'ppp', + 'shim', + 'telnet', + 'tmux', + 'util-linux-core', + 'vim', + 'wget', + 'zram-generator', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['cryptsetup', 'tpm2-tools'], []) + ) + }} bootstrap_ubuntu: - base: - - btrfs-progs - - cron - - cryptsetup - - cryptsetup-initramfs - - gnupg - - grub-efi - - grub-efi-amd64-signed - - grub2-common - - initramfs-tools - - linux-image-generic - - locales - - lvm2 - - xfsprogs + base: >- + {{ + [ + 'btrfs-progs', + 'cron', + 'gnupg', + 'grub-efi', + 'grub-efi-amd64-signed', + 'grub2-common', + 'linux-image-generic', + 'locales', + 'lvm2', + 'xfsprogs' + ] + + ( + (luks_enabled | default(false)) + | ternary(['cryptsetup', 'cryptsetup-initramfs'], []) + ) + }} - extra: - - apparmor-utils - - bash-completion - - bat - - chrony - - curl - - dnsutils - - duf - - entr - - eza - - fdupes - - fio - - firewalld - - fish - - htop - - jq - - libpam-pwquality - - logrotate - - lrzsz - - mtr - - ncdu - - ncurses-term - - net-tools - - network-manager - - openssh-server - - python-is-python3 - - python3 - - ripgrep - - rsync - - screen - - software-properties-common - - sudo - - syslog-ng - - systemd-zram-generator - - tcpd - - tldr - - tmux - - tpm2-tools - - traceroute - - util-linux-extra - - vim - - wget - - yq - - zoxide - - zstd + extra: >- + {{ + [ + 'apparmor-utils', + 'bash-completion', + 'bat', + 'chrony', + 'curl', + 'dnsutils', + 'duf', + 'entr', + 'eza', + 'fdupes', + 'fio', + 'firewalld', + 'fish', + 'htop', + 'jq', + 'libpam-pwquality', + 'logrotate', + 'lrzsz', + 'mtr', + 'ncdu', + 'ncurses-term', + 'net-tools', + 'network-manager', + 'openssh-server', + 'python-is-python3', + 'python3', + 'ripgrep', + 'rsync', + 'screen', + 'software-properties-common', + 'sudo', + 'syslog-ng', + 'systemd-zram-generator', + 'tcpd', + 'tldr', + 'tmux', + 'traceroute', + 'util-linux-extra', + 'vim', + 'wget', + 'yq', + 'zoxide', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }} bootstrap_ubuntu_lts: - base: - - btrfs-progs - - cron - - cryptsetup - - cryptsetup-initramfs - - gnupg - - grub-efi - - grub-efi-amd64-signed - - grub2-common - - initramfs-tools - - linux-image-generic - - locales - - lvm2 - - xfsprogs + base: >- + {{ + [ + 'btrfs-progs', + 'cron', + 'gnupg', + 'grub-efi', + 'grub-efi-amd64-signed', + 'grub2-common', + 'linux-image-generic', + 'locales', + 'lvm2', + 'xfsprogs' + ] + + ( + (luks_enabled | default(false)) + | ternary(['cryptsetup', 'cryptsetup-initramfs'], []) + ) + }} - extra: - - apparmor-utils - - bash-completion - - bat - - chrony - - curl - - dnsutils - - duf - - entr - - eza - - fdupes - - fio - - firewalld - - fish - - htop - - jq - - libpam-pwquality - - logrotate - - lrzsz - - mtr - - ncdu - - ncurses-term - - net-tools - - network-manager - - openssh-server - - python-is-python3 - - python3 - - ripgrep - - rsync - - screen - - software-properties-common - - sudo - - syslog-ng - - systemd-zram-generator - - tcpd - - tldr - - tmux - - tpm2-tools - - traceroute - - util-linux-extra - - vim - - wget - - yq - - zoxide - - zstd + extra: >- + {{ + [ + 'apparmor-utils', + 'bash-completion', + 'bat', + 'chrony', + 'curl', + 'dnsutils', + 'duf', + 'entr', + 'eza', + 'fdupes', + 'fio', + 'firewalld', + 'fish', + 'htop', + 'jq', + 'libpam-pwquality', + 'logrotate', + 'lrzsz', + 'mtr', + 'ncdu', + 'ncurses-term', + 'net-tools', + 'network-manager', + 'openssh-server', + 'python-is-python3', + 'python3', + 'ripgrep', + 'rsync', + 'screen', + 'software-properties-common', + 'sudo', + 'syslog-ng', + 'systemd-zram-generator', + 'tcpd', + 'tldr', + 'tmux', + 'traceroute', + 'util-linux-extra', + 'vim', + 'wget', + 'yq', + 'zoxide', + 'zstd' + ] + + ( + (luks_enabled | default(false)) | ternary(['tpm2-tools'], []) + ) + + ( + ((hypervisor | default('none') | lower) in ['libvirt', 'proxmox']) + | ternary(['qemu-guest-agent'], []) + ) + + ( + ((hypervisor | default('none') | lower) == 'vmware') + | ternary(['open-vm-tools'], []) + ) + }}