Windows

使用 Chef Solo 配置 Windows EC2 實例並引導它

  • November 4, 2013

我正在嘗試為幾個 .NET 應用程序自動化我們的 CI 流程,在一個完美的世界中,我想為每個應用程序啟動一個 Windows EC2 實例,引導實例以安裝 Chef Solo,然後執行 Chef 配方以安裝一些依賴項和打包軟體本身。

但是-我是新手,即使可行,也不知道從哪裡開始:)

我相當精通 AWS 的命令行工具,因此可以啟動 AMI 好,但除此之外,我非常卡住。我想避免建構一個預先安裝了 chef 的自定義 AMI,因為這會帶走很多優勢。

我認為這本質上是我需要做的——但(不出所料)專注於 Linux:

http://www.opinionatedprogrammer.com/2011/06/chef-solo-tutorial-managing-a-single-server-with-chef/

有沒有人有連結到以前做過這個或類似的人?還是實現我想做的更好的方法?

任何幫助表示讚賞。

大多數 Windows 引導資源都集中在 Hosted Chef 和使用knife-windows外掛上。

然而,這應該可以通過 Chef 獨奏來實現。

如果您沒有chef-client在其上建構 AMI,那麼您的第一步是在那裡獲取Full Chef Windows 安裝程序

幸運的是,我記得winrm在 Windows Amazon AMI 上預設啟用。在此處查看潛在的引導解決方案:https ://stackoverflow.com/a/13284313/2205881

你可以同時引導其他東西;像 Ruby Windows Installer 等。在同一過程中獲取您的食譜、角色等並啟動您的 Chef 配置。

更新

我已經開始以稍微不同的方式執行此操作,--user-data-file在創建實例時使用 a 。這可以與 AWS API、命令行工具一起使用,或者在啟動實例時簡單地粘貼到 Web 界面中。

我正在使用包管理器Chocolatey來安裝 chef-client。

`<script>

@powershell -NoProfile -ExecutionPolicy unrestricted -Command “iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

cinst chef-client

</script>`

基本上: &lt;script&gt;告訴 AWS 的使用者數據腳本我們有一個批處理文件要處理。(etc) 是從它的 docs

@powershell...安裝 Chocolatey 的命令。安裝

cinst chef-clientchef-client

這些都不需要任何使用者輸入。使用者數據以本地管理員身份執行。

所有 Amazon AMI 在首次啟動時(預設情況下)而不是在後續啟動時執行其使用者數據。因此,這是一種非常簡單的方法,chef-client無需連接到 RDP,甚至無需獲取您的管理員密碼。

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