Créez un AWS OpsWorks for Chef Automate serveur en utilisant AWS CloudFormation - 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.

Créez un AWS OpsWorks for Chef Automate serveur en utilisant AWS CloudFormation

Important

AWS OpsWorks for Chef Automate a atteint sa fin de vie le 5 mai 2024 et a été désactivé pour les nouveaux clients et les clients existants. Nous recommandons aux clients existants de migrer vers Chef SaaS ou vers une solution alternative. Si vous avez des questions, vous pouvez contacter l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

AWS OpsWorks for Chef Automate vous permet d'exécuter un serveur Chef Automate dans AWS. Vous pouvez mettre en service un serveur Chef Automate en 15 minutes environ.

À partir du 3 mai 2021, AWS OpsWorks for Chef Automate stocke certains attributs du serveur Chef Automate dans AWS Secrets Manager. Pour plus d’informations, consultez Intégration avec AWS Secrets Manager.

La procédure pas à pas suivante vous aide à créer un serveur dans en AWS OpsWorks for Chef Automate créant un stack in AWS CloudFormation.

Prérequis

Avant de créer un nouveau serveur Chef Automate, créez les ressources extérieures à AWS OpsWorks for Chef Automate dont vous aurez besoin pour accéder au serveur Chef et le gérer. Pour plus d'informations, consultez Prérequis dans la section Mise en route de ce guide.

Consultez la section OpsWorks -CM de la référence du modèle de guide de AWS CloudFormation l'utilisateur pour en savoir plus sur les valeurs prises en charge et requises dans le AWS CloudFormation modèle que vous utilisez pour créer votre serveur.

Si vous créez un serveur qui utilise un domaine personnalisé, vous avez besoin d'un domaine, d'un certificat et d'une clé privée personnalisés. Vous devez spécifier des valeurs pour ces trois paramètres dans votre AWS CloudFormation modèle. Pour plus d'informations sur les exigences relatives aux CustomPrivateKey paramètresCustomDomain,, etCustomCertificate,,,,,,, consultez CreateServerle manuel de référence de l'API AWS OpsWorks CM.

Créez un mot de passe pour l'attribut de moteur CHEF_AUTOMATE_ADMIN_PASSWORD. La longueur du mot de passe est de huit caractères au minimum et de 32 au maximum. Le mot de passe peut contenir des lettres, des nombres et des caractères spéciaux (!/@#$%^+=_). Il doit contenir au moins une lettre en minuscule, une lettre en majuscule, un chiffre et un caractère spécial. Vous spécifiez ce mot de passe dans votre AWS CloudFormation modèle ou en tant que valeur du CHEF_AUTOMATE_ADMIN_PASSWORD paramètre lorsque vous créez votre pile.

Générez une paire de clés RSA codée en base64 avant de commencer à créer un serveur Chef Automate dans. AWS CloudFormation La clé publique de la paire est la valeur deCHEF_AUTOMATE_PIVOTAL_KEY, spécifique à Chef, issue EngineAttributesde l'CreateServerAPI. Cette clé est fournie sous forme de valeur de Parameters dans la AWS CloudFormation console ou dans la create-stack commande du AWS CLI. Pour générer cette clé, nous suggérons les méthodes suivantes.

  • Sur les ordinateurs Linux, vous pouvez générer cette clé en exécutant la commande OpenSSL suivante.

    openssl genrsa -out pivotal_key_file_name.pem 2048

    Ensuite, exportez dans un fichier la partie clé publique RSA de la paire. La clé publique devient la valeur de CHEF_AUTOMATE_PIVOTAL_KEY.

    openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  • Sur les ordinateurs Windows, vous pouvez utiliser l'utilitaire PuTTYgen pour générer une paire de clés RSA encodées en base64. Pour de plus amples informations, veuillez consulter PuTTYgen - Key Generator for PuTTY on Windows sur SSH.com.

Créer un serveur Chef Automate dans AWS CloudFormation

