41 lines
1.2 KiB
ObjectPascal
41 lines
1.2 KiB
ObjectPascal
|
|
# modules/frankenphp/manifests/vhost.pp
|
||
|
|
|
||
|
|
define frankenphp::vhost (
|
||
|
|
String $server_name,
|
||
|
|
Stdlib::Absolutepath $root_dir = '/var/www/default',
|
||
|
|
Optional[String] $proxy_target = undef,
|
||
|
|
Optional[String] $fpm_socket = undef,
|
||
|
|
Enum['php_server', 'proxy', 'fastcgi'] $mode = 'php_server',
|
||
|
|
String $extra_config = '',
|
||
|
|
Enum['present', 'absent'] $ensure = 'present',
|
||
|
|
String $order = '10',
|
||
|
|
) {
|
||
|
|
|
||
|
|
$caddyfile_path = $frankenphp::params::caddyfile_path
|
||
|
|
|
||
|
|
# Valider que les bons paramètres sont passés
|
||
|
|
# if $mode == 'php_server' and $root_dir == '/var/www/default' {
|
||
|
|
# }
|
||
|
|
if $mode == 'proxy' and !$proxy_target {
|
||
|
|
fail('Le mode proxy nécessite un $proxy_target (ex: "localhost:9001")')
|
||
|
|
}
|
||
|
|
if $mode == 'fastcgi' and !$fpm_socket {
|
||
|
|
fail('Le mode fastcgi nécessite un $fpm_socket (ex: "unix//run/php/php.sock")')
|
||
|
|
}
|
||
|
|
|
||
|
|
$vhost_content = epp('frankenphp/vhost.epp', {
|
||
|
|
server_name => $server_name,
|
||
|
|
root_dir => $root_dir,
|
||
|
|
mode => $mode,
|
||
|
|
proxy_target => $proxy_target,
|
||
|
|
fpm_socket => $fpm_socket,
|
||
|
|
extra_config => $extra_config,
|
||
|
|
})
|
||
|
|
|
||
|
|
concat::fragment { "caddyfile-vhost-${server_name}":
|
||
|
|
target => $caddyfile_path,
|
||
|
|
order => $order,
|
||
|
|
content => $vhost_content,
|
||
|
|
}
|
||
|
|
}
|