本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例 1:安裝套件
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄
套件安裝是較常用的配方之一,相當簡單,視套件而定。例如,下列配方將 Git 安裝在 Linux 系統中。
package 'git' do action :install end
package
資源package_name
屬性的預設值,它可以識別套件。install
動作指示提供者安裝套件。略過 install
可讓程式碼變得更簡單,它是 package
資源的預設動作。當您執行配方時,Chef 會使用適當的提供者安裝套件。在本範例要使用的 Ubuntu 系統中,提供者透過呼叫 apt-get
來安裝 Git。
注意
在 Windows 系統上安裝軟體需要的程序略有不同。如需詳細資訊,請參閱安裝 Windows 軟體。
若要使用 Test Kitchen 在 Vagrant 中執行此配方,您必須先設定技術指南,然後初始化及設定 Test Kitchen。下列內容適用於 Linux 系統,但 Windows 和 Macintosh 系統所用的程序基本類似。一開始先開啟終端機視窗,本章的所有範例都使用命令列工具。
準備技術指南
-
在您的主目錄中建立名為
opsworks_cookbooks
的子目錄,它會包含本章所有的技術指南。然後,為此技術指南建立名為installpkg
的子目錄中,導覽至它。 -
在
installpkg
中建立名為metadata.rb
的檔案,包含下列程式碼。name "installpkg" version "0.1.0"
為求簡化,本章的範例只指定技術指南名稱和版本,但
metadata.rb
可以包含各種技術指南中繼資料。如需詳細資訊,請參閱 About Cookbook Metadata。 注意
初始化 Test Kitchen 之前請務必先建立
metadata.rb
,它會使用資料建立預設的組態檔案。 -
在
installpkg
中執行kitchen init
,這會初始化 Test Kitchen 並安裝預設的 Vagrant 驅動程式。 -
該
kitchen init
命令創建一個installpkg
名為的YAML配置文件.kitchen.yml
。在您偏好的文字編輯器中開啟 檔案。.kitchen.yml
檔案包含platforms
區段,指定執行配方的系統。Test Kitchen 會在每個平台上建立執行個體並執行指定的配方。注意
Test Kitchen 預設一次只在一個平台上執行配方。如果您在建立執行個體的任何命令中新增
-p
參數,Test Kitchen 就會以平行方式在每個平台上執行配方。針對本範例,單一平台即已足夠,所以請編輯
.kitchen.yml
以移除centos-6.4
平台。您的.kitchen.yml
檔案現在看起來應如下:--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:
Test Kitchen 只執行
.kitchen.yml
執行清單中的配方。您可以通過使用[
格式,其中識別食譜cookbook_name
::recipe_name
]recipe_name
省略.rb
副檔名。.kitchen.yml
執行清單一開始會包含技術指南的預設配方installpkg::default
。這是您要實作的配方,因此您不需要修改執行清單。 -
建立
installpkg
的子目錄,名為recipes
。如果食譜包含收件者 (大部分都是這樣),則必須位於子目錄中。
recipes
您現在可以將配方新增到技術指南,使用 Test Kitchen 在執行個體上執行它。
執行配方
-
建立包含區段開頭處之 Git 安裝範例程式碼名為
default.rb
的檔案,並將它儲存到recipes
子目錄中。 -
在
installpkg
目錄中執行kitchen converge
。此命令在 Vagrant 中啟動一個新的 Ubuntu 實例,將您的食譜複製到實例,並啟動 Chef 運行以執行運行列表中的.kitchen.yml
配方。 -
若要驗證方案是否成功,請執行
kitchen login
,這會開啟與執行個體的SSH連線。然後,git --version
驗證是否已成功安裝 Git。若要返回您的工作站,請執行exit
。 -
完成後,請執行
kitchen destroy
關機執行個體。下一個範例會使用不同的技術指南。
此範例是非常好的入門方法,但它非常簡單。其他套件的安裝比較複雜,您可能需要執行下列任一或所有作業:
-
建立並設定使用者。
-
建立一或多個資料、日誌等等的目錄。
-
安裝一或多個組態檔案。
-
為不同的作業系統指定不同的套件名稱或屬性值。
-
啟動服務,然後視需要再重新啟動它。
下列範例說明如何解決這些問題,以及其他一些有用的操作。