Cette section décrit comment utiliser un AWS CloudFormation modèle pour créer une pile qui crée un AWS OpsWorks for Chef Automate serveur. Vous pouvez le faire à l'aide de la AWS CloudFormation console ou du AWS CLI. Un exemple de AWS CloudFormation modèle est à votre disposition pour créer une pile de AWS OpsWorks for Chef Automate serveurs. Veillez à mettre à jour l'exemple de modèle avec votre propre nom de serveur, vos rôles IAM, votre profil d'instance, la description du serveur, le nombre de sauvegardes conservées, les options de maintenance et les balises facultatives. Si votre serveur doit utiliser un domaine personnalisé, vous devez spécifier des valeurs pour les CustomPrivateKey paramètres CustomDomainCustomCertificate, et dans votre AWS CloudFormation modèle. Vous pouvez spécifier les attributs CHEF_AUTOMATE_PIVOTAL_KEY du moteur CHEF_AUTOMATE_ADMIN_PASSWORD et leurs valeurs dans le AWS CloudFormation modèle, ou fournir uniquement les attributs, puis spécifier des valeurs pour les attributs dans l'assistant ou la create-stack commande AWS CloudFormation Create Stack. Pour plus d'informations sur ces attributs, consultez Créez un serveur Chef Automate dans AWS Management Console dans la section Mise en route de ce guide.

Créer d'un serveur Chef Automate en utilisant AWS CloudFormation (console)

  1. Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

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

  3. Dans Prérequis - Préparer le modèle, si vous utilisez le AWS CloudFormation modèle d'exemple, choisissez Le modèle est prêt.

  4. Dans Specify template (Spécifier le modèle), choisissez la source de votre modèle. Pour cette procédure pas à pas, choisissez Télécharger un fichier modèle, puis téléchargez un AWS CloudFormation modèle qui crée un serveur Chef Automate. Accédez à votre fichier de modèle, puis choisissez Suivant.

    Un AWS CloudFormation modèle peut être au format YAML ou JSON. Un AWS CloudFormation modèle d'exemple est à votre disposition ; veillez à remplacer les valeurs d'exemple par les vôtres. Vous pouvez utiliser le concepteur de AWS CloudFormation modèles pour créer un nouveau modèle ou valider un modèle existant. Pour plus d'informations sur la procédure, consultez Présentation de l'interface de conception AWS CloudFormation dans le guide de l'utilisateur AWS CloudFormation .

    CloudFormation Créer une page de pile
  5. Sur la page Specify stack details (Spécifier les détails de la pile), saisissez un nom pour votre pile. Il doit être différent du nom de votre serveur, car il s'agit uniquement d'un nom de pile. Dans la zone Paramètres, collez les valeurs créées dans Prérequis. Entrez le mot de passe dans le Mot de passe.

    Collez le contenu du fichier clé RSA dedans PivotalKey. Dans la AWS CloudFormation console, vous devez ajouter des caractères newline (\n) à la fin de chaque ligne de la valeur clé pivot, comme indiqué dans la capture d'écran suivante. Choisissez Suivant.

    Spécifiez la page de détails de la pile dans CloudFormation
  6. Sur la page Configurer les options de pile, vous pouvez ajouter des balises au serveur que vous créez avec la pile et choisir un rôle IAM pour créer des ressources si vous n'avez pas encore spécifié de rôle IAM à utiliser dans votre modèle. Une fois les options spécifiées, choisissez Suivant. Pour plus d'informations sur les options avancées telles que les déclencheurs d'annulation, consultez la section Configuration des options de AWS CloudFormation pile dans le guide de l'AWS CloudFormation utilisateur.

  7. Sur la page Vérification, vérifiez vos choix. Lorsque vous êtes prêt à créer votre pile de serveur, choisissez Create stack (Créer une pile).

    Pendant que vous attendez de AWS CloudFormation créer la pile, consultez l'état de création de la pile. Si la création de la pile échoue, examinez les messages d'erreur affichés dans la console pour vous aider à résoudre le problème. Pour plus d'informations sur la résolution des erreurs dans les piles AWS CloudFormation , consultez Dépannage des erreurs dans le guide de l'utilisateur AWS CloudFormation .

    Lorsque la création du serveur est terminée, votre serveur Chef Automate est disponible sur la page d'accueil d' AWS OpsWorks for Chef Automate , avec un statut en ligne. Générez un nouveau kit de démarrage et les informations d'identification du tableau de bord Chef Automate à partir de la page Propriétés du serveur. Une fois que le serveur est en ligne, le tableau de bord Chef Automate est disponible sur le domaine du serveur, à une URL au format suivant : https://your_server_name-randomID.region.opsworks-cm.io.

    Note

    Si vous avez spécifié un domaine, un certificat et une clé privée personnalisés pour votre serveur, créez une entrée CNAME dans l'outil de gestion DNS de votre entreprise qui associe votre domaine personnalisé au point de terminaison généré AWS OpsWorks for Chef Automate automatiquement pour le serveur. Vous ne pouvez pas gérer le serveur ou vous connecter au tableau de bord Chef Automate pour le serveur tant que vous n'avez pas mappé le point de terminaison généré à votre valeur de domaine personnalisée.

    Pour obtenir la valeur du point de terminaison généré, exécutez la AWS CLI commande suivante une fois que votre serveur est en ligne :

    aws opsworks describe-servers --server-name server_name

