Acontece que tive que definir explicitamente algumas variáveis de ambiente usando o parâmetro environment
em exec, especificamente LOGNAME
:
exec { 'adjoin':
command => "kinit [email protected] -k -t /etc/krb5.keytab && net ads join createcomputer='Machines/Servers/Linux Servers' osName='${operatingsystem}' osVer=${operatingsystemrelease} -k",
unless => "net ads testjoin -k | grep -q 'Join is OK'",
provider => shell,
user => root,
path => '/usr/sbin:/usr/bin:/sbin:/bin',
require => [
File['/etc/krb5.conf'],
File['/etc/krb5.keytab'],
],
logoutput => true,
environment => [
'USER=root',
'LOGNAME=root',
'HOME=/root',
],
}
Duas razões para isso:
-
anúncios na rede -k join falha sem a variável env do LOGNAME
-
LOGNAME, USER e HOME são especificamente desativados pelo fantoche durante exec de um exec. Foi uma escolha de design detalhada no ticket que eu associei a.
Eu também configuro USER e HOME por questões de sanidade, embora eu não tenha certeza de que eles sejam necessários para net ads
.