diff --git a/data/common.yaml b/data/common.yaml index 38ce721..d236d12 100644 --- a/data/common.yaml +++ b/data/common.yaml @@ -17,6 +17,7 @@ realmd::manage_sssd_config: false realmd::manage_sssd_service: true realmd::manage_sssd_package: true realmd::domain: "%{::domain}" +realmd::joining_dc: ~ realmd::domain_join_user: ~ realmd::domain_join_password: ~ realmd::one_time_password: ~ diff --git a/manifests/init.pp b/manifests/init.pp index 33d1920..8c5c5fc 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -31,6 +31,7 @@ Boolean $manage_sssd_service, Boolean $manage_sssd_package, String $domain, + Variant[Stdlib::Host, Undef, Boolean[false]] $joining_dc, String $netbiosname, Variant[String, Undef] $domain_join_user, Variant[String, Undef] $domain_join_password, diff --git a/manifests/join/keytab.pp b/manifests/join/keytab.pp index 1237e95..e013502 100644 --- a/manifests/join/keytab.pp +++ b/manifests/join/keytab.pp @@ -15,6 +15,12 @@ $_krb_config_final = deep_merge({'libdefaults' => {'default_realm' => upcase($::domain)}}, $_krb_config) + if $::realmd::joining_dc != undef { + $_joining_dc = $::realmd::joining_dc + } else { + $_joining_dc = $_domain + } + file { 'krb_keytab': path => $_krb_keytab, owner => 'root', @@ -43,9 +49,9 @@ } if $_ou != undef { - $_realm_args = [$_domain, "--computer-ou=${_ou}"] + $_realm_args = [$_joining_dc, "--computer-ou=${_ou}"] } else { - $_realm_args = [$_domain,] + $_realm_args = [$_joining_dc,] } $_args = join($_realm_args, ' ') diff --git a/manifests/join/password.pp b/manifests/join/password.pp index c965e23..852135d 100644 --- a/manifests/join/password.pp +++ b/manifests/join/password.pp @@ -17,6 +17,12 @@ $_computer_name = $::hostname[0,15] } + if $::realmd::joining_dc != undef { + $_joining_dc = $::realmd::joining_dc + } else { + $_joining_dc = $_domain + } + if $::operatingsystem == 'Ubuntu' { $_computer_name_arg = $facts['os']['distro']['codename'] ? { 'xenial' => '', @@ -33,9 +39,9 @@ } if $_ou != undef { - $_realm_args = [$_domain, '--unattended', "--computer-ou='${_ou}'", "--user=${_user}"] + $_realm_args = [$_joining_dc, '--unattended', "--computer-ou='${_ou}'", "--user=${_user}"] } else { - $_realm_args = [$_domain, '--unattended', "--user=${_user}"] + $_realm_args = [$_joining_dc, '--unattended', "--user=${_user}"] } $_args = strip(join(concat($_realm_args, $_computer_name_arg, $_extra_join_options), ' '))