

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Schritt 1: Erstellen eines Stacks, Layers und einer Instance in OpsWorks Stacks
<a name="other-services-cp-chef11-stack"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

Um OpsWorks Stacks als Bereitstellungsanbieter für eine Pipeline verwenden zu können, müssen Sie zunächst über einen Stack, eine Ebene und mindestens eine Instanz in der Ebene verfügen. Sie können zwar einen Stack in OpsWorks Stacks erstellen, indem Sie den Anweisungen unter [Erste Schritte mit Linux Stacks oder [Erste Schritte mit Windows Stacks](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-windows.html)](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-linux.html) folgen. Um Zeit zu sparen, verwendet dieses Beispiel jedoch eine AWS CloudFormation Vorlage, um einen Linux-basierten Chef 11.10-Stack, -Layer und -Instanz zu erstellen. Die Instance, die durch diese Vorlage erstellt wurde, führt Amazon Linux 2016.03 aus und hat den Instance-Typ `c3.large`.

**Wichtig**  
Die CloudFormation Vorlage muss in derselben Region gespeichert und ausgeführt werden wie der Amazon S3 S3-Bucket, in den Sie später Ihre App hochladen, und in derselben Region, in der Sie später Ihre Pipeline erstellen CodePipeline. CodePipeline Unterstützt derzeit nur den OpsWorks Stacks-Anbieter in der Region USA Ost (Nord-Virginia) (us-east-1). Alle Ressourcen in dieser exemplarischen Vorgehensweise sollten in der Region USA Ost (Nord-Virginia) erstellt werden.  
Wenn das Erstellen des Stacks misslingt, haben Sie möglicherweise die maximal zulässige Anzahl der IAM-Rollen für Ihr Konto fast erreicht. Die Stack-Erstellung kann auch fehlschlagen, wenn Ihr Konto Instances des Instance-Typen `c3.large` nicht starten kann. Wenn Sie beispielsweise das AWS kostenlose Kontingent verwenden, erhalten Sie möglicherweise eine Fehlermeldung wie`Root device type: must be included in EBS`. Wenn Ihr Konto Einschränkungen in Bezug auf die Instance-Typen hat, die Sie erstellen dürfen, z. B. Einschränkungen, die durch das AWS kostenlose Kontingent auferlegt werden, versuchen Sie, den Wert des `InstanceType` Parameters im Instance-Block der Vorlage auf einen Instance-Typ zu ändern, den Ihr Konto verwenden kann.

**Um einen Stack, eine Ebene und eine Instanz zu erstellen, verwenden Sie CloudFormation**

1. Kopieren Sie die folgende CloudFormation Vorlage in ein neues Klartext-Dokument. Speichern Sie die Datei an einem geeigneten Ort auf Ihrem lokalen Computer und geben Sie ihr den Namen **NewOpsWorksStack.template** oder einen anderen für Sie passenden Namen.

   ```
   {
     "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.rproxy.govskope.ca.cn",
           "OpsWorksPrincipal": "opsworks.amazonaws.com.rproxy.govskope.ca.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 allows you to use SSH to connect to the OpsWorks instance."
   	 }
     },
     "Resources": {
   	"CPOpsDeploySecGroup": {
   	  "Type": "AWS::EC2::SecurityGroup",
   	  "Properties": {
   	    "GroupDescription" : "Lets you manage OpsWorks instances deployed to by 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": "11.10" },
   		"DefaultOs": "Amazon Linux 2016.03",
           "DefaultInstanceProfileArn": {
             "Fn::GetAtt": [
               "OpsWorksInstanceProfile",
               "Arn"
             ]
           }
         }
       },
       "MyLayer": {
         "Type": "AWS::OpsWorks::Layer",
         "Properties": {
           "StackId": {
             "Ref": "MyStack"
           },
           "Name": "MyLayer",
           "Type": "php-app",
   		"Shortname": "mylayer",
           "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"
         }
       }
     }
   }
   ```

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie auf der CloudFormation Startseite die Option Stack **erstellen** aus.

1. Wählen Sie auf der Seite **Select Template (Vorlage auswählen)** im Bereich **Choose a template (Eine Vorlage auswählen)** die Option **Upload a template to Amazon S3 (Eine Vorlage in Amazon S3 hochladen)** und anschließend **Browse (Durchsuchen)** aus.

1. Navigieren Sie zu der CloudFormation Vorlage, die Sie in Schritt 1 gespeichert haben, und wählen Sie dann **Öffnen** aus. Wählen Sie auf der Seite **Vorlage auswählen** die Option **Weiter** aus.  
![\[Wählen Sie die Vorlagenseite des AWS CloudFormation Create Stack Wizard aus.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/cp_integ_cfstackcreate.png)

1. Geben Sie auf der Seite „**Details angeben**“ den Stack oder einen beliebigen Stacknamen **MyStack**, der für Ihr Konto eindeutig ist, einen Namen. Wenn Sie einen anderen Namen für Ihren Stack auswählen, ändern Sie den Stack-Namen beim Ausführen dieser Anleitung.

1. Geben Sie im Bereich **Parameter** den Namen eines EC2 key pair ein, das Sie für den Zugriff auf Ihre OpsWorks Stacks-Instanz verwenden möchten, nachdem sie erstellt wurde. Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Optionen** **Weiter** aus. (Einstellungen auf dieser Seite sind für diese Anleitung nicht erforderlich.)

1. Die CloudFormation Vorlage, die Sie in dieser exemplarischen Vorgehensweise verwenden, erstellt IAM-Rollen, ein Instanzprofil und eine Instanz.
**Wichtig**  
 Bevor Sie „**Erstellen**“ wählen, wählen Sie „**Kosten“ aus, um die Kosten** zu schätzen, die Ihnen durch die Erstellung von AWS Ressourcen mit dieser Vorlage entstehen könnten.

   **Wenn das Erstellen von IAM-Ressourcen zulässig ist, aktivieren Sie das Kontrollkästchen **Ich bestätige, dass diese Vorlage möglicherweise dazu führt, dass AWS CloudFormation IAM-Ressourcen erstellt, und wählen Sie dann Erstellen** aus.** Wenn das Erstellen von IAM-Ressourcen nicht akzeptabel ist, können Sie mit diesem Verfahren nicht fortfahren.

1. Auf dem CloudFormation Dashboard können Sie den Fortschritt der Erstellung des Stacks verfolgen. Bevor Sie mit dem nächsten Schritt fortfahren, warten Sie, bis **CREATE\$1COMPLETE** in der Spalte **Status** angezeigt wird.  
![\[CloudFormation AWS-Dashboard, das die Stack-Erstellung zeigt.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/cp_integ_createstack.png)

**Um die Stack-Erstellung in OpsWorks Stacks zu überprüfen**

1. Öffnen Sie die OpsWorks Konsole unter. [https://console.aws.amazon.com/opsworks/](https://console.aws.amazon.com/opsworks/)

1. Sehen Sie sich im OpsWorks Stacks-Dashboard den Stack an, den Sie erstellt haben.  
![\[OpsWorks AWS-Dashboard, das die Stack-Erstellung zeigt.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/cp_integ_verifystack.png)

1. Öffnen Sie den Stack und zeigen Sie den Layer und die Instance an. Beachten Sie, dass die Ebene und die Instanz mit den Namen und anderen Metadaten erstellt wurden, die in der CloudFormation Vorlage angegeben sind. Sie sind bereit, Ihre App in einen Amazon S3 S3-Bucket hochzuladen.