

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
<a name="opscm-unattend-assoc"></a>

**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](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/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](opscm-starterkit.md) 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](https://supermarket.chef.io/cookbooks/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' OpsWorks `associate-node`API avec 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](opscm-disassociate-node.md) ce guide et la documentation [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html)de l' AWS OpsWorks for Chef Automate API.

**Topics**
+ [Systèmes d'exploitation pris en charge](#w2ab1b9c28c17c15c17)
+ [Étape 1 : créer un rôle IAM à utiliser comme profil d'instance](#opscm-create-instance-profile)
+ [Étape 2 : Installation du livre de recettes Chef Client](#w2ab1b9c28c17c15c21)
+ [Étape 3 : Création d'instances en utilisant un script d'association sans surveillance](#opscm-unattend-script)
+ [Autres méthodes d'automatisation des exécutions répétées de `chef-client`](#w2ab1b9c28c17c15c25)
+ [Rubriques connexes](#opscm-unattend-assoc-related)

## Systèmes d'exploitation pris en charge
<a name="w2ab1b9c28c17c15c17"></a>

Pour obtenir la liste actuelle des systèmes d'exploitation pris en charge pour les nœuds, consultez le [site web Chef](https://docs.chef.io/platforms.html).

## Étape 1 : créer un rôle IAM à utiliser comme profil d'instance
<a name="opscm-create-instance-profile"></a>

Créez un rôle Gestion des identités et des accès AWS (IAM) à utiliser comme profil d' EC2 instance et associez la politique suivante au rôle IAM. Cette politique permet à l'API AWS OpsWorks for Chef Automate (`opsworks-cm`) de communiquer avec l' EC2 instance lors de l'enregistrement du nœud. Pour plus d'informations sur les profils d'instance, consultez la section [Utilisation des profils d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dans la EC2 documentation Amazon. 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role-console) dans la documentation Amazon EC2 .

------
#### [ JSON ]

****  

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

------

## Étape 2 : Installation du livre de recettes Chef Client
<a name="w2ab1b9c28c17c15c21"></a>

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](opscm-starterkit.md#opscm-berkshelf) 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
<a name="opscm-unattend-script"></a>

1. Pour créer des EC2 instances, vous pouvez copier le `userdata` script depuis le [kit de démarrage](opscm-starterkit.md) vers la `userdata` section des instructions relatives aux EC2 instances, les configurations de lancement du groupe Amazon EC2 Auto Scaling ou un CloudFormation modèle. Pour plus d'informations sur l'ajout de scripts aux données utilisateur, consultez [Exécuter des commandes sur votre instance Linux au lancement](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) dans la EC2 documentation Amazon.

   Ce script exécute la [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html)commande `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`.

1. Suivez la procédure décrite dans la [section Lancement d'une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) dans la EC2 documentation, avec les modifications ici. Dans l'assistant de lancement d' EC2 instance, choisissez une AMI Amazon Linux.

1. 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](#opscm-create-instance-profile), comme étant votre rôle IAM.

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

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

1. 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.

1. 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`.

1. 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`
<a name="w2ab1b9c28c17c15c25"></a>

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 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](https://docs.chef.io/ctl_chef_client.html).

## Rubriques connexes
<a name="opscm-unattend-assoc-related"></a>

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.
+ [Utilisation d'AWS OpsWorks pour Chef Automate pour gérer les EC2 instances avec Auto Scaling](https://aws.amazon.com/blogs/mt/using-aws-opsworks-for-chef-automate-to-manage-ec2-instances-with-auto-scaling/)
+ [OpsWorks pour Chef Automate — Démarrage automatique des nœuds dans différents comptes](https://aws.amazon.com/blogs/mt/opsworks-for-chef-automate-automatically-bootstrapping-nodes-in-different-accounts/)