Créer un serveur Chef Automate en utilisant AWS CloudFormation (CLI)

Si votre ordinateur local n'exécute pas déjà le AWS CLI, téléchargez-le et installez-le AWS CLI en suivant les instructions d'installation du guide de l'utilisateur de l'interface de ligne de commande AWS. Cette section ne décrit pas tous les paramètres que vous pouvez utiliser avec la commande create-stack. Pour plus d'informations sur les paramètres create-stack, consultez create-stack dans la Référence de l'AWS CLI .

  1. Veillez à suivre les étapes requises détaillées dans Prérequis pour créer un serveur AWS OpsWorks for Chef Automate .

  2. Créez un rôle de service et un profil d'instance. AWS OpsWorks fournit un AWS CloudFormation modèle que vous pouvez utiliser pour créer les deux. Exécutez la AWS CLI commande suivante pour créer une AWS CloudFormation pile qui crée le rôle de service et le profil d'instance pour vous.

    aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM

    Une AWS CloudFormation fois la pile créée, recherchez et copiez les ARN des rôles de service dans votre compte.

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    Dans les résultats de la commande list-roles, recherchez les entrées de rôle de service et de profil d'instance ressemblant à ce qui suit. Notez les ARN du rôle de service et du profil d'instance, puis ajoutez-les au AWS CloudFormation modèle que vous utilisez pour créer votre pile de serveurs.

    { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
  3. Créez le AWS OpsWorks for Chef Automate serveur en exécutant à nouveau la create-stack commande.

    • Remplacez stack_name par le nom de votre pile. Il s'agit du nom de la AWS CloudFormation pile, pas de votre serveur Chef Automate. Le nom du serveur Chef Automate est la valeur de ServerName dans votre AWS CloudFormation modèle.

    • Remplacez modèle par le chemin d'accès à votre fichier de modèle et l'extension yaml ou json par .yaml ou .json, le cas échéant.

    • Les valeurs de --parameters correspondent à celles EngineAttributesde l'CreateServerAPI. Pour Chef, les attributs de moteur fournis par l'utilisateur pour créer un serveur sont CHEF_AUTOMATE_PIVOTAL_KEY, une clé publique RSA encodée en base64 générée à l'aide des utilitaires décrits dans Prérequis, et CHEF_AUTOMATE_ADMIN_PASSWORD, un mot de passe de 8 à 32 caractères créé par vos soins. Pour en savoir plus sur CHEF_AUTOMATE_ADMIN_PASSWORD, consultez Créez un serveur Chef Automate à l'aide du AWS CLI. Vous pouvez fournir un pointeur vers le fichier PEM contenant votre clé pivotale comme valeur du paramètre PivotalKey, tel qu'illustré dans l'exemple. Si les valeurs pour CHEF_AUTOMATE_ADMIN_PASSWORD et ne CHEF_AUTOMATE_PIVOTAL_KEY sont pas spécifiées dans votre modèle, vous devez les fournir dans votre AWS CLI commande.

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=PivotalKey,ParameterValue="base64_encoded_RSA_public_key_value"

    Voici un exemple qui inclut des exemples de valeurs pour les attributs CHEF_AUTOMATE_PIVOTAL_KEY et CHEF_AUTOMATE_ADMIN_PASSWORD. Exécutez une commande similaire si vous n'avez pas spécifié de valeurs pour ces attributs dans votre AWS CloudFormation modèle.

    aws cloudformation create-stack --stack-name "OpsWorksCMChefServerStack" --template-body file://opsworkscm-server.yaml --parameters ParameterKey=PivotalKey,ParameterValue="$(openssl rsa -in "pivotalKey.pem" -pubout)" ParameterKey=Password,ParameterValue="SuPer\$ecret890"
  4. Lorsque la création de la pile est terminée, ouvrez la page Propriétés du nouveau serveur dans la AWS OpsWorks for Chef Automate console et téléchargez un kit de démarrage. Le téléchargement d'un nouveau kit de démarrage réinitialise le mot de passe administrateur du tableau de bord Chef Automate.

  5. Si votre serveur utilise un domaine, un certificat et une clé privée personnalisés, suivez les étapes de configuration de knife.rb dans (Facultatif) Configurer knife pour utiliser un domaine personnalisé, puis passez à l'étape 7.

    Si vous n'utilisez pas de domaine personnalisé, téléchargez le certificat d'autorité de certification (CA) racine depuis l'emplacement du compartiment Amazon S3 suivant :https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem. Enregistrez le fichier de certificat dans un emplacement sécurisé, mais pratique. Ce certificat est nécessaire pour configurer knife.rb dans l'étape suivante.

  6. Pour utiliser des commandes knife sur le nouveau serveur, mettez à jour les paramètres du fichier de configuration knife.rb Chef. Un exemple de fichier knife.rb est inclus avec le kit de démarrage. L'exemple suivant montre comment configurer knife.rb sur un serveur qui n'utilise pas de domaine personnalisé. Si vous utilisez un domaine personnalisé, consultez (Facultatif) Configurer knife pour utiliser un domaine personnalisé pour obtenir les instructions de configuration de knife.

    • Remplacez POINT DE TERMINAISON par la valeur de point de terminaison du serveur. Cela fait partie de la sortie de l'opération de création de pile. Vous pouvez supprimer le point de terminaison en exécutant la commande suivante.

      aws cloudformation describe-stacks --stack-name stack_name
    • Remplacez key_pair_file.pem dans la configuration client_key par le nom du fichier PEM contenant la clé CHEF_AUTOMATE_PIVOTAL_KEY utilisée pour créer votre serveur.

      base_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..') log_level :info log_location STDOUT node_name 'pivotal' client_key File.join(base_dir, '.chef', 'key_pair_file.pem') syntax_check_cache_path File.join(base_dir, '.chef', 'syntax_check_cache') cookbook_path [File.join(base_dir, 'cookbooks')] chef_server_url 'ENDPOINT/organizations/default' ssl_ca_file File.join(base_dir, '.chef', 'ca_certs', 'opsworks-cm-ca-2020-root.pem') trusted_certs_dir File.join(base_dir, '.chef', 'ca_certs')
  7. Lorsque le processus de création du serveur est terminé, accédez à Configuration d'un serveur Chef à l'aide du Starter Kit. Si la création de la pile échoue, examinez les messages d'erreur affichés dans la console pour vous aider à résoudre le problème. Pour plus d'informations sur la résolution des erreurs dans les AWS CloudFormation piles, consultez la section Résolution des erreurs dans le guide de l'AWS CloudFormation utilisateur.