define apache::site::config( $ensure = 'present', $source = false, $vhost = $name, $docroot = false, $redirect = false, $redirect_match = false, $protocol = 'http', $aliases = false, $server_alias = false, $use = false, $template = 'apache/site.erb', $mpm = true, $user = '', $gid = '', $ssl = false, $listen = '*', $https_redirect = false, $canonical = false, $canonical_exceptions = '', $custom_log_format = 'anon', $error_log = false, $custom_log = false, $custom_directives = false, $allow_override = false, $hosting_domain = lookup('apache::site::domain', undef, undef, $::domain), $certbot = false, ) { case $source { true: { file { "${apache::conf_sites}-available/$vhost.conf": ensure => $ensure, source => [ "puppet:///modules/site_apache/vhosts/${::domain}/${name}", "puppet:///modules/site_apache/vhosts/${name}" ], owner => root, group => root, mode => '0644', require => File["${apache::macros}"], notify => Service["apache2"], } } false: { file { "${apache::conf_sites}-available/$vhost.conf": ensure => $ensure, content => template("$template"), owner => root, group => root, mode => '0644', require => File["${apache::macros}"], notify => Service["apache2"], } } } # Enable the site without a2ensite # #$status = $ensure ? { # 'present' => "${apache::conf_sites}-available/$vhost.conf", # default => 'absent', #} # #file { "/etc/apache2/sites-enabled/$vhost.conf": # ensure => $status, # owner => root, # group => root, # require => File["${apache::conf_sites}-available/${name}"], # notify => Service["apache2"], #} }