“net ads join” falha no executável fantoche, mas executa OK diretamente da linha de comando

3

Eu tenho o seguinte exec que une um host Linux (CentOS 6) a um domínio do Active Directory. Quando executado como root a partir do terminal bash, ele é executado com sucesso e o host é unido ao domínio do AD corretamente.

No entanto, quando executado no fantoche, o comando net ads join falha com:

Failed to join domain: Failed to set password for machine account (NT_STATUS_ACCESS_DENIED)

Aqui está o exec

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,
}

Eu tentei com e sem os parâmetros provider e user .

    
por Banjer 20.05.2014 / 15:21

1 resposta

5

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:

  1. anúncios na rede -k join falha sem a variável env do LOGNAME

  2. 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 .

    
por 20.05.2014 / 15:21