

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

# 技術指南儲存庫
<a name="workingcookbook-installingcustom-repo"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

您的自訂技術指南必須存放在線上儲存庫，如 .zip 檔案的封存或如 Git 的來源控制管理員。堆疊只能有一個自訂技術指南儲存庫，但儲存庫可以包含任意數目的技術指南。當您安裝或更新技術指南時， OpsWorks Stacks 會在每個堆疊執行個體的本機快取中安裝整個儲存庫。例如，當執行個體需要執行一或多個配方時，會使用來自本機快取的程式碼。

下列說明如何建構您的技術指南儲存庫，這取決於類型。圖中的斜體文字代表使用者定義的目錄和檔案名稱，包括儲存庫或封存名稱。

**來源控制管理員**  
OpsWorks Stacks 支援下列來源控制管理員：  
+ Linux 堆疊 – Git 和 Subversion
+ Windows 堆疊 – Git
下列顯示所需的目錄和檔案結構：  

![\[SCM 技術指南儲存庫的必要結構\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cookbook_folders.png)

+ 技術指南目錄必須全在最上層。

**存檔**  
OpsWorks Stacks 支援下列封存：  
+ Linux 堆疊 – zip、gzip、bzip2 或 tarball 檔案，存放在 Amazon S3 或網站 (HTTP 封存）。

  OpsWorks Stacks 不支援未壓縮的 tarball。
+ Windows 堆疊 – zip 和 tgz (gzip 壓縮 tar) 檔案，存放在 Amazon S3 上。
下列顯示所需的目錄和檔案結構，這取決於您執行的是 Linux 或 Windows 堆疊。技術指南結構和 SCM 儲存庫結構相同，所以使用省略號 (...) 表示。  

![\[用於存檔的必要結構\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cookbook_folders_archive.png)

+ Linux 堆疊 – 技術指南目錄必須包含在根目錄中。
+ Windows 堆疊 – 技術指南必須位於封存的頂層。

  如果您只有一個技術指南，您可以選擇略過技術指南目錄，將技術指南檔案放在最上層。在這種情況下， OpsWorks Stacks 會從 metadata.rb 取得技術指南名稱。

每個技術指南目錄最少有下列標準目錄和檔案之一，一般全都有，它們必須使用標準名稱：
+ `attributes` – 技術指南的屬性檔案。
+ `recipes` – 技術指南的配方檔案。
+ `templates` – 技術指南的範本檔案。
+ *other* – 包含其他檔案類型的選用使用者定義目錄，例如定義或規格。
+ `metadata.rb` – 技術指南的中繼資料。

  針對 Chef 11.10 和更新版本，如果您的配方依賴其他技術指南，您必須在您技術指南的 `metadata.rb` 檔案中包含對應的 `depends` 陳述式。例如，若您的技術指南包含具有如 `include_recipe anothercookbook::somerecipe` 陳述式的配方，則您技術指南的 `metadata.rb` 檔案就必須包含下列內容：`depends "anothercookbook"`。如需詳細資訊，請參閱 [About Cookbook Metadata](http://docs.chef.io/cookbook_repo.html#about-cookbook-metadata)。

範本必須在 `templates` 目錄的子目錄中，此目錄至少包含一或多個子目錄。這些子目錄也可以有子目錄。
+ 範本通常有一個 `default` 子目錄，包含 Chef 預設使用的範本檔案。
+ 「其他」**代表可用於操作系統專屬範本的選用子目錄。
+ 根據 [File Specificity](http://docs.chef.io/templates.html#file-specificity) 中所述的命名慣例，Chef 會自動使用來自適當子目錄的範本。例如，在 Amazon Linux 和 Ubuntu 作業系統，您可以將作業系統專屬範本分別放在名為 `amazon` 或 `ubuntu` 的子目錄中。

如何處理自訂技術指南的詳細資訊，取決於您慣用的儲存庫類型。

**使用封存**

1. 使用上述章節顯示的資料夾結構實作您的技術指南。

1. 建立壓縮封存並將其上傳至 Amazon S3 儲存貯體或網站。

   如果您更新技術指南，您必須建立和上傳新的封存檔案。傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊，請參閱[如何清空 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)或[如何刪除 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

**使用 SCM**

1. 使用前文顯示的結構設定 Git 或 Subversion 儲存庫。

1. 或者，使用儲存庫的版本控制功能來實作多個分支或版本。

   如果您更新技術指南，您可以在新的分支中如此做，只指示 OpsWorks 使用新版本。您也可以指定特定的標記版本。如需詳細資訊，請參閱[指定自訂技術指南儲存庫](workingcookbook-installingcustom-enable.md#workingcookbook-installingcustom-enable-repo)。

[安裝自訂技術指南](workingcookbook-installingcustom-enable.md) 說明如何讓 OpsWorks Stacks 在堆疊的執行個體上安裝您的技術指南儲存庫。

**重要**  
更新儲存庫中的現有技術指南後，您必須執行`update_cookbooks`堆疊命令，指示 OpsWorks Stacks 更新每個線上執行個體的本機快取。如需詳細資訊，請參閱[執行堆疊命令](workingstacks-commands.md)。