AWS CodePipeline 搭配 AWS OpsWorks Stacks - Chef 11 堆疊 - AWS OpsWorks

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

AWS CodePipeline 搭配 AWS OpsWorks Stacks - Chef 11 堆疊

重要

AWS OpsWorks Stacks不再接受新客戶。現有客戶可以正常使用OpsWorks主控台、API、CLI 和CloudFormation資源,直到 2024 年 5 月 26 日為止,屆時他們將停止使用。為了為此轉換做好準備,我們建議您AWS Systems Manager盡快將堆疊轉換為。如需詳細資訊,請參閱 AWS OpsWorks Stacks壽命終止常見問題將應用程式移轉至AWS OpsWorks Stacks應用AWS Systems Manager程式管

AWS CodePipeline可讓您建立持續交付管道,以追蹤來源的程式碼變更CodeCommit,例如 Amazon Simple Storage Service (Amazon S3) 或 GitHub. 本主題中的範例說明如何從 CodePipeline 建立簡易管道,並做為在 AWS OpsWorks Stacks layer 上執行之程式碼的部署工具使用。在此範例中,您會為簡易的 PHP 應用程式建立管道,然後指示 AWS OpsWorks Stacks 在 Chef 11.10 堆疊中某個 layer 的所有執行個體 (在此範例中為單一執行個體) 上執行該應用程式。

注意

本主題說明如何使用管道在 Chef 11.10 堆疊上執行與更新應用程式。如需如何使用管道在 Chef 12 堆疊上執行與更新應用程式的資訊,請參閱 AWS CodePipeline 搭配 AWS OpsWorks Stacks - Chef 12 堆疊。傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊,請參閱如何清空 S3 儲存貯體?如何刪除 S3 儲存貯體?

先決條件

在您開始本演練之前,請確定您具有執行下列所有任務的管理員許可。您可以是已套用AdministratorAccess原則之群組的成員,也可以是具有下表所示權限和原則之群組的成員。安全性最佳作法是,您應該屬於具有執行下列工作之權限的群組,而不是將必要的權限指派給個別使用者。

如需在 IAM 中建立安全群組和指派許可給群組的詳細資訊,請參閱建立 IAM 使用者群組。如需管理 AWS OpsWorks Stacks 許可的詳細資訊,請參閱最佳實務:管理許可

許可 建議連接至群組的政策

在 AWS OpsWorks Stacks 中建立和編輯堆疊、layer 與執行個體。

AWSOpsWorks_FullAccess

在 AWS CloudFormation 中建立、編輯和執行範本。

AmazonCloudFormationFullAccess

建立、編輯與 Amazon S3。

亞馬遜 FullAccess

在 CodePipeline 中建立、編輯和執行管道,尤其是將 AWS OpsWorks Stacks 做為提供者使用的管道。

AWSCodePipeline_FullAccess

您必須擁有 Amazon EC2 儲存貯存 key pair,當您執行建立本演練中範例堆疊、layer 和執行個體的 AWS CloudFormation 範本時,系統會提示您提供此金鑰對的名稱。如需有關在 Amazon EC2 主控台取得 key pair 的詳細資訊,請參閱 Amazon EC2 文件中的建立金鑰配對。該 key pair 應位於美國東部 (維吉尼亞北部) 區域。如果您在該區域中已有金鑰對,則可以使用該現有金鑰對。

其他支援的案例

本演練會建立包含一個 Source (來源) 和一個 Deploy (部署) 階段的簡易管道。不過,您可以建立將 AWS OpsWorks Stacks 做為提供者使用的更複雜管道。下列是支援的管道和案例範例:

  • 您可以編輯管道,以將 Chef 技術指南新增至 Source (來源) 階段,以及將已更新技術指南的相關聯目標新增至 Deploy (部署) 階段。在此情況下,您可以新增 Deploy (部署) 動作,以在您變更來源時觸發技術指南更新。已更新的技術指南會比應用程式先部署。

  • 您可以建立複雜的管道 (內含自訂技術指南與多個應用程式),並將其部署到 AWS OpsWorks Stacks 堆疊。該管道會同時追蹤對應用程式和技術指南來源所做的變更,並在您變更後重新部署。下圖示範類似的複雜管道範例:

如需使用 CodePipeline 的詳細資訊,請參閱 CodePipeline 文件