本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
技術指南 101
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄
生產等級 AWS OpsWorks 堆棧堆棧通常需要一些自定義,這通常意味著使用一個或多個配方,屬性文件或模板文件實現自定義 Chef 食譜。本主題是實作食譜的教學簡介 AWS OpsWorks 堆疊。
有關如何進一步了解 AWS OpsWorks Stacks 使用食譜,其中包括食譜的簡要介紹,請參閱。技術指南和配方如需如何實作和測試 Chef 配方的額外資訊,請參閱 Test-Driven Infrastructure with Chef, 2nd Edition
教學範例分為兩個部分:
-
技術指南基本概念是一組範例演練,適合不熟悉 Chef 的使用者。經驗豐富的 Chef 使用者可以跳過此節。
範例會帶您演練如何實作技術指南以執行常見任務 (例如安裝套件或建立目錄) 的基礎。為了簡化程序,您會使用一對有用的工具,Vagrant
和 Test Kitchen 來在虛擬機器中本機執行大多數的範例。在開始技術指南基本概念前,建議您先閱讀 Vagrant 和 Test Kitchen,了解如何安裝和使用這些工具。由於 Test Kitchen 尚不支援 Windows,因此所有的範例都只適用於 Linux,但會有附註,指示如何改寫以供 Windows 使用。 -
實施食譜 AWS OpsWorks 堆疊描述如何實現配方 AWS OpsWorks 堆疊,包括用於視窗堆疊。
它還包括一些更高級的技術,例如如何使用 Berkshelf 來管理外部食譜。範例是針對新的 Chef 使用者撰寫,與技術指南基本概念中的範例相似。不過 AWS OpsWorks 堆棧的工作方式與 Chef 服務器有所不同,因此我們建議經驗豐富的 Chef 用戶至少閱讀本節。
Vagrant 和 Test Kitchen
若您使用適用於 Linux 執行個體的配方,Vagrant 和 Test Kitchen 對於了解和初始開發及測試來說是非常有用的工具。這提供了有關 Vagrant 和測試廚房的簡要描述,並指導您了解安裝說明和逐步解說,這些說明將幫助您設置並熟悉如何使用這些工具的基礎知識。雖然 Vagrant 支援 Windows,但 Test Kitchen 不支援,因此針對這些工具只提供 Linux 範例。
Vagrant
Vagrant opscode-ubuntu-12.04
流浪盒。
Vagrant 可供 Linux、Windows 和 Macintosh 系統使用,因此您可以使用您偏好的工作站,在任意支援的作業系統上實作和測試配方。本章的範例是在 Ubuntu Linux 系統上建立的,但是將程序轉換成視窗或麥金塔系統很簡單。
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 以方便執行配方。若您偏好的話,您可以在完成手動驗證一節後停止入門演練,因為屆時其內容已涵蓋所有您針對範例需要了解的部分。然而,測試廚房主要是一個測試平台,支持測試框架,如 bash 自動測試系統(BATS)