Étape 1 : créer une pile, une couche et une instance dans AWS OpsWorks Stacks - AWS OpsWorks

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Étape 1 : créer une pile, une couche et une instance dans AWS OpsWorks Stacks

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Pour utiliser AWS OpsWorks Stacks comme fournisseur de déploiement pour un pipeline, vous devez d'abord disposer d'une pile, d'une couche et d'au moins une instance dans la couche. Bien que vous puissiez créer une pile dans AWS OpsWorks Stacks en suivant les instructions de Getting Started with Linux Stacks ou Getting Started with Windows Stacks, pour gagner du temps, cet exemple utilise un AWS CloudFormation modèle pour créer une pile, une couche et une instance Chef 12 basées sur Linux. L'instance créée par ce modèle exécute Amazon Linux 2016.03 et possède c3.large comme type d'instance. Bien que le modèle ne configure pas votre pile pour utiliser les livres de recettes personnalisés, vous le ferez ultérieurement dans la procédure pas à pas.

Important

Le AWS CloudFormation modèle doit être stocké et exécuté dans la même région que le compartiment Amazon S3 dans lequel vous téléchargerez ultérieurement votre application et dans la même région dans laquelle vous créerez ultérieurement votre pipeline CodePipeline. Pour le moment, CodePipeline prend en charge le fournisseur AWS OpsWorks Stacks dans la région USA Est (Virginie du Nord) (us-east-1) uniquement. Toutes les ressources de cette procédure pas à pas doivent être créées dans la région de l'est des États-Unis (Virginie du Nord).

Si la création de la pile échoue, il se peut que vous approchiez du nombre maximal de rôles IAM pour votre compte. La création de piles peut également échouer si votre compte ne peut pas lancer les instances avec un type d'instance c3.large. Par exemple, si vous utilisez le niveau AWS gratuit, vous pouvez recevoir un message d'erreur tel queRoot device type: must be included in EBS. Si les types d'instances que vous êtes autorisé à créer sont limités dans votre compte, comme les limites imposées par le niveau AWS gratuit, essayez de remplacer la valeur du InstanceType paramètre dans le bloc d'instances du modèle par un type d'instance que votre compte peut utiliser.

Pour créer une pile, une couche et une instance à l'aide de AWS CloudFormation
  1. Copiez le AWS CloudFormation modèle suivant dans un nouveau document en texte brut. Enregistrez le fichier à un emplacement approprié sur votre ordinateur local et nommez-le NewOpsWorksStack.template, ou un autre nom qui vous convient.

    { "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. Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

  3. Sur la page d' AWS CloudFormation accueil, choisissez Create stack.

  4. Sur la page Sélectionner un modèle, dans la zone Choisir un modèle, choisissez Télécharger un modèle sur Amazon S3, puis Parcourir.

  5. Accédez au AWS CloudFormation modèle que vous avez enregistré à l'étape 1, puis choisissez Ouvrir. Sur la page Select Template, choisissez Next.

    Sélectionnez la page Modèle de l'assistant AWS CloudFormation Create Stack.
  6. Sur la page Spécifier les détails, nommez la pile CodePipelineDemoou tout autre nom de pile propre à votre compte. Si vous choisissez un autre nom pour votre pile, modifiez le nom de la pile tout au long de cette procédure pas à pas.

  7. Dans la zone Paramètres, indiquez le nom d'une paire de clés EC2 que vous souhaitez utiliser pour accéder à votre instance AWS OpsWorks Stacks après sa création. Choisissez Suivant.

  8. Dans la page Options, choisissez Suivant. (Les paramètres de cette page ne sont pas obligatoires pour cette procédure pas à pas.)

  9. Le AWS CloudFormation modèle que vous utilisez dans cette procédure pas à pas crée des rôles IAM, un profil d'instance et une instance.

    Important

    Avant de choisir Créer, choisissez Coût pour estimer les frais que vous pourriez encourir AWS pour créer des ressources avec ce modèle.

    Si la création de ressources IAM est acceptable, cochez la case Je reconnais que ce modèle peut AWS CloudFormation entraîner la création de ressources IAM, puis choisissez Créer. Si la création de ressources IAM n'est pas acceptable, vous ne pouvez pas poursuivre cette procédure.

  10. Sur le AWS CloudFormation tableau de bord, vous pouvez voir la progression de la création de la pile. Avant de passer à l'étape suivante, patientez jusqu'à ce que CREATE_COMPLETE s'affiche dans la colonne Statut.

    AWS CloudFormation tableau de bord montrant la création de piles.
Pour vérifier la création d'une pile dans AWS OpsWorks Stacks
  1. Ouvrez la AWS OpsWorks console à l'adresse https://console.aws.amazon.com/opsworks/.

  2. Sur le tableau de bord AWS OpsWorks Stacks, visualisez la pile que vous avez créée.

    AWS OpsWorks tableau de bord montrant la création de piles.
  3. Ouvrez la pile, puis affichez la couche et l'instance. Notez que la couche et l'instance ont été créées avec les noms et autres métadonnées fournis dans le AWS CloudFormation modèle. Vous êtes prêt à configurer votre pile et la couche de manière à utiliser les livres de recettes et les recettes personnalisés de Chef.