Puppet Class: directadmin
- Inherits:
- directadmin::params
- Inherited by:
-
directadmin::update
directadmin::install
directadmin::custombuild
directadmin::modsecurity
- Defined in:
- manifests/init.pp
Overview
directadmin
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'manifests/init.pp', line 2
class directadmin(
$clientid = undef,
$licenseid = undef,
$interface = undef,
$auto_update = false,
$admin_password = undef,
$lan = false,
$mail_limit = $::directadmin::params::mail_limit,
$mail_limit_per_address = $::directadmin::params::mail_limit_per_address,
$sa_updates = false,
$php_imap = false,
$default_webmail = $::directadmin::params::default_webmail,
$default_rbl = false,
$installer_location = $::directadmin::params::installer_location,
$modsecurity = $::directadmin::params::modsecurity,
$modsecurity_ruleset = $::directadmin::params::modsecurity_ruleset,
$modsecurity_wordpress = $::directadmin::params::modsecurity_wordpress,
) inherits directadmin::params {
# Run some sanity checks
if !is_numeric($directadmin::clientid) { fail("The client ID ${directadmin::clientid} is not a number.") }
if !is_numeric($directadmin::licenseid) { fail("The license ID ${directadmin::licenseid} is not a number.") }
class { '::directadmin::directories': }
-> class { '::directadmin::custombuild': }
-> class { '::directadmin::install': }
-> class { '::directadmin::update': }
class { '::directadmin::services': }
class { '::directadmin::resources': }
class { '::directadmin::mail': }
class { '::directadmin::modsecurity': }
# Set all required options for custombuild
$custombuild_options = lookup('directadmin::custombuild::options', Hash, 'deep', {})
create_resources(directadmin::custombuild::set, $custombuild_options)
# Set all required configuration settings
$directadmin_config = lookup('directadmin::config::options', Hash, 'deep', {})
create_resources(directadmin::config::set, $directadmin_config)
# Set up the chain that defines when to run which resources in order to support Hiera. This is done in two steps:
# - The first chain doesn't include the directadmin_admin resouce on purpose, you may not use it.
# - The second chain makes sure that should you include a different admin, it's running before the reseller package resource.
# - The third and fourth chain make sure that our workaround for nameservers in directadmin::config::set works.
Class['directadmin::services'] -> User <| title == 'admin' |> -> Directadmin_reseller_package <| |> -> Directadmin_reseller <| |> -> Directadmin_user_package <| |>
User <| title == 'admin' |> -> Directadmin_admin <| |> -> Directadmin_reseller_package <| |>
File_line <| path == '/usr/local/directadmin/data/users/admin/user.conf' |> -> Directadmin_reseller_package <| |>
File_line <| path == '/usr/local/directadmin/data/users/admin/reseller.conf' |> -> Directadmin_reseller_package <| |>
}
|