Exemple 1 : Installation des packages - 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.

Exemple 1 : Installation des packages

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

L'installation des packages est l'une des utilisations plus courantes des recettes et peut être très simple, selon le package. Par exemple, la recette suivante installe Git sur un système Linux.

package 'git' do action :install end

La ressource package gère l'installation des packages. Pour cet exemple, vous n'avez pas besoin de spécifier d'attributs. Le nom de la ressource est la valeur par défaut pour l'attribut package_name, qui identifie le package. L'action install demande au fournisseur d'installer le package. Vous pouvez rendre le code encore plus simple en ignorant install ; c'est l'action par défaut de la ressource package action par défaut de la ressource. Lorsque vous exécutez la recette, le Chef utilise le fournisseur approprié pour installer le package. Sur le système Ubuntu que vous utiliserez pour l'exemple, le fournisseur installe Git en appelant apt-get.

Note

L'installation de logiciels sur un système Windows nécessite une procédure légèrement différente. Pour plus d’informations, consultez Installation de logiciels Windows.

Pour utiliser Test Kitchen afin d'exécuter cette recette dans Vagrant, vous devez d'abord configurer un livre de recettes, puis initialiser et configurer Test Kitchen. La procédure suivante est destinée à un système Linux, mais elle est globalement similaire pour les systèmes Windows et Macintosh. Commencez par ouvrir une fenêtre de terminal ; tous les exemples dans ce chapitre utilisent les outils de ligne de commande.

Pour préparer le livre de recettes
  1. Dans votre répertoire de base, créez un sous-répertoire nommé opsworks_cookbooks qui contiendra tous les livres de recettes de ce chapitre. Créez ensuite un sous-répertoire pour ce livre de recettes nommé installpkg et accédez à celui-ci.

  2. Dans installpkg, créez un fichier nommé metadata.rb qui contient le code suivant.

    name "installpkg" version "0.1.0"

    Pour plus de simplicité, les exemples de ce chapitre spécifient simplement le nom et la version du livre de recettes, mais metadata.rb peut contenir diverses métadonnées de livre. Pour plus d'informations, consultez À propos des métadonnées des livres de recettes.

    Note

    Veillez à créer metadata.rb avant d'initialiser Test Kitchen ; Il utilise les données pour créer le fichier de configuration par défaut.

  3. Dans installpkg, exécutez kitchen init, qui initialise Test Kitchen et installe le pilote de Vagrant par défaut.

  4. La commande kitchen init crée un fichier de configuration YAML dans installpkg nommé .kitchen.yml. Ouvrez le fichier dans votre éditeur de texte favori. Le fichier .kitchen.yml inclut une section platforms qui spécifie les systèmes sur lesquels vous devez exécuter les recettes. Test Kitchen crée une instance et exécute les recettes spécifiés sur chaque plateforme.

    Note

    Par défaut, Test Kitchen exécute les recettes sur une plateforme à la fois. Si vous ajoutez un argument -p à n'importe quelle commande qui crée une instance, Test Kitchen exécutera les recettes sur toutes les plateformes, en parallèle.

    Une seule plateforme est suffisante pour cet exemple, vous devez donc modifier .kitchen.yml de façon à supprimer la plateforme centos-6.4. La structure de votre fichier .kitchen.yml devrait maintenant ressembler à ceci :

    --- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:

    Test Kitchen exécute uniquement les recettes qui sont dans la liste d'exécution de .kitchen.yml. Vous identifiez les recettes en utilisant le format [cookbook_name::recipe_name], avec recipe_name qui omet l'extension .rb. Au début, la liste d'exécution de .kitchen.yml contient la recette par défaut du livre de recettes, installpkg::default. C'est la recette que vous allez implémenter, c'est pourquoi vous n'avez pas besoin de modifier la liste d'exécution.

  5. Créez un sous-répertoire de installpkg nommé recipes.

    Si un livre de recettes contient des recettes, comme la plupart d'entre elles, elles doivent se trouver dans le sous-répertoire. recipes

Vous pouvez désormais ajouter la recette au livre de recettes et utiliser Test Kitchen pour l'exécuter sur une instance.

Pour exécuter la recette
  1. Créez un fichier nommé default.rb qui contient le code d'exemple de l'installation de Git dès le début de la section et l'enregistrer dans le sous-répertoire recipes.

  2. Dans le répertoire installpkg, exécutez kitchen converge. Cette commande démarre une nouvelle instance Ubuntu dans Vagrant, copie vos livres de recettes sur l'instance et lance une exécution Chef pour exécuter les recettes de la liste d'exécutions. .kitchen.yml

  3. Pour vérifier que la recette a réussi, exécutez kitchen login, qui ouvre une connexion SSH à l'instance. Exécutez ensuite git --version pour vérifier que Git a été installé correctement. Pour revenir à votre poste de travail, exécutez exit.

  4. Lorsque vous avez terminé, exécutez kitchen destroy pour arrêter l'instance. L'exemple suivant utilise un autre livre de recettes.

Cet exemple était un bon moyen de démarrer, mais il est particulièrement simple. D'autres packages peuvent être plus complexes à installer ; vous devrez peut-être faire tout ou partie des éléments suivants :

  • Créez et configurez un utilisateur.

  • Créez un ou plusieurs répertoires pour les données, les journaux, etc.

  • Installez un ou plusieurs fichiers de configuration.

  • Spécifiez des valeurs de nom ou d'attribut de package différentes selon les systèmes d'exploitation.

  • Démarrez un service, puis redémarrez-le en fonction des besoins.

Les exemples suivants expliquent comment résoudre ces problèmes, ainsi que d'autres opérations utiles.