1 # == Type: prosody::virtualhost
2 define prosody::virtualhost(
3 Hash $custom_options = {},
4 Enum[present, absent] $ensure = present,
5 Optional[Stdlib::Absolutepath] $ssl_key = undef,
6 Optional[Stdlib::Absolutepath] $ssl_cert = undef,
7 Boolean $ssl_copy = true,
8 Optional[String] $user = undef,
9 Optional[String] $group = undef,
10 Hash $components = {},
12 # Check if SSL set correctly
13 if (($ssl_key != undef) and ($ssl_cert == undef)) {
14 fail('The prosody::virtualhost type needs both ssl_key *and* ssl_cert set')
16 if (($ssl_key == undef) and ($ssl_cert != undef)) {
17 fail('The prosody::virtualhost type needs both ssl_key *and* ssl_cert set')
20 if (($ssl_key != undef) and ($ssl_cert != undef) and ($ssl_copy == true)) {
21 # Copy the provided sources to prosody certs folder
22 $prosody_ssl_key = "/etc/prosody/certs/${name}.key"
23 $prosody_ssl_cert = "/etc/prosody/certs/${name}.crt"
25 $file_user = pick_default($user, 'prosody')
26 $file_group = pick_default($group, 'prosody')
43 $config_requires = [File[$prosody_ssl_key], File[$prosody_ssl_cert], Class['::prosody::package']]
46 elsif (($ssl_key != undef) and ($ssl_cert != undef) and ($ssl_copy == false)) {
47 $prosody_ssl_key = $ssl_key
48 $prosody_ssl_cert = $ssl_cert
52 $config_requires = Class['::prosody::package']
55 $conf_avail_fn = "/etc/prosody/conf.avail/${name}.cfg.lua"
57 file { $conf_avail_fn:
59 require => $config_requires,
60 content => template('prosody/virtualhost.cfg.erb'),
61 notify => Class['::prosody::service'],
64 $cfg_ensure = $ensure ? {
69 file { "/etc/prosody/conf.d/${name}.cfg.lua":
70 ensure => $cfg_ensure,
71 target => $conf_avail_fn,
72 notify => Class['::prosody::service'],
73 require => File[$conf_avail_fn];