# == Class: proxmox::hypervisor::install # # Install Proxmox and reboot the system on the PVE kernel # class proxmox::hypervisor::install { Exec { path => [ '/bin', '/sbin', '/usr/bin', '/usr/sbin' ], logoutput => 'on_failure', } # If the system run on a standard Debian Kernel if $::kernelrelease == '3.2.0-4-amd64' { # To avoid unwanted reboot (kernel update for example), the PVE kernel is # installed only if the system run on a standard Debian. # You will need to update your PVE kernel manually. # Installation of the PVE Kernel if $proxmox::hypervisor::kvm_only == true { notify { "Need to install a PVE kernel (${proxmox::hypervisor::kernel_kvm_pkg_name}) and reboot the system to run it ...": } -> package { $proxmox::hypervisor::kernel_kvm_pkg_name: ensure => $proxmox::hypervisor::ve_pkg_ensure, notify => Exec['update_grub','reboot_to_pve'], } } else { notify { "Need to install a PVE kernel (${proxmox::hypervisor::kernel_pkg_name}) and reboot the system to run it ...": } -> package { $proxmox::hypervisor::kernel_pkg_name: ensure => $proxmox::hypervisor::ve_pkg_ensure, notify => Exec['update_grub','grub_reboot'], } # The kernel that allow KVM + OpenVZ is older than the standard Debian's # kernel, so grub reboot must be used } } else { # If the system already run a PVE kernel # Installation of Virtual Environnment package { $proxmox::hypervisor::ve_pkg_name: ensure => $proxmox::hypervisor::ve_pkg_ensure, } -> # Remove useless packages (such as the standard kernel, acpid, ...) package { $proxmox::hypervisor::old_pkg_name: ensure => $proxmox::hypervisor::old_pkg_ensure, notify => Exec['update_grub'], } # Ensure that some recommended packages are present on the system # come from Proxmox and standard Debian repository ## The variable needs double quote to take the array if ! defined(Package["${proxmox::hypervisor::rec_pkg_name}"]) { package { $proxmox::hypervisor::rec_pkg_name: ensure => $proxmox::hypervisor::ve_pkg_ensure, } } else { notice("Warn: can't manage ${proxmox::hypervisor::rec_pkg_name}.") } } # Ensure the grub is update exec { 'update_grub': command => 'update-grub', refreshonly => true, } # Choose a different line in the grub exec { 'grub_reboot': command => 'grub-reboot 2', refreshonly => true, notify => Exec['reboot_to_pve'], } # Reboot on a PVE Kernel exec { 'reboot_to_pve': command => 'shutdown -r 1', refreshonly => true, } } # Private class: proxmox::hypervisor::install