本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
技術指南 101
重要
AWS OpsWorks Stacks 服務已於 2024 年 5 月 26 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post
生產層級 AWS OpsWorks 的 Stacks 堆疊通常需要一些自訂,這通常表示使用一或多個配方、屬性檔案或範本檔案實作自訂 Chef 技術指南。本主題是實作 Stacks AWS OpsWorks 技術指南的教學簡介。
如需 Stacks AWS OpsWorks 如何使用技術指南的詳細資訊,其中包括技術指南的簡短一般簡介,請參閱 技術指南和配方。如需如何實作和測試 Chef 配方的額外資訊,請參閱 Test-Driven Infrastructure with Chef, 2nd Edition
教學範例分為兩個部分:
-
技術指南基本概念是一組範例演練,適合不熟悉 Chef 的使用者。經驗豐富的 Chef 使用者可以跳過此節。
範例會帶您演練如何實作技術指南以執行常見任務 (例如安裝套件或建立目錄) 的基礎。為了簡化程序,您會使用一對有用的工具,Vagrant
和 Test Kitchen 來在虛擬機器中本機執行大多數的範例。在開始技術指南基本概念前,建議您先閱讀 Vagrant 和 Test Kitchen,了解如何安裝和使用這些工具。由於 Test Kitchen 尚不支援 Windows,因此所有的範例都只適用於 Linux,但會有附註,指示如何改寫以供 Windows 使用。 -
實作 Stacks AWS OpsWorks 的技術指南 說明如何實作 Stacks AWS OpsWorks 的配方,包括 Windows 堆疊的配方。
它還包括一些更進階的 ,例如如何使用 Berkshelf 管理外部技術指南。範例是針對新的 Chef 使用者撰寫,與技術指南基本概念中的範例相似。不過 AWS OpsWorks ,Stacks 的運作方式與 Chef 伺服器略有不同,因此我們建議經驗豐富的 Chef 使用者至少閱讀本節。
Vagrant 和 Test Kitchen
若您使用適用於 Linux 執行個體的配方,Vagrant 和 Test Kitchen 對於了解和初始開發及測試來說是非常有用的工具。這提供 Vagrant 和 Test Kitchen 的簡短描述,並引導您參閱安裝說明和演練,協助您設定並熟悉如何使用工具的基本概念。雖然 Vagrant 支援 Windows,但 Test Kitchen 不支援,因此針對這些工具只提供 Linux 範例。
Vagrant
Vagrant opscode-ubuntu-12.04
。
Vagrant 可供 Linux、Windows 和 Macintosh 系統使用,因此您可以使用您偏好的工作站,在任意支援的作業系統上實作和測試配方。本章的範例是在 Ubuntu Linux 系統上建立的,但將程序翻譯為 Windows 或 Macintosh 系統非常簡單。
Vagrant 基本上就是虛擬化提供者的包裝函式。大多數的範例使用 VirtualBox
如需其他提供者的資訊,請參閱 Vagrantvagrant-aws
外掛程式提供者可讓您將 Vagrant 與 Amazon EC2 執行個體搭配使用。此提供者在 Amazon Linux 上測試配方特別有用,僅適用於 Amazon EC2 執行個體。vagrant-aws
提供者是免費的,但您必須擁有 AWS 帳戶並為您使用的任何 AWS 資源支付費用。
此時,建議您參閱 Vagrant 的入門演練
Test Kitchen
Test Kitchen
-
在 Vagrant 中啟動執行個體。
-
將技術指南傳輸到執行個體。
-
在執行個體上執行技術指南的配方。
-
在執行個體上測試技術指南的配方。
-
使用 SSH 來登入執行個體。
相較於直接安裝 Test Kitchen gem,我們建議您安裝 Chef DK
此時,建議您參閱 Test Kitchen 的入門演練
注意
本章中的範例會使用 Test Kitchen 以方便執行配方。若您偏好的話,您可以在完成手動驗證一節後停止入門演練,因為屆時其內容已涵蓋所有您針對範例需要了解的部分。但是,Test Kitchen 主要是一個支援像是 Bash 自動化測試系統 (BATS)