Configuration d'un serveur Chef à l'aide du Starter Kit - 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.

Configuration d'un serveur Chef à l'aide du Starter Kit

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.

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
  • 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é. AWS 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 dans la documentation Chef.

Prérequis

  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.

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

  3. Téléchargez et installez Chef 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'knifeutilitaire fait partie de Chef Workstation. Pour obtenir des instructions, voir Installer Chef Workstation sur le site Web de Chef.

Exploration du contenu du Starter Kit

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. Policyfile.rbutilise 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 knife.rbfichier est configuré de telle sorte que les opérations de l'knifeoutil 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 AWS 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

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.

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

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

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

  3. 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
  4. 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
  5. 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 ou ajouter des nœuds l'un après l'autre en suivant les étapes indiquées dans Ajouter des nœuds individuellement.

(Alternative) Utilisation de Berkshelf pour obtenir des livres de recettes d'une source à distance

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 sur le site Chef Supermarket.

  2. À 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'
  3. Téléchargez et installez les livres de recettes sur votre ordinateur local.

    berks install
  4. 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 surRemoteSigned. 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
  5. 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é

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 votre certificat PEM de serveur si le certificat est auto-signé. ca_certs est un sous-répertoire dans chef/ qui contient des autorités de certification (CA) approuvées par l'utilitaire knife de 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.

    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. ...
  2. 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
  3. 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.