技術指南 101 - AWS OpsWorks

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

技術指南 101

重要

所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄或透過 AWS 高級 Support

生產等級 AWS OpsWorks 堆棧堆棧通常需要一些自定義,這通常意味著使用一個或多個配方,屬性文件或模板文件實現自定義 Chef 食譜。本主題是實作食譜的教學簡介 AWS OpsWorks 堆疊。

有關如何進一步了解 AWS OpsWorks Stacks 使用食譜,其中包括食譜的簡要介紹,請參閱。技術指南和配方如需如何實作和測試 Chef 配方的額外資訊,請參閱 Test-Driven Infrastructure with Chef, 2nd Edition

教學範例分為兩個部分:

  • 技術指南基本概念是一組範例演練,適合不熟悉 Chef 的使用者。經驗豐富的 Chef 使用者可以跳過此節。

    範例會帶您演練如何實作技術指南以執行常見任務 (例如安裝套件或建立目錄) 的基礎。為了簡化程序,您會使用一對有用的工具,VagrantTest 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 提供在虛擬機器上執行和測試程式碼的一致環境。它支持多種環境(稱為 Vagrant 框),每個環境都代表一個配置的操作系統。用於 AWS OpsWorks 堆棧中,感興趣的環境是基於 Ubuntu,Amazon 或紅帽企業 Linux(RHEL)發行版,所以這些例子主要使用一個名為opscode-ubuntu-12.04流浪盒。

Vagrant 可供 Linux、Windows 和 Macintosh 系統使用,因此您可以使用您偏好的工作站,在任意支援的作業系統上實作和測試配方。本章的範例是在 Ubuntu Linux 系統上建立的,但是將程序轉換成視窗或麥金塔系統很簡單。

Vagrant 基本上就是虛擬化提供者的包裝函式。大多數示例使用VirtualBox提供程序。 VirtualBox 是免費的,可用於 Linux,視窗和麥金塔系統。如果您的系統 VirtualBox 上還沒有安裝,Vagrant 逐步解說會提供安裝說明。請注意,您可以在上執行以 Ubuntuu 為基礎的環境 VirtualBox,但 Amazon Linux 僅適用於 Amazon 執行個體。EC2但是,你可以運行類似的操作系統,例如 CentOS on VirtualBox,這對於初始開發和測試非常有用。

如需其他提供者的資訊,請參閱 Vagrant 文件。特別是,vagrant-aws插件提供商允許您將 Vagrant 與 Amazon EC2 實例一起使用。該提供商對於在 Amazon Linux 上測試食譜特別有用,該食譜僅在 Amazon EC2 實例上可用。提vagrant-aws供者是免費的,但您必須擁有一個AWS帳戶並為您使用的任何AWS資源付費。

此時,建議您參閱 Vagrant 的入門演練。其內容說明了如何在您的工作站上安裝 Vagrant,並教您了解使用 Vagrant 的基礎。請注意,本章內的範例沒有使用 Git 儲存庫,因此若您需要的話,您可以省略演練中的該部分。

Test Kitchen

Test Kitchen 可簡化您在 Vagrant 上執行和測試技術指南的程序。實際上來說,您很少需要直接使用 Vagrant。Test Kitchen 會執行大多數的常見任務,包含:

  • 在 Vagrant 中啟動執行個體。

  • 將技術指南傳輸到執行個體。

  • 在執行個體上執行技術指南的配方。

  • 在執行個體上測試技術指南的配方。

  • 用SSH來登入執行個體。

相較於直接安裝 Test Kitchen gem,我們建議您安裝 Chef DK。除了廚師本身,該軟件包還包括測試廚房,伯克架和其他一些有用的工具。ChefSpec

此時,建議您參閱 Test Kitchen 的入門演練。其內容會教您如何使用 Test Kitchen 執行和測試配方的基礎。

注意

本章中的範例會使用 Test Kitchen 以方便執行配方。若您偏好的話,您可以在完成手動驗證一節後停止入門演練,因為屆時其內容已涵蓋所有您針對範例需要了解的部分。然而,測試廚房主要是一個測試平台,支持測試框架,如 bash 自動測試系統(BATS)。建議您在之後找時間完成演練的剩餘部分,以了解如何使用 Test Kitchen 測試您的配方。