gpt4 book ai didi

windows - Ansible Delegate_to WinRM

转载 作者:可可西里 更新时间:2023-11-01 11:25:46 26 4
gpt4 key购买 nike

我正在使用 ansible vsphere_guest 模块在 VMWare 环境中启动基本 Windows 机器。在我的剧本中,为此我设置了 Hosts: 127.0.0.1 connection: local。我这样做的原因是我相信我没有针对任何特定主机使用此剧本,因为我还没有。相反,我想在本地运行剧本。

当它运行时,我得到了一个新的 Shiny 的 Windows 服务器虚拟机。我现在要做的是重命名该 VM 的计算机名称。为此,我尝试上传并运行类似 rename_host.ps1 $newHostname 的 powershell 脚本。据我了解,我需要使用脚本模块来执行此操作。然而,这一次我想以我全新的 VM 为目标,我通过一个事实 {{ newvm_ipaddress }} 获得了它的 IP 地址。

但是,当我尝试使用 delegate_to: "{{ newvm_ipaddress}}" 运行此脚本时,它试图以 SSH 运行。 SSH 无法工作,我的目标是带有远程 powershell 的 Windows 机器。

有什么方法可以设置连接以在 delegate_to 的上下文中使用 winRM?也许有更好的方法来做到这一点?

谢谢你的帮助

最佳答案

我想出了解决办法。答案是 ansible 模块“add_host”。我在 vsphere_guest 下有一个游戏如下。这将创建一个新的内存主机,然后可以由不同的游戏访问。


- add_host group=new_machine name={{ vm_ipaddress }} ansible_connection=winrm

在这之后,我就有了一个新的游戏,现在可以针对这个主机。


- 主机:new_machine

还要注意,变量不会跨越不同的主机。解决方案是在播放 A 中使用 set_fact 模块,然后可以从播放 B 中访问它


-设置事实:
vm_ipaddress: "{{ hw_eth0.ipaddresses[1] }}"#hw_eth0是vsphere_guest模块返回的事实

关于windows - Ansible Delegate_to WinRM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37793572/

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