Estou recebendo uma mensagem estranha do Ansible.
Em um servidor RHEL 9, posso ingressar em nosso domínio por meio da linha de comando do shell
realm join example.xyz --user=svc-ansible --computer-ou="OU=Linux Servers, OU=Servers, OU=ACME, OU=Units, DC=example, DC=xyz"
Uma vez feito isso, posso alterar o usuário com sucesso via , onde "johndoe" é um usuário definido no AD e pertencente a um grupo do AD definido no arquivo . Então a configuração parece estar funcionando.su - [email protected]
simple_allow_groups
/etc/sssd/sssd.conf
Depois disso, executo um realm leave example.xyz --remove -U 'svc-ansible'
e realm list
previamente para verificar se o servidor não está mais no domínio.
No entanto, quando executo via AWX um playbook Ansible definido como este
(...)
- name: Set staging_ou
ansible.builtin.set_fact:
staging_ou: "OU=Linux Servers, OU=Servers, OU=ACME, OU=Units, DC=example, DC=xyz"
- name: Realm join into domain
ansible.builtin.expect:
command: /bin/bash -c 'realm join {{ domain }} --user={{ ad_join_user }} --computer-ou="{{ staging_ou }}"'
responses:
Password.*: "{{ ad_join_password }}"
timeout: 120
(...)
Recebo o seguinte erro:
TAREFA [playbook_ad_join: Ingresso do reino no domínio] ********************************** fatal: [myrhel9server]: FALHOU! => {"changed": true, "cmd": "/bin/bash -c 'realm join example.xyz --user=svc-ansible --computer-ou="OU=Linux Servers, OU=Servers, OU=ACME, OU=Units, DC=example, DC=xyz"'", "delta": "0:00:00.152467", "end": "2024-11-13 11:45:09.577079", "msg": "código de retorno diferente de zero", "rc": 1, "start": "2024-11-13 11:45:09.424612", "stdout": "realm: Já ingressou neste domínio\r\nVerifique\r\n https://red.ht/support_rhel_ad \r\npara obter ajuda para problemas comuns.", "stdout_lines": ["realm: Já ingressou neste domínio", "Verifique", " https://red.ht/support_rhel_ad ", "para obter ajuda para problemas comuns."]}
A realm list
confirma que o servidor está de fato no domínio example.xyz e retorna a mesma saída de quando executei o realm join ...
comando via shell. No entanto, não posso su
mais para usuários do AD: tentar fazer isso retorna um erro
su: o usuário [email protected] não existe ou a entrada do usuário não contém todos os campos obrigatórios
O link citado na mensagem de erro não ajuda.
O que pode estar errado?
EDIT 1: Executando via shell o mesmo comando executado via ansible, ou seja
/bin/bash -c 'realm join example.xyz (...) '
não muda nada em relação à corrida realm join example.xyz (...)
(veja o topo do post).
As outras tarefas no manual modificam apenas alguns arquivos de configuração:
/etc/krb5.conf
/etc/sssd/sssd.conf
/usr/local/bin/sss_ssh_authorizedkeys_ad
/etc/ssh/sshd_config
e instalar alguns pacotes. Isso não importa, pois a configuração já convergiu. Eu removi uma linha que reiniciava o realmd
daemon, pois poderia ser o que estava causando o problema, mas nada mudou.
Consegui identificar o problema removendo o máximo de tarefas possível (conforme sugerido por @SottoVoce nos comentários). Eventualmente, o playbook funcionou por meio de um kludge -- adicionando uma
realm leave
tarefa (comignore_errors: true
) logo antes darealm join
tarefa.