在域连接的Windows服务器上运行Ansible时出现问题

80次阅读
没有评论

问题描述

在使用Ansible在Windows 2016服务器上运行多个任务时遇到了以下问题:
– 将服务器加入域SOMEDOMAIN
– 使用Ansible将SOMEDOMAIN\SOMEUSER添加到本地管理员组
– 以域用户SOMEDOMAIN\SOMEUSER的身份在连接到域的机器上运行多个任务

最后一部分需要使用becomerunas来运行Ansible任务(参考Ansible文档)。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据最佳回答,这个问题与组策略有关,可能可以通过与此问题相同的答案解决。

在Windows上使become正常工作所需的权限似乎是:
– 允许作为服务登录
– 允许本地登录

另外,还有一种解决方案是使用batch方法,它会将进程运行在类似于设置了密码的计划任务的批处理上下文中。这应该可以绕过大多数WinRM限制,如果become_user不允许交互式登录,则非常有用。

如果域用户具有Allow Logon as a Batch Job权限,用户可以像运行计划任务一样运行脚本。

您可以使用Ansible的become运行脚本,并将登录类型更改为batch,如下所示:

win_whoami:
  become: yes
  become_user: 'SOMEDOMAIN\SOMEUSER'
  become_method: runas
  become_flags: logon_type=batch

方案2

根据回答2,问题可能是由于”Secondary Logon”服务被禁用导致的。启用该服务后,再次运行Ansible playbook即可解决问题。

您可以在此博客文章中找到相关建议。

请注意,这些解决方案可能需要根据您的具体情况进行调整和测试。

以上是解决在域连接的Windows机器上使用Ansible的becomerunas方法的可能原因和解决方案。

注意:在实施任何更改之前,请确保备份您的系统和数据。

希望对您有所帮助!

正文完