

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.

# Configuration d'un serveur Chef à l'aide du Starter Kit
<a name="opscm-starterkit"></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.

Alors que la création du serveur Chef est encore en cours, ouvrez sa page de propriétés dans la console AWS OpsWorks for Chef Automate . La première fois que vous utilisez un nouveau serveur Chef, la page de propriétés vous invite à télécharger deux éléments requis. Téléchargez ces éléments avant que votre serveur Chef soit en ligne ; les boutons de téléchargement ne sont pas disponibles une fois qu'un nouveau serveur est en ligne.

![\[AWS OpsWorks for Chef Automate nouvelle page de propriétés du serveur\]](http://docs.aws.amazon.com/fr_fr/opsworks/latest/userguide/images/opscm_serverpropsdownload.png)

+ **Informations d'identification de connexion pour le serveur Chef.** Vous utiliserez ces informations d'identification pour vous connecter au tableau de bord Chef Automate, où vous utiliserez les fonctionnalités premium de Chef Automate, telles que les analyses de flux de travail et de conformité. OpsWorks n'enregistre pas ces informations d'identification ; c'est la dernière fois qu'elles sont disponibles pour consultation et téléchargement. Si nécessaire, vous pouvez modifier le mot de passe qui est fourni avec ces informations d'identification une fois connecté.
+ **Starter Kit.** Le Starter Kit contient un fichier README avec des exemples, un fichier de configuration `knife.rb` et une clé privée pour l'utilisateur principal ou central. Une nouvelle paire de clés est générée, et l'ancienne clé est réinitialisée, chaque fois que vous téléchargez le Starter Kit.

Outre les informations d'identification qui ne fonctionnent qu'avec le nouveau serveur, le fichier .zip du Starter Kit inclut un exemple simple de référentiel Chef compatible avec n'importe quel AWS OpsWorks for Chef Automate serveur. Dans le référentiel Chef, vous stockez les livres de recettes, les rôles, les fichiers de configuration et autres artefacts pour la gestion de vos nœuds avec Chef. Nous vous recommandons de stocker ce référentiel dans un système de contrôle de version, comme Git, et de le traiter comme code source. Pour plus d'informations et d'exemples sur la configuration d'un référentiel Chef qui est suivi dans Git, consultez la page [About the chef-repo](https://docs.chef.io/chef_repo.html) dans la documentation Chef.

## Conditions préalables
<a name="finish-server-prereqs"></a>

1. Alors que la création du serveur est encore en cours, téléchargez les informations d'identification de connexion pour le serveur Chef et sauvegardez-les dans un emplacement sécurisé, mais pratique.

1. Téléchargez le Starter Kit et décompressez le fichier .zip Starter Kit dans votre répertoire d'espace de travail. Ne partagez pas la clé privée Starter Kit. Si d'autres utilisateurs gèrent le serveur Chef, ajoutez-les comme administrateurs du tableau de bord Chef Automate plus tard.

1. Téléchargez et installez [Chef Workstation](https://downloads.chef.io/products/workstation) (anciennement connu sous le nom de Chef Development Kit, ou Chef DK) sur l'ordinateur que vous utiliserez pour gérer votre serveur et vos nœuds Chef. L'[https://docs.chef.io/knife.html](https://docs.chef.io/knife.html)utilitaire fait partie de Chef Workstation. Pour obtenir des instructions, voir [Installer Chef Workstation](https://docs.chef.io/workstation/install_workstation/) sur le site Web de Chef.

## Exploration du contenu du Starter Kit
<a name="w2ab1b9c28c15c15"></a>

Le contenu du Starter Kit est le suivant.
+ `cookbooks/` - Répertoire des livres de recettes que vous créez. [Le `cookbooks/` dossier contient le livre de `opsworks-webserver` recettes, un livre de recettes emballé qui dépend du livre de `nginx` recettes du site Web de Chef Supermarket.](https://supermarket.chef.io/cookbooks/nginx) `Policyfile.rb`utilise par défaut le supermarché Chef comme source secondaire si les dépendances des livres de recettes ne sont pas disponibles dans le `cookbooks/` répertoire.
+ `Policyfile.rb` - Fichier de stratégie basé sur Ruby qui définit les livres de recettes, les dépendances et les attributs qui deviennent la stratégie de vos nœuds.
+ `userdata.sh` et `userdata.ps1` - Vous pouvez utiliser des fichiers de données d'utilisateur pour associer automatiquement des nœuds après le lancement de votre serveur Chef Automate. `userdata.sh` est destiné à l'amorçage des nœuds basés sur Linux, et `userdata.ps1` est destiné aux nœuds basés sur Windows.
+ `Berksfile` - Vous pouvez utiliser ce fichier si vous préférez utiliser Berkshelf et des commandes `berks` pour charger les livres de recettes et leurs dépendances. Dans cette procédure, nous utilisons `Policyfile.rb` et des commandes Chef pour charger les livres de recettes, les dépendances et les attributs.
+ `README.md` - Fichier basé sur Markdown qui explique comment utiliser le Starter Kit pour configurer votre serveur Chef Automate pour la première fois.
+ `.chef` est un répertoire masqué qui contient un fichier de configuration knife (`knife.rb`) et un fichier de clé d'authentification secrète (.pem).
  + `.chef/knife.rb` - Fichier de configuration knife (`knife.rb`). Le [https://docs.chef.io/config_rb_knife.html](https://docs.chef.io/config_rb_knife.html)fichier est configuré de telle sorte que les opérations de l'[https://docs.chef.io/knife.html](https://docs.chef.io/knife.html)outil Chef s'exécutent sur le AWS OpsWorks for Chef Automate serveur.
  + `.chef/ca_certs/opsworks-cm-ca-2020-root.pem` - Clé privée SSL signée par une autorité de certification (CA) fournie par OpsWorks. Cette clé autorise le serveur à s'identifier auprès de l'agent du client Chef Infra sur les nœuds gérés par votre serveur.

## Configuration de votre référentiel Chef
<a name="w2ab1b9c28c15c17"></a>

Un référentiel Chef contient plusieurs répertoires. Chaque répertoire du Starter Kit contient un fichier README qui décrit l'objectif du répertoire et comment utiliser celui-ci pour gérer vos systèmes avec Chef. Il existe deux façons d'installer des livres de recettes sur votre serveur Chef : en exécutant des commandes `knife` ou en exécutant une commande Chef pour charger sur votre serveur un fichier de stratégie (`Policyfile.rb`) qui télécharge et installe les livres de recettes spécifiés. Cette procédure utilise des commandes Chef et un fichier `Policyfile.rb` pour installer des livres de recettes sur votre serveur.

1. Créez un répertoire sur votre ordinateur local pour stocker les livres de recettes, par exemple `chef-repo`. Après avoir ajouté des livres de recettes, des rôles et d'autres fichiers à ce référentiel, nous vous recommandons de le télécharger ou de le stocker dans un système sécurisé et versionné, tel que CodeCommit Git ou Amazon S3.

1. Dans le répertoire `chef-repo`, créez les répertoires suivants :
   + `cookbooks/`- Permet de ranger des livres de cuisine.
   + `roles/` - Stocke les rôles au format `.rb` ou `.json`.
   + `environments/` - Stocke les environnements au format `.rb` ou `.json`.

## Utilisation du fichier Policyfile.rb pour obtenir des livres de recettes d'une source à distance
<a name="install-cookbooks-policyfile"></a>

Dans cette section, vous allez modifier `Policyfile.rb` pour spécifier des livres de recettes, puis exécuter une commande Chef afin de charger le fichier sur votre serveur et d'installer les livres de recettes.

1. Affichez le fichier `Policyfile.rb` de votre Starter Kit. Par défaut, `Policyfile.rb` inclut le livre de recettes wrapper `opsworks-webserver`, qui dépend du livre de recettes [https://supermarket.chef.io/cookbooks/nginx](https://supermarket.chef.io/cookbooks/nginx) disponible sur le site web Chef Supermarket. Le livre de recettes `nginx` installe et configure un serveur web sur les nœuds gérés. Le livre de recettes `chef-client` requis, qui installe l'agent du client Chef Infra sur les nœuds gérés, est également spécifié.

   `Policyfile.rb` pointe également sur le livre de recettes Chef Audit facultatif, que vous pouvez utiliser pour configurer des analyses de conformité sur les nœuds. Pour plus d'informations sur la configuration des analyses de conformité et l'obtention de résultats de conformité pour les nœuds gérés, consultez [Analyses de conformité dans AWS OpsWorks for Chef Automate](opscm-chefcompliance.md). Si vous ne souhaitez pas configurer les fonctions d'analyse de conformité et d'audit maintenant, supprimez `'audit'` de la section `run_list` et ne spécifiez pas les attributs de livre de recettes `audit` à la fin du fichier.

   ```
   # Policyfile.rb - Describe how you want Chef to build your system.
   #                 
   # For more information about the Policyfile feature, visit                                             
   # https://docs.chef.io/policyfile.html                                                                 
   
   # A name that describes what the system you're building with Chef does.                                
   name 'opsworks-demo-webserver'
   
   # The cookbooks directory is the preferred source for external cookbooks                               
   default_source :chef_repo, "cookbooks/" do |s|                                                         
     s.preferred_for "nginx", "windows", "chef-client", "yum-epel", "seven_zip",  
                     "build-essential", "mingw", "ohai", "audit", "logrotate", "cron"                     
   end
   # Alternative source 
   default_source :supermarket                                                                            
   
   # run_list: chef-client runs these recipes in the order specified.                                 
   run_list  'chef-client',
             'opsworks-webserver',
             'audit'
   # add 'ssh-hardening' to your runlist to fix compliance issues detected by the ssh-baseline profile    
   
   # Specify a custom source for a single cookbook:                                                       
   cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'                               
   
   # Policyfile defined attributes
   
   # Define audit cookbook attributes
   default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate"
   default["opsworks-demo"]["audit"]["profiles"] = [
     {
       "name": "DevSec SSH Baseline",
       "compliance": "admin/ssh-baseline"
     }
   ]
   ```

   Voici un exemple de fichier `Policyfile.rb` sans le livre de recettes et les attributs `audit`, si vous souhaitez configurer uniquement le serveur web `nginx` pour l'instant.

   ```
   # Policyfile.rb - Describe how you want Chef to build your system.
   #
   # For more information on the Policyfile feature, visit
   # https://docs.chef.io/policyfile.html
   
   # A name that describes what the system you're building with Chef does.
   name 'opsworks-demo-webserver'
   
   # Where to find external cookbooks:
   default_source :supermarket
   
   # run_list: chef-client will run these recipes in the order specified.
   run_list  'chef-client',
             'opsworks-webserver'
   
   # Specify a custom source for a single cookbook:
   cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'
   ```

   Si vous apportez des modifications à `Policyfile.rb`, veillez à enregistrer le fichier.

1. Téléchargez et installez les livres de recettes définis dans `Policyfile.rb`.

   ```
   chef install
   ```

   Tous les livres de recettes sont versionnés dans le fichier `metadata.rb` du livre de recettes. Chaque fois que vous modifiez un livre de recettes, vous devez modifier la version du livre de recettes se trouvant dans son fichier `metadata.rb`.

1. Si vous avez choisi de configurer les analyses de conformité, et conservé les informations sur le livre de recettes `audit` dans le fichier de stratégie, transmettez la stratégie `opsworks-demo` à votre serveur.

   ```
   chef push opsworks-demo
   ```

1. Si vous avez terminé l'étape 3, vérifiez l'installation de votre stratégie. Exécutez la commande suivante.

   ```
   chef show-policy
   ```

   Les résultats doivent ressembler à ce qui suit :

   ```
   opsworks-demo-webserver 
   ======================= 
   * opsworks-demo:  ec0fe46314
   ```

1. Vous êtes maintenant prêt à ajouter ou amorcer des nœuds sur votre serveur Chef Automate. Vous pouvez automatiser l'association des nœuds en suivant les étapes décrites dans [Ajouter des nœuds automatiquement AWS OpsWorks for Chef Automate](opscm-unattend-assoc.md) ou ajouter des nœuds l'un après l'autre en suivant les étapes indiquées dans [Ajouter des nœuds individuellement](opscm-addnodes-individually.md). 

## (Alternative) Utilisation de Berkshelf pour obtenir des livres de recettes d'une source à distance
<a name="opscm-berkshelf"></a>

Berkshelf est un outil de gestion de livres de recettes et de leurs dépendances. Si vous préférez utiliser Berkshelf au lieu de `Policyfile.rb` pour installer des livres de recettes dans un stockage local, utilisez la procédure décrite dans cette section au lieu de la section précédente. Vous pouvez spécifier les livres de recettes et les versions à utiliser avec votre serveur Chef et les charger. Le Starter Kit contient un fichier nommé `Berksfile` que vous pouvez utiliser pour répertorier vos livres de recettes.

1. Pour commencer, ajoutez le livre de recettes `chef-client` au fichier Berksfile qui est inclus. Le livre de recettes `chef-client` configure le logiciel agent du client Chef Infra sur chaque nœud que vous connectez à votre serveur Chef Automate. Pour en savoir plus sur ce livre de recettes, consultez [Livre de recettes du client Chef](https://supermarket.chef.io/cookbooks/chef-client) sur le site Chef Supermarket.

1. À l'aide d'un éditeur de texte, ajoutez à votre fichier Berksfile un autre livre de recettes qui installe une application de serveur web, par exemple, le livre de recettes `apache2`, qui installe le serveur web Apache. Votre fichier Berksfile doit ressembler à ce qui suit.

   ```
   source 'https://supermarket.chef.io'
   cookbook 'chef-client'
   cookbook 'apache2'
   ```

1. Téléchargez et installez les livres de recettes sur votre ordinateur local.

   ```
   berks install
   ```

1. Chargez le livre de recettes sur le serveur Chef.

   Sous Linux, exécutez la commande suivante.

   ```
   SSL_CERT_FILE='.chef/ca_certs/opsworks-cm-ca-2020-root.pem' berks upload
   ```

   Sous Windows, exécutez la commande Chef Workstation suivante dans une PowerShell session. Avant d'exécuter la commande, veillez à définir la politique PowerShell d'exécution sur`RemoteSigned`. Ajoutez `chef shell-init` pour rendre les commandes de l'utilitaire Chef Workstation accessibles à PowerShell.

   ```
   $env:SSL_CERT_FILE="ca_certs\opsworks-cm-ca-2020-root.pem"
   chef shell-init berks upload
   Remove-Item Env:\SSL_CERT_FILE
   ```

1. Vérifiez l'installation du livre de recettes en affichant une liste de livres de recettes actuellement disponibles sur le serveur Chef Automate. Pour ce faire, exécutez la commande `knife` suivante :

   Vous êtes prêt à ajouter des nœuds à gérer avec le AWS OpsWorks for Chef Automate serveur.

   ```
   knife cookbook list
   ```

## (Facultatif) Configurer `knife` pour utiliser un domaine personnalisé
<a name="opscm-starterkit-customdomain"></a>

Si votre serveur Chef Automate utilise un domaine personnalisé, vous devrez peut-être ajouter le certificat PEM de l'autorité de certification racine qui a signé la chaîne de certificats de votre serveur, ou le certificat PEM de votre serveur si le certificat est auto-signé. `ca_certs`est un sous-répertoire `chef/` qui contient les autorités de certification (CAs) approuvées par l'`knife`utilitaire Chef.

Vous pouvez ignorer cette section si vous n'utilisez pas un domaine personnalisé ou si votre certificat personnalisé est signé par une CA racine approuvée par votre système d'exploitation. Sinon, configurez `knife` pour approuver le certificat SSL de votre serveur Chef Automate, comme décrit dans les étapes suivantes.

1. Exécutez la commande suivante.

   ```
   knife ssl check
   ```

   Si les résultats sont similaires aux suivants, ignorez le reste de cette procédure et passez à [Ajout de nœuds à gérer avec le serveur Chef](opscm-addnodes.md).

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             Successfully verified certificates from 'my-chef-automate-server.my-corp.com'
   ```

   Si vous recevez un message d'erreur similaire au suivant, passez à l'étape suivante.

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             ERROR: The SSL certificate of my-chef-automate-server.my-corp.com could not be verified.
             ...
   ```

1. Exécutez `knife ssl fetch` pour approuver les certificats de votre serveur AWS OpsWorks for Chef Automate . Vous pouvez également copier manuellement le certificat au format PEM de la CA racine de votre serveur dans le répertoire qui est la valeur de `trusted_certs_dir` dans la sortie de `knife ssl check`. Par défaut, ce répertoire se trouve `.chef/ca_certs/` dans le Starter Kit. Votre sortie doit ressembler à ce qui suit :

   ```
   WARNING: Certificates from my-chef-automate-server.my-corp.com will be fetched and placed in your trusted_cert
             directory (/Users/username/starterkit/.chef/../.chef/ca_certs).
          
             Knife has no means to verify these are the correct certificates. You should
             verify the authenticity of these certificates after downloading.
          
             Adding certificate for my-chef-automate-server in /Users/users/starterkit/.chef/../.chef/ca_certs/servv-aqtswxu20swzkjgz.crt
             Adding certificate for MyCorp_Root_CA in /Users/users/starterkit/.chef/../.chef/ca_certs/MyCorp_Root_CA.crt
   ```

1. Exécutez à nouveau `knife ssl check`. Votre sortie doit ressembler à ce qui suit :

   ```
   Connecting to host my-chef-automate-server.my-corp.com:443
             Successfully verified certificates from 'my-chef-automate-server.my-corp.com'
   ```

   Vous êtes prêt à utiliser `knife` avec votre serveur Chef Automate.