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 le service a pris fin 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 le AWS Support L'équipe sur AWS Re:post ou via
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
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 de plus amples informations, veuillez consulter 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
-
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. -
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. -
Dans
installpkg
, exécutezkitchen init
, qui initialise Test Kitchen et installe le pilote de Vagrant par défaut. -
La
kitchen init
commande crée un fichier YAML de configuration dansinstallpkg
named.kitchen.yml
. Ouvrez le fichier dans votre éditeur de texte favori. Le fichier.kitchen.yml
inclut une sectionplatforms
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 plateformecentos-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, oùcookbook_name
::recipe_name
]recipe_name
omet l'.rb
extension. 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. -
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
-
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épertoirerecipes
. -
Dans le répertoire
installpkg
, exécutezkitchen 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
-
Pour vérifier que la recette a réussi, exécutez
kitchen login
, ce qui ouvre une SSH connexion à l'instance. Exécutez ensuitegit --version
pour vérifier que Git a été installé correctement. Pour revenir à votre poste de travail, exécutezexit
. -
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.