我收到了一条有关 Ansible 的奇怪消息。
在 RHEL 9 服务器上,我可以通过 shell 命令行加入我们的域
realm join example.xyz --user=svc-ansible --computer-ou="OU=Linux Servers, OU=Servers, OU=ACME, OU=Units, DC=example, DC=xyz"
完成后,我可以通过 成功更改用户,其中“johndoe”是在 AD 中定义的用户,属于文件中定义的 AD 组。因此配置似乎有效。su - [email protected]
simple_allow_groups
/etc/sssd/sssd.conf
此后,我预先运行realm leave example.xyz --remove -U 'svc-ansible'
并realm list
检查该服务器是否不再位于域中。
但是,当我通过 AWX 运行如下所示的 Ansible 剧本时
(...)
- 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
(...)
我收到以下错误:
任务 [playbook_ad_join:Realm 加入域] ************************************ 致命:[myrhel9server]:失败! => {"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": "非零返回码", "rc": 1, "start": "2024-11-13 11:45:09.424612", "stdout": "realm: 已加入此域\r\n请查看\r\n https://red.ht/support_rhel_ad \r\n以获取常见问题的帮助。", "stdout_lines": ["realm:已加入此域”、“请检查”、“https://red.ht/support_rhel_ad”、“以获取常见问题的帮助。”]}
Arealm list
确认服务器确实位于 example.xyz 域中,并返回与我realm join ...
通过 shell 运行命令时相同的输出。但是,我无法su
再向 AD 用户发出请求:尝试这样做会返回错误
su:用户[email protected]不存在或用户条目不包含所有必填字段
错误消息中引用的链接没有帮助。
可能出了什么问题?
编辑 1:通过 shell 运行与通过 ansible 运行相同的命令,即
/bin/bash -c 'realm join example.xyz (...) '
对于运行来说没有任何改变realm join example.xyz (...)
(参见文章顶部)。
剧本中的其他任务仅修改了几个配置文件:
/etc/krb5.conf
/etc/sssd/sssd.conf
/usr/local/bin/sss_ssh_authorizedkeys_ad
/etc/ssh/sshd_config
并安装一些软件包。这些并不重要,因为配置已经收敛。我删除了重新启动realmd
守护进程的一行,因为它可能是导致问题的原因,但什么都没有改变。