Fase 15. Aggiornamento del libro di ricette per l'utilizzo della logica condizionale - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 15. Aggiornamento del libro di ricette per l'utilizzo della logica condizionale

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

Ora puoi aggiornare il libro di ricette aggiungendo una ricetta che utilizza la logica condizionale, una tecnica che esegue il codice solo se vengono soddisfatte determinate condizioni. Per ulteriori informazioni, consulta le sezioni relative alle istruzioni if e alle istruzioni case.

Questa ricetta esegue due operazioni in base al contenuto dei contenitori di dati: nel log visualizza un messaggio che identifica il sistema operativo in cui l'istanza è in esecuzione e, solo se il sistema operativo è Linux, installa un pacchetto utilizzando il programma di gestione del pacchetto corretto per la distribuzione Linux. Questo pacchetto è denominato struttura; si tratta di una semplice applicazione per la visualizzazione di elenchi di directory.

Per aggiornare il libro di ricette nell'istanza ed eseguire la nuova ricetta
  1. Nella workstation locale, nella sottodirectory recipes della directory opsworks_cookbook_demo directory creare un file denominato conditional_logic.rb contenente il seguente codice:

    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. Al terminale o al prompt dei comandi, utilizzare il comando tar per creare una nuova versione del file opsworks_cookbook_demo.tar.gz, che contiene la directory opsworks_cookbook_demo e il relativo contenuto aggiornato.

  3. Caricare il file opsworks_cookbook_demo.tar.gz aggiornato nel bucket S3.

  4. Seguire la procedura descritta nella Fase 5. Aggiornamento del libro di ricette nell'istanza ed esecuzione della ricetta per aggiornare il libro di ricette nell'istanza e per eseguire la ricetta. Nella procedura illustrata nella sezione "Per eseguire la ricetta", in Recipes to execute (Ricette da eseguire), digitare opsworks_cookbook_demo::conditional_logic.

Per testare la ricetta
  1. Con la pagina di esecuzione del comando execute_recipes visualizzata dalle precedenti procedure, in cookbooks-demo1, in Log, scegliere show (mostra). Viene visualizzata la pagina del log del comando execute_recipes.

  2. Scorrere il log verso il basso e trovare una voce simile alla seguente:

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

    Poiché il sistema operativo dell'istanza è Amazon Linux 2016.09, nel registro verrà visualizzata solo la voce precedente (delle cinque possibili voci del codice della ricetta).

  3. Se il sistema operativo è Linux, la ricetta installa il pacchetto della struttura. Per visualizzare una rappresentazione visiva del contenuto di una directory, digitare tree al prompt dei comandi dalla directory desiderata o dal percorso della directory desiderata (ad esempio, tree /var/chef/runs).

Nella fase successiva aggiornerai il libro di ricette per l'utilizzo di funzionalità da un libro di ricette esterno fornito dalla community Chef.