Étape 15 : Mettre à jour le livre de recettes pour utiliser la logique conditionnelle - 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.

Étape 15 : Mettre à jour le livre de recettes pour utiliser la logique conditionnelle

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 AWS Support haut de gamme.

Mettez maintenant à jour votre livre de recettes en ajoutant une recette qui utilise la logique conditionnelle, technique qui n'exécute le code que si certaines conditions sont réunies. Pour plus d'informations, consultez Instructions if et Instructions case.

Cette recette se compose de deux actions basées sur le contenu des conteneurs de données : affiche un message dans le journal identifiant le système d'exploitation sur lequel l'instance s'exécute et, uniquement si le système d'exploitation est Linux, installe un package en utilisant le gestionnaire de package approprié pour la distribution Linux donnée. Ce package est appelé tree (arborescence) ; il s'agit d'une simple application pour visualiser les listes de répertoire.

Pour mettre à jour le livre de recettes sur l'instance et exécuter la nouvelle recette
  1. Sur votre ordinateur local, dans le sous-répertoire recipes de opsworks_cookbook_demo directory, créez un fichier nommé conditional_logic.rb qui contient le code suivant :

    instance = search("aws_opsworks_instance").first os = instance["os"] if os == "Red Hat Enterprise Linux 7" Chef::Log.info("********** Operating system is Red Hat Enterprise Linux. **********") elsif os == "Ubuntu 14.04 LTS" || os == "Ubuntu 16.04 LTS" || os == "Ubuntu 18.04 LTS" Chef::Log.info("********** Operating system is Ubuntu. **********") elsif os == "Microsoft Windows Server 2012 R2 Base" Chef::Log.info("********** Operating system is Windows. **********") elsif os == "Amazon Linux 2015.03" || os == "Amazon Linux 2015.09" || os == "Amazon Linux 2016.03" || os == "Amazon Linux 2016.09" || os == "Amazon Linux 2017.03" || os == "Amazon Linux 2017.09" || os == "Amazon Linux 2018.03" || os == "Amazon Linux 2" Chef::Log.info("********** Operating system is Amazon Linux. **********") elsif os == "CentOS Linux 7" Chef::Log.info("********** Operating system is CentOS 7. **********") else Chef::Log.info("********** Cannot determine operating system. **********") end case os when "Ubuntu 14.04 LTS", "Ubuntu 16.04 LTS", "Ubuntu 18.04 LTS" apt_package "Install a package with apt-get" do package_name "tree" end when "Amazon Linux 2015.03", "Amazon Linux 2015.09", "Amazon Linux 2016.03", "Amazon Linux 2016.09", "Amazon Linux 2017.03", "Amazon Linux 2017.09", "Amazon Linux 2018.03", "Amazon Linux 2", "Red Hat Enterprise Linux 7", "CentOS Linux 7" yum_package "Install a package with yum" do package_name "tree" end else Chef::Log.info("********** Cannot determine operating system type, or operating system is not Linux. Package not installed. **********") end
  2. Depuis le terminal ou l'invite de commande, utilisez la commande tar pour créer une nouvelle version du fichier opsworks_cookbook_demo.tar.gz, qui contient le répertoire opsworks_cookbook_demo et son contenu chargé.

  3. Chargez le fichier opsworks_cookbook_demo.tar.gz mis à jour dans votre compartiment S3.

  4. Suivez les procédures décrites dans Étape 5 : Mettre à jour le livre de recettes sur l'instance et exécuter la recette pour mettre à jour le livre de recettes sur l'instance et exécuter la recette. Dans la procédure « Pour exécuter la recette », pour Recipes to execute (Recettes à exécuter), tapez opsworks_cookbook_demo::conditional_logic.

Pour tester la recette
  1. Avec la page Running command execute_recipes (Exécution de la commande execute_recipes) affichée à partir des procédures précédentes, pour cookbooks-demo1, pour Log (Journal), choisissez show (afficher). La page de journal execute_recipes s'affiche.

  2. Faites défiler le journal et recherchez une entrée qui ressemble à ce qui suit :

    [2015-11-16T19:59:05+00:00] INFO: ********** Operating system is Amazon Linux. **********

    Le système d'exploitation de l'instance étant Amazon Linux 2016.09, seule l'entrée précédente (des cinq entrées possibles dans le code de la recette) sera affichée dans le journal.

  3. Si le système d'exploitation est Linux, la recette installe le package tree. Pour visualiser le contenu d'un répertoire, tapez tree à l'invite de commande depuis le répertoire souhaité ou avec le chemin d'accès du répertoire souhaité (par exemple, tree /var/chef/runs).

Dans l'étape suivante, vous allez mettre à jour le livre de recettes pour utiliser les fonctionnalités à partir d'un livre de recettes externe fourni par la communauté Chef.