Windows

在 Windows 上將 WinRM 替換為 OpenSSH,以便與 AWS 上的 Ansible 一起使用

  • November 30, 2020

目前,在 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,如果有人可以共享一個工作配置或至少是指針,將不勝感激。

這需要幾個步驟,並且您通常需要經常更新它以獲得更新的 Windows 版本。

這是Github 上的一個儲存庫,它將(預設在 eu-west-1 中)採用最新的官方 Windows Server 2019 映像並安裝 OpenSSH,配置伺服器,複製密鑰以便管理員使用者可以通過 訪問ssh,最後創建一個 AMI這將ssh在啟動時可用。此建構將用於WinRM完成初始工作,但一旦創建ssh就可以使用它。

還包括一個範例,說明如何在通過連接ssh而不是WinRM.

引用自:https://serverfault.com/questions/1044419