Ajouter des nœuds automatiquement AWS OpsWorks for Chef Automate - 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.

Ajouter des nœuds automatiquement AWS OpsWorks for Chef Automate

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.

Cette rubrique explique comment ajouter automatiquement des nœuds Amazon Elastic Compute Cloud (Amazon EC2) à votre serveur Chef. Le code du Starter Kit montre comment ajouter automatiquement des nœuds à l'aide de la méthode sans surveillance. La méthode recommandée d'association sans surveillance (ou automatique) de nouveaux nœuds consiste à configurer le livre de recettes Chef Client. Vous pouvez utiliser le script userdata du Starter Kit et modifier la section run_list du script userdata, ou utiliser votre Policyfile.rb avec les livres de recettes que vous souhaitez appliquer à vos nœuds. Avant d'exécuter l'agent chef-client, installez le livre de recettes Chef Client sur votre serveur Chef, puis installez l'agent chef-client en mode de service avec, par exemple, un rôle HTTPD, comme illustré dans l'exemple de commande suivant.

chef-client -r "chef-client,role[httpd]"

Afin de communiquer avec le serveur Chef, le logiciel agent chef-client doit avoir accès à la clé publique du nœud client. Vous pouvez générer une paire de clés publique-privée dans Amazon EC2, puis transmettre la clé publique à l'appel d'API avec AWS OpsWorks associate-node le nom du nœud. Le script inclus dans le Starter Kit collecte automatiquement vos nom d'organisation, nom de serveur et point de terminaison de serveur. Ceci garantit que le nœud est associé au serveur Chef et que le logiciel agent chef-client qui s'exécute sur ce nœud peut communiquer avec le serveur après la validation de la clé privée.

La version minimale de chef-client prise en charge sur les nœuds associés à un serveur AWS OpsWorks for Chef Automate est 13.x. Nous vous recommandons d'utiliser la chef-client version stable la plus récente.

Pour plus d'informations sur la façon de dissocier un nœud, consultez Dissocier un nœud d'un serveur AWS OpsWorks for Chef Automate ce guide et la documentation disassociate-nodede l' AWS OpsWorks for Chef Automate API.

Systèmes d'exploitation pris en charge

Pour obtenir la liste actuelle des systèmes d'exploitation pris en charge pour les nœuds, consultez le site web Chef.

Étape 1 : créer un rôle IAM à utiliser comme profil d'instance

Créez un rôle AWS Identity and Access Management (IAM) à utiliser comme profil d'instance EC2 et associez la politique suivante au rôle IAM. Cette stratégie permet à l'API AWS OpsWorks for Chef Automate (opsworks-cm) de communiquer avec l'instance EC2 au cours de l'inscription du nœud. Pour plus d'informations sur les profils d'instance, consultez la section Utilisation des profils d'instance dans la documentation Amazon EC2. Pour plus d'informations sur la création d'un rôle IAM, consultez la section Création d'un rôle IAM dans la console dans la documentation Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", ], "Resource": "*", "Effect": "Allow" } ] }

AWS OpsWorks fournit un AWS CloudFormation modèle que vous pouvez utiliser pour créer le rôle IAM avec la déclaration de politique précédente. La AWS CLI commande suivante crée pour vous le rôle de profil d'instance à l'aide de ce modèle. Vous pouvez omettre le --region paramètre si vous souhaitez créer la nouvelle AWS CloudFormation pile dans votre région par défaut.

aws cloudformation --region region ID create-stack --stack-name myChefAutomateinstanceprofile --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM

Étape 2 : Installation du livre de recettes Chef Client

Si vous ne l'avez pas déjà fait, suivez les étapes de la rubrique (Alternative) Utilisation de Berkshelf pour obtenir des livres de recettes d'une source à distance pour vous assurer que votre fichier Berksfile ou Policyfile.rb fasse référence au livre de recettes Chef Client et installe ce livre de recettes.

Étape 3 : Création d'instances en utilisant un script d'association sans surveillance

  1. Pour créer des instances EC2, vous pouvez copier le userdata script depuis le kit de démarrage vers la userdata section des instructions relatives aux instances EC2, les configurations de lancement du groupe Amazon EC2 Auto Scaling ou un modèle. AWS CloudFormation Pour plus d'informations sur l'ajout de scripts aux données utilisateur, consultez Exécuter des commandes sur votre instance Linux au lancement dans la documentation Amazon EC2.

    Ce script exécute la associate-nodecommande opsworks-cm API pour associer un nouveau nœud à votre serveur Chef.

    Par défaut, le nom du nouveau nœud inscrit est l'ID d'instance, mais vous pouvez changer ce nom en modifiant la valeur de la variable NODE_NAME dans le script userdata. Dans la mesure où il est actuellement impossible de changer le nom de l'organisation dans l'interface utilisateur de la console Chef, laissez CHEF_AUTOMATE_ORGANIZATION défini sur default.

  2. Suivez la procédure décrite dans la section Lancement d'une instance de la documentation EC2, en appliquant les modifications indiquées ici. Dans l'assistant de lancement d'instance EC2, choisissez une AMI Amazon Linux.

  3. Sur la page Configurer les détails de l'instance, sélectionnez le rôle que vous avez créé à la section Étape 1 : créer un rôle IAM à utiliser comme profil d'instance, comme étant votre rôle IAM.

  4. Dans la zone Détails avancés, chargez le script userdata.sh que vous avez créé précédemment dans cette procédure.

  5. Aucune modification n'est nécessaire sur la page Add Storage. Accédez à la page Add Tags.

  6. Sur la page Configurer le groupe de sécurité, sélectionnez Ajouter une règle, puis choisissez le type HTTP pour ouvrir les ports 443 et 80 pour le serveur web Apache de cet exemple.

  7. Sélectionnez Review and Launch, puis Launch. Lorsque votre nouveau nœud démarre, il applique les configurations spécifiées par les recettes que vous avez indiquées dans le paramètre RUN_LIST.

  8. Facultatif : si vous avez ajouté le livre de recettes nginx à votre liste d'exécution, lorsque vous ouvrez la page web liée au DNS public de votre nouveau nœud, vous devez voir un site web qui est hébergé par votre serveur web nginx.

Autres méthodes d'automatisation des exécutions répétées de chef-client

Bien que cela soit plus difficile à réaliser et déconseillé, vous pouvez exécuter le script décrit dans cette rubrique uniquement dans le cadre des données utilisateur d'une instance autonome, utiliser un AWS CloudFormation modèle pour l'ajouter aux nouvelles données utilisateur de l'instance, configurer une cron tâche pour exécuter le script régulièrement ou l'exécuter chef-client au sein d'un service. Toutefois, nous vous recommandons la méthode du livre de recettes Chef Client car les autres techniques d'automatisation présentent certains inconvénients.

Pour obtenir la liste complète des paramètres que vous pouvez fournir à chef-client, consultez la documentation Chef.

Les articles de AWS blog suivants offrent plus d'informations sur l'association automatique de nœuds à votre serveur Chef Automate, à l'aide de groupes Auto Scaling ou au sein de plusieurs comptes.