diff --git a/manifests/deploy/client.pp b/manifests/deploy/client.pp index 5e6e50e0..470a739d 100644 --- a/manifests/deploy/client.pp +++ b/manifests/deploy/client.pp @@ -11,14 +11,16 @@ define openvpn::deploy::client ( String $server, Boolean $manage_etc = true, + Boolean $manage_service = true, + Boolean $namespecific_rclink = lookup('openvpn::namespecific_rclink', Boolean, 'first', false), ) { include openvpn::deploy::prepare + File <<| tag == "${server}-${name}" |>> + Class['openvpn::deploy::install'] -> Openvpn::Deploy::Client[$name] - ~> Class['openvpn::deploy::service'] - if $manage_etc { file { [ @@ -36,7 +38,48 @@ } } - File <<| tag == "${server}-${name}" |>> - ~> Class['openvpn::deploy::service'] + if $manage_service { + + if $facts['service_provider'] == 'systemd' { + $service = "openvpn@${name}" + service { $service: + ensure => running, + enable => true, + provider => 'systemd', + require => File["${openvpn::deploy::prepare::etc_directory}/openvpn/${name}.conf"], + } + } + elsif $namespecific_rclink { + $service = "openvpn_${name}" + file { "/usr/local/etc/rc.d/openvpn_${name}": + ensure => link, + target => "${openvpn::deploy::prepare::etc_directory}/rc.d/openvpn", + } + file { "/etc/rc.conf.d/openvpn_${name}": + owner => root, + group => 0, + mode => '0644', + content => template('openvpn/etc-rc.d-openvpn.erb'), + } + service { $service: + ensure => running, + enable => true, + require => [ + File["${openvpn::deploy::prepare::etc_directory}/openvpn/${name}.conf"], + File["/usr/local/etc/rc.d/openvpn_${name}"], + ], + } + } + else { + $service = 'openvpn' + service { $service: + ensure => running, + enable => true, + hasrestart => true, + hasstatus => true, + } + } + + } } diff --git a/manifests/deploy/prepare.pp b/manifests/deploy/prepare.pp index 9260e6c2..4189001a 100644 --- a/manifests/deploy/prepare.pp +++ b/manifests/deploy/prepare.pp @@ -10,6 +10,5 @@ ) { class { 'openvpn::deploy::install': } - ~> class { 'openvpn::deploy::service': } } diff --git a/manifests/deploy/service.pp b/manifests/deploy/service.pp deleted file mode 100644 index 5e6978c5..00000000 --- a/manifests/deploy/service.pp +++ /dev/null @@ -1,13 +0,0 @@ -# -# @summary Base profile -# -class openvpn::deploy::service { - - service { 'openvpn': - ensure => running, - enable => true, - hasrestart => true, - hasstatus => true; - } - -}