在 Windows 上将 WinRM 替换为 OpenSSH,以便在 AWS 上与 Ansible 一起使用

在 Windows 上将 WinRM 替换为 OpenSSH,以便在 AWS 上与 Ansible 一起使用

目前,在 Windows 上运行扩展构建(Packer/Ansible基于)时,我们发现 WinRM 错误频发,无法使用,因此不得不手动运行一些大型构建作业。使用 AWS 中的主机作为构建源(而不是远程)有所帮助,消除了连接性作为错误原因之一,但失败次数过多且成本高昂,因为即使构建已经运行了几个小时,构建也会从头开始重新启动。

Ansible 文档提到OpenSSH可以使用 (由于它是实验性的,因此风险自负)来代替 来配置 Windows 主机WinRM。但是,关于如何设置这一点,几乎没有给出指导。

除了怀疑它ssh可能比WinRM作为 Ansible 的连接方法更可靠之外,ssh在端口 22 上使用会简化我们的一些安全规则,并从连接角度使 Windows 与我们的 Linux 构建主机保持一致。理想的做法是创建一个可重复使用的构建作业,以允许我们创建一个基础AMI(来自官方的 Windows Server 2019 AMI)作为我们的 Packer/Ansible 作业的新基础。我从未OpenSSH在 Windows 上使用过,也没有尝试过使用sshAnsible 连接到 Windows,如果有人可以分享一个有效的配置或至少指针,我将不胜感激。

答案1

这需要几个步骤,并且您通常需要时不时地更新它以获取较新版本的 Windows。

这里有一个Github 上的存储库它将(默认在 eu-west-1 中)获取最新的官方 Windows Server 2019 映像并安装 OpenSSH、配置服务器、复制密钥以便管理员用户可以通过 访问ssh,最后创建一个ssh在启动时可用的 AMI。此构建将用于WinRM完成初始工作,但创建后ssh即可使用。

ssh还包括一个示例,说明如何在通过而不是连接时在 Ansible 运行中使用该新的基础映像(安装一些构建工具)WinRM

相关内容