選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

步驟 1:在「堆疊」中建立堆 AWS OpsWorks 疊、圖層和實體 - AWS OpsWorks

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

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

步驟 1:在「堆疊」中建立堆 AWS OpsWorks 疊、圖層和實體

重要

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

若要使用 AWS OpsWorks Stacks 做為管線的部署提供者,您必須先在該層中具有堆疊、層和至少一個執行個體。雖然您可以按照 Linux 堆 AWS OpsWorks 疊入門或 Windows 堆疊入門中的指示在堆疊中建立堆疊,但為了節省您的時間,本範例會使用範 AWS CloudFormation 本來建立以 Linux 為基礎的 Chef 12 堆疊、層和執行個體。此範本建立的執行個體會執行 Amazon Linux 2016.03,且執行個體類型為 c3.large。雖然範本不會設定您的堆疊使用自訂技術指南,但您稍後仍會在演練中執行此作業。

重要

AWS CloudFormation 範本必須與稍後將應用程式上傳到的 Amazon S3 儲存貯體以及稍後建立管道所在的相同區域中存放和執行 CodePipeline。目前,僅 CodePipeline 支援美國東部 (維吉尼亞北部) 區域 (us-east-1) 的 AWS OpsWorks 堆疊提供者。本逐步解說中的所有資源應建立於美國東部 (維吉尼亞北部) 區域。

如果堆疊建立失敗,您可能會接近帳戶允許的最大IAM角色數目。如果您的帳戶無法啟動執行個體類型為 c3.large 的執行個體,堆疊建立也可能失敗。例如,如果您使用的是 AWS 免費方案,您可能會收到類似的錯誤訊息Root device type: must be included in EBS。如果您的帳戶對於允許建立的執行個體類型有限制,例如 AWS 免費方案的限制,請嘗試將範本執行個體區塊中的InstanceType參數值變更為您的帳戶可以使用的執行個體類型。

若要使用建立堆疊、圖層和實體 AWS CloudFormation
  1. 將以下 AWS CloudFormation 範本複製到新的純文字文件中。將檔案儲存到本機電腦上方便的位置,並將其命名為 NewOpsWorksStack.template 或其他方便您使用的名稱。

    { "AWSTemplateFormatVersion": "2010-09-09", "Mappings": { "Region2Principal": { "us-east-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "us-west-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "us-west-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "eu-west-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-southeast-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-northeast-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-northeast-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-southeast-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "sa-east-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "cn-north-1": { "EC2Principal": "ec2.amazonaws.com.cn", "OpsWorksPrincipal": "opsworks.amazonaws.com.cn" }, "eu-central-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" } } }, "Parameters": { "EC2KeyPairName": { "Type": "String", "Description": "The name of an existing EC2 key pair that lets you use SSH to connect to the OpsWorks instance." } }, "Resources": { "CPOpsDeploySecGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription" : "Lets you manage OpsWorks instances to which you deploy apps with CodePipeline" } }, "CPOpsDeploySecGroupIngressHTTP": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties" : { "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : "0.0.0.0/0", "GroupId": { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } } }, "CPOpsDeploySecGroupIngressSSH": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties" : { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0", "GroupId": { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } } }, "MyStack": { "Type": "AWS::OpsWorks::Stack", "Properties": { "Name": { "Ref": "AWS::StackName" }, "ServiceRoleArn": { "Fn::GetAtt": [ "OpsWorksServiceRole", "Arn" ] }, "ConfigurationManager" : { "Name": "Chef","Version": "12" }, "DefaultOs": "Amazon Linux 2016.03", "DefaultInstanceProfileArn": { "Fn::GetAtt": [ "OpsWorksInstanceProfile", "Arn" ] }, "UseCustomCookbooks": "false" } }, "MyLayer": { "Type": "AWS::OpsWorks::Layer", "Properties": { "StackId": { "Ref": "MyStack" }, "Name": "Node.js App Server", "Type": "custom", "Shortname": "app1", "EnableAutoHealing": "true", "AutoAssignElasticIps": "false", "AutoAssignPublicIps": "true", "CustomSecurityGroupIds": [ { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } ] }, "DependsOn": [ "MyStack", "CPOpsDeploySecGroup" ] }, "OpsWorksServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ { "Fn::FindInMap": [ "Region2Principal", { "Ref": "AWS::Region" }, "OpsWorksPrincipal" ] } ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "opsworks-service", "PolicyDocument": { "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*" ], "Resource": "*" } ] } } ] } }, "OpsWorksInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksInstanceRole" } ] } }, "OpsWorksInstanceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ { "Fn::FindInMap": [ "Region2Principal", { "Ref": "AWS::Region" }, "EC2Principal" ] } ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "s3-get", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*" } ] } } ] } }, "myinstance": { "Type": "AWS::OpsWorks::Instance", "Properties": { "LayerIds": [ { "Ref": "MyLayer" } ], "StackId": { "Ref": "MyStack" }, "InstanceType": "c3.large", "SshKeyName": { "Ref": "EC2KeyPairName" } } } }, "Outputs": { "StackId": { "Description": "Stack ID for the newly created AWS OpsWorks stack", "Value": { "Ref": "MyStack" } } } }
  2. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudFormation 中開啟 AWS CloudFormation 主控台。

  3. 在 AWS CloudFormation 首頁上,選擇 [建立堆疊]。

  4. Select Template (選取範本) 頁面上的 Choose a template (選擇範本) 區域中,選擇 Upload a template to Amazon S3 (將範本上傳至 Amazon S3),然後選擇 Browse (瀏覽)

  5. 瀏覽至您在步驟 1 中儲存的 AWS CloudFormation 範本,然後選擇「開啟」。在 Select Template (選取範本) 頁面上,請選擇 Next (下一步)。

    選取 AWS CloudFormation 建立堆疊精靈的範本頁面。
  6. 在 [指定詳細資料] 頁面上 CodePipelineDemo,命名堆疊或帳戶專屬的任何堆疊名稱。如果您選擇不同的堆疊名稱,請變更整個本演練中該堆疊的名稱。

  7. 在 [參數] 區域中,提供建立 AWS OpsWorks Stacks 執行個體後要用來存取其 EC2 key pair 的名稱。選擇 Next (下一步)

  8. 選項頁面上,選擇下一步。(本演練不需要執行此頁面上的設定。)

  9. 您在本逐步解說中使用的 AWS CloudFormation 範本會建立IAM角色、執行個體設定檔和執行個體。

    重要

    選擇 [建立] 之前,請選擇 [成本] 以預估使用此範本建立 AWS 資源時可能產生的費用。

    如果可 AWS CloudFormation 以接受建立IAM資源,請選取 [我確認此範本可能造成建立IAM資源] 核取方塊,然後選擇 [建立]。如果無法接受建立IAM資源,則無法繼續執行此程序。

  10. 在 AWS CloudFormation 儀表板上,您可以檢視堆疊的建立進度。繼續執行下一個步驟之前,請先等待「狀態」欄中顯示 CREATE_ COMPLETE

    AWS CloudFormation 顯示堆疊建立的儀表板。
確認堆 AWS OpsWorks 疊中的堆疊建立
  1. 在開啟 AWS OpsWorks 主控台https://console.aws.amazon.com/opsworks/

  2. 在「 AWS OpsWorks 堆疊」儀表板上,檢視您建立的堆疊。

    AWS OpsWorks 顯示堆疊建立的儀表板。
  3. 開啟堆疊並檢視 layer 和執行個體。請注意,圖層和實體是使用範 AWS CloudFormation 本中提供的名稱和其他中繼資料建立的。您已準備好設定您的堆疊和 layer 使用自訂的 Chef 技術指南和配方。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。