gpt4 book ai didi

powershell - 如果从 Ansible 调用 Chocolatey 将无法访问 Synology Diskstation 上的 Windows 共享

转载 作者:行者123 更新时间:2023-12-02 23:41:58 24 4
gpt4 key购买 nike

这个问题让我很困惑,我很难提出正确的问题。所以低于我的最大努力。如果你能帮助我改进这个问题,我很高兴。

背景:
我通过 Chocolatey 管理安装在 Windows 10 客户端上的软件,而巧克力又由 Ansible 远程调用。 Chocolatey 包的存储库位于 NAS 上的 Windows 共享中。我首先遇到了通过使用 kerberos 票证成功解决的第二个跃点问题(参见 https://github.com/ansible/ansible/issues/15682)。客户端和 Synology 已加入 AD 域。

我现在面临的问题是,如果存储库是 Synology Diskstation 上的 Windows 共享,如果通过 Ansible 远程调用,Chocolatey 看不到包。该命令实际上成功运行,但返回一个空列表。如果在本地调用相同的命令(choco list),一切都很好。如果存储库位于托管在 OpenMediaVault (OMV) NAS 上的共享上,则它可以与 Ansible 一起使用,但前提是启用了 Samba 选项允许 guest 。我试图在 Synology 上找到类似的设置。我启用了访客访问,这似乎也可以工作,因为客户端可以在不提供用户名/密码的情况下连接到共享。

通过使用 Wireshark,我发现在本地运行 choco list 时会提供用户名/域(这是预期的)。如果通过 Ansible 远程调用命令,则不提供用户名/域(值为 NULL)(这不是真正预期的)。这解释了为什么它仅在启用允许访客访问时才在 OMV 上工作。

目前我看到了两种可能的解决方案:

  • 获取远程执行的 choco 命令以在访问共享时发送用户凭据(更安全的首选解决方案)
  • 如何配置远程执行的 PowerShell 脚本(例如 Chocolatey 使用)以在连接到共享时使用实际执行脚本的用户的用户名/域名?
  • 让 Synology Diskstation 接受远程执行脚本的无用户名登录
  • 这其实是最让我困惑的。访客访问原则上有效,因为我可以连接到允许用户访客从 Linux 和 Windows 框访问的共享,而不会提示输入密码/用户名。
  • 有谁知道如果远程调用 choco 命令它为什么不起作用以及如何修复它?

  • 我很乐意提供更多信息......

    最佳答案

    WinRM session 作为“批量”登录运行,这意味着凭据缓存不会使用您的用户名/密码播种,Microsoft 很难做到这一点。我们计划添加 Windows become Ansible 中的支持以部分解决该问题(在运行 Ansible 模块之前在 WinRM session 中创建一个新的交互式登录 session ,这样事情会更直观地表现)。如果 Synology 理解 Kerberos,您可以通过在 pywinrm 上启用 kerberos 委派(在 pywinrm 0.2.0 和 Ansible 2.1+ 的 list 中设置 ansible_winrm_kerberos_delegation=true)来实现。否则,你就有点麻烦了——一些模块已经通过添加自己的身份验证来解决这个问题(参见 win_package),但这是不可持续的——我们希望在 Ansible 范围内解决它,而不是逐个模块地解决它。

    关于powershell - 如果从 Ansible 调用 Chocolatey 将无法访问 Synology Diskstation 上的 Windows 共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39276196/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com