diff --git a/CHANGELOG.md b/CHANGELOG.md index 37dfc0e..dc0e6e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ##### Changes * Add a variable to choose to keep PVE enterprise repo for the subscribers. * (#4) Add an access control list for PveProxy. +* (#4) Add a new class to manage Proxmox's service (proxmox::hypervisor::service). --------------------------------------- diff --git a/README.md b/README.md index cd65f53..cb95786 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ The proxmox module automates installing Proxmox on Debian systems. * A new `sources.list` file for Proxmox * System repository * The static table lookup for hostnames `hosts` +* WebGUI's service (pveproxy) ### Beginning with proxmox @@ -68,6 +69,9 @@ class { 'proxmox::hypervisor': * `pveproxy_allow`: Can be ip addresses, range or network; separated by a comma (example: '192.168.0.0/24,10.10.0.1-10.10.0.5'). Defaults to '127.0.0.1'. * `pveproxy_deny`: Unauthorized IP addresses. Can be 'all' or ip addresses, range or network; separated by a comma. Defaults to 'all'. * `pveproxy_policy`: The policy access. Can be 'allow' or 'deny'. Defaults to 'deny'. +* `pveproxy_service_name`: WebGUI's service name (replace Apache2 since v3.0). Defaults to 'pveproxy'. +* `pveproxy_service_manage`: If set to 'true', Puppet will manage the WebGUI's service. Can be 'true' or 'false'. Defaults to 'true'. +* `pveproxy_service_enabled`: If set to 'true', Puppet will ensure the WebGUI's service is running. Can be 'true' or 'false'. Defaults to 'true'. Limitations ----------- diff --git a/manifests/hypervisor.pp b/manifests/hypervisor.pp index be504d6..eeadcf1 100644 --- a/manifests/hypervisor.pp +++ b/manifests/hypervisor.pp @@ -50,14 +50,19 @@ class proxmox::hypervisor ( $pveproxy_allow = $proxmox::params::pveproxy_allow, $pveproxy_deny = $proxmox::params::pveproxy_deny, $pveproxy_policy = $proxmox::params::pveproxy_policy, + $pveproxy_service_name = $proxmox::params::pveproxy_service_name, + $pveproxy_service_manage = $proxmox::params::pveproxy_service_manage, + $pveproxy_service_enabled = $proxmox::params::pveproxy_service_enabled, ) inherits proxmox::params { include '::proxmox::hypervisor::preconfig' include '::proxmox::hypervisor::install' include '::proxmox::hypervisor::config' + include '::proxmox::hypervisor::service' Class['proxmox::hypervisor::preconfig'] -> Class['proxmox::hypervisor::install'] -> - Class['proxmox::hypervisor::config'] + Class['proxmox::hypervisor::config'] -> + Class['proxmox::hypervisor::service'] } # Public class: proxmox::hypervisor diff --git a/manifests/hypervisor/config.pp b/manifests/hypervisor/config.pp index 8c76de2..d32d7e4 100644 --- a/manifests/hypervisor/config.pp +++ b/manifests/hypervisor/config.pp @@ -22,6 +22,7 @@ class proxmox::hypervisor::config { file { "${proxmox::hypervisor::pveproxy_default_path}": ensure => present, content => template("${proxmox::hypervisor::pveproxy_default_content}"), + notify => Service["${proxmox::hypervisor::pveproxy_service_name}"], } -> diff --git a/manifests/hypervisor/service.pp b/manifests/hypervisor/service.pp new file mode 100644 index 0000000..c5c404e --- /dev/null +++ b/manifests/hypervisor/service.pp @@ -0,0 +1,29 @@ +# == Class: proxmox::hypervisor::service +# +# Manage Proxmox services +# +class proxmox::hypervisor::service { + + + if $proxmox::hypervisor::pveproxy_service_enabled == true { + $pveproxy_service_ensure = 'running' + } else { + $pveproxy_service_ensure = 'stopped' + } + + if $::is_proxmox == 'true' { + + if $proxmox::hypervisor::pveproxy_service_manage == true { + service { "${proxmox::hypervisor::pveproxy_service_name}": + ensure => "${pveproxy_service_ensure}", + enable => "${proxmox::hypervisor::pveproxy_service_enabled}", + hasstatus => false, + hasrestart => true, + } + } + + } + + + +} # Private class: proxmox::hypervisor::service diff --git a/manifests/params.pp b/manifests/params.pp index f2ef54c..5c01a8a 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -28,7 +28,10 @@ class proxmox::params { $pveproxy_default_content = 'proxmox/hypervisor/pveproxy_default.erb' $pveproxy_allow = '127.0.0.1' $pveproxy_deny = 'all' - $pveproxy_policy = 'deny' + $pveproxy_policy = 'allow' + $pveproxy_service_name = 'pveproxy' + $pveproxy_service_manage = true + $pveproxy_service_enabled = true } } default: {