目前,在 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 上使用过,也没有尝试使用ssh
Ansible 连接到 Windows,如果有人可以共享一个工作配置或至少是指针,将不胜感激。
这需要几个步骤,并且您通常需要经常更新它以获得更新的 Windows 版本。
这是Github 上的一个存储库,它将(默认在 eu-west-1 中)采用最新的官方 Windows Server 2019 映像并安装 OpenSSH,配置服务器,复制密钥以便管理员用户可以通过 访问
ssh
,最后创建一个 AMI这将ssh
在启动时可用。此构建将用于WinRM
完成初始工作,但一旦创建ssh
就可以使用它。还包括一个示例,说明如何在通过连接
ssh
而不是WinRM
.