Stemcell 在 EC2 中啟動實例。這些實例會根據您的規格建立,例如 AMI、實例類型和區域。實例會使用指定的 git 儲存庫和分支作為角色和配方的來源,並透過 chef-solo 進行引導。
將此行添加到您的應用程式的 Gemfile
gem 'stemcell'
然後執行
$ bundle
或者自己安裝它
$ gem install stemcell
或在本地建置 gem 並安裝它
$ gem build stemcell.gemspec
$ gem install ./stemcell-0.4.3.gem
如果您使用命令行工具,則需要在您的 chef 儲存庫的根目錄中新增一個 stemcell.json
。它包含啟動實例的預設屬性,以及後端儲存區到映像的映射。範例請參閱 examples/stemcell.json
。
您應該為 stemcell 建立一個 RC 檔案,其中包含您的標準選項(並將其放置在根目錄中,例如 .stemcellrc?)。您可以在 examples/stemcellrc
中看到一個範例。如該檔案中所述,您需要
$ source ~/.stemcellrc
$ stemcell $your_chef_role --git-branch $your_chef_branch
這將導致啟動實例,並將其 IP 和實例 ID 列印到螢幕上。
$ stemcell --help
$ stemcell $your_chef_role --tail
若要終止,請使用 necrosis 命令並傳遞以空格分隔的實例 ID 清單
$ necrosis i-12345678 i-12345679 i-12345670
本 README 將 stemcell
作為一個工具呈現,供管理員用來建立實例。然而,我們將 stemcell
設計成容易用於控制伺服器基礎架構的自動化系統。這些自動化系統可以在命令行上呼叫 stemcell
,或直接使用 ruby 類別。
還有一些額外的工具可以使用 chef-solo 來引導 EC2 實例。如果您使用的是 chef-server,最明顯的答案是 knife-ec2。除非您是在一個很多人同時編輯 cookbook 的大型團隊中工作,否則我們強烈建議您採用這種方法!當與 hosted chef 配對使用時,它尤其出色,這使得配置管理的起步變得快速而簡單。
如果您想將 knife-ec2 與 chef-solo 一起使用,您可以使用 knife solo。另一個非常適合互動式使用的方法涉及使用 fabric 來引導 chef(搭配 gist)。
最後,我們忍不住做了一些程式碼考古。人們使用 chef 和 EC2 已經很久了!一篇早期的文章是這篇,它甚至不再出現在網路上了。但是,它催生了一些最近活躍的工具,例如 這個 和 這個。類似的方法在這裡提到,程式碼在這裡或這裡(附帶部落格文章)這篇文章也提到了許多值得關注的前輩。