在 Windows 上將 WinRM 替換為 OpenSSH,以便與 AWS 上的 Ansible 一起使用
目前,在 Windows 上執行擴展建構(基於
Packer
/Ansible
)時,我們發現 WinRM 經常出現錯誤以至於無法使用,因此不得不回退到手動執行一些大型建構作業。使用 AWS 中的主機作為建構源(而不是遠端)在一定程度上有所幫助,消除了作為錯誤原因之一的連接性,但是失敗的次數過多且代價高昂,因為建構然後從頭開始重新啟動,即使它們已經已經執行了幾個小時。Ansible文件提到
OpenSSH
可以使用(風險自負,因為它是實驗性的)來配置 Windows 主機來代替WinRM
. 但是,在如何設置方面幾乎沒有給出指導。除了懷疑
ssh
可能比WinRM
作為 Ansible 的連接方法更可靠之外,ssh
在埠 22 上使用將簡化我們的一些安全規則,並從連接的角度使 Windows 與我們的 Linux 建構主機保持一致。理想的情況是創建一個可重用的建構作業,以允許我們創建一個基礎AMI
(來自官方 Windows Server 2019AMI
),作為我們的 Packer/Ansible 作業的新基礎。從未OpenSSH
在 Windows 上使用過,也沒有嘗試使用ssh
Ansible 連接到 Windows,如果有人可以共享一個工作配置或至少是指針,將不勝感激。
這需要幾個步驟,並且您通常需要經常更新它以獲得更新的 Windows 版本。
這是Github 上的一個儲存庫,它將(預設在 eu-west-1 中)採用最新的官方 Windows Server 2019 映像並安裝 OpenSSH,配置伺服器,複製密鑰以便管理員使用者可以通過 訪問
ssh
,最後創建一個 AMI這將ssh
在啟動時可用。此建構將用於WinRM
完成初始工作,但一旦創建ssh
就可以使用它。還包括一個範例,說明如何在通過連接
ssh
而不是WinRM
.