Utilizzo degli hook di distribuzione di Chef - 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à.

Utilizzo degli hook di distribuzione di Chef

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.

È possibile personalizzare la distribuzione implementando una ricetta personalizzata per eseguire le attività necessarie e assegnandola all'evento di distribuzione appropriato del livello. Un approccio alternativo e talvolta più semplice, specialmente se non è necessario implementare un libro di cucina per altri scopi, consiste nell'utilizzare gli hook di distribuzione di Chef per eseguire il codice di personalizzazione. Inoltre, le ricette di distribuzione personalizzate vengono eseguite dopo che la distribuzione è già stata eseguita dalle ricette incorporate. Gli hook di distribuzione consentono di interagire durante una distribuzione, per esempio, dopo che il codice dell'app viene estratto dal repository, ma prima che Apache venga riavviato.

Chef distribuisce le app in quattro fasi:

  • Checkout: scarica i file dal repository

  • Migra: esegue una migrazione, come richiesto

  • Symlink: crea collegamenti simbolici

  • Riavvia: riavvia l'applicazione

Gli hook di distribuzione di Chef forniscono un modo semplice per personalizzare una distribuzione tramite l'esecuzione facoltativa di un'applicazione Ruby fornita dall'utente dopo che ciascuna fase viene completata. Per utilizzare gli hook di distribuzione, implementare una o più applicazioni Ruby e posizionarle nella directory /deploy dell'app. Se l'applicazione non ha una directory /deploy, crearne una nel livello APP_ROOT. L'applicazione deve disporre di uno dei seguenti nomi, che determina quando è in esecuzione.

  • before_migrate.rb viene eseguito dopo il completamento della fase Checkout, ma prima di Migrate.

  • before_symlink.rb viene eseguito dopo il completamento della fase Migrate, ma prima di Symlink.

  • before_restart.rb viene eseguito dopo il completamento della fase Symlink, ma prima di Restart.

  • after_restart.rb viene eseguito dopo il completamento della fase Restart.

Gli hook di distribuzione di Chef possono accedere all'oggetto nodo utilizzando una sintassi di nodo standard, come avviene per le ricette. Gli hook di distribuzione possono anche accedere ai valori di qualsiasi variabile di ambiente di app specificata. Tuttavia, è necessario utilizzare new_resource.environment["VARIABLE_NAME"] per accedere al valore della variabile anziché ENV["VARIABLE_NAME"].