Utilizzo della ricerca su uno stack Linux - 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 della ricerca su uno stack Linux

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.

Questo esempio si basa su uno stack Linux con un unico server di applicazioni PHP. Utilizza la ricerca di Chef per ottenere l'indirizzo IP pubblico del server e inserisce l'indirizzo in un file nella directory /tmp. Recupera essenzialmente le stesse informazioni dall'oggetto nodo di Ottenimento diretto dei valori degli attributi , ma il codice è molto più semplice e non dipende dai dettagli della struttura degli attributi di configurazione e distribuzione dello stack.

Di seguito viene brevemente descritto come creare lo stack per questo esempio. Per ulteriori informazioni, consulta Creare un nuovo stack.

Nota

Se non hai mai eseguito una ricetta personalizzata su un'istanza AWS OpsWorks Stacks, dovresti prima seguire l'esempio. Esecuzione di una ricetta su un'istanza Linux

Creare uno stack
  1. Aprire la console AWS OpsWorks Stacks e fare clic su Add Stack (Aggiungi stack).

  2. Specificare le impostazioni seguenti, accettare i valori predefiniti di altre impostazioni e fare clic su Add Stack (Aggiungi stack).

    • Nome: searchJSON

    • Chiave SSH predefinita: una coppia di chiavi Amazon EC2

    Se devi creare una coppia di chiavi Amazon EC2, consulta Amazon EC2 Key Pairs. La coppia di chiavi deve appartenere alla stessa regione AWS dell'istanza. L'esempio utilizza la regione Stati Uniti occidentali (Oregon).

  3. Fai clic su Aggiungi un livello e aggiungi un livello PHP App Server allo stack con le impostazioni predefinite.

  4. Aggiungere un'istanza 24/7 con impostazioni predefinite al livello e avviarla.

Per configurare il libro di ricette
  1. Creare una directory in opsworks_cookbooks denominata searchjson e accedervi.

  2. Creare un file metadata.rb con il seguente contenuto e salvarlo in opstest.

    name "searchjson" version "0.1.0"
  3. Creare una directory recipes in searchjson.

  4. Creare un file default.rb con la seguente ricetta e salvarlo nella directory recipes.

    phpserver = search(:node, "layers:php-app").first Chef::Log.info("**********The public IP address is: '#{phpserver[:ip]}'**********") file "/tmp/ip_addresses" do content "#{phpserver[:ip]}" mode 0644 action :create end

    Gli stack Linux supportano solo l'indice di ricerca node. La ricetta utilizza questo indice per ottenere un elenco di istanze nel livello php-app. Poiché il livello è noto per avere una sola istanza, la ricetta assegna semplicemente la prima a phpserver. Se il livello ha più istanze, puoi enumerarle per recuperare le informazioni richieste. Ogni voce dell'elenco è una tabella hash contenente un set di attributi di istanza. L'attributo ip è impostato sull'indirizzo IP pubblico dell'istanza, pertanto puoi rappresentare tale indirizzo nel codice della ricetta successiva nella forma phpserver[:ip].

    Dopo aver aggiunto un messaggio al log di Chef, la ricetta usa una risorsa file per creare un file denominato ip_addresses. L'attributo content è impostato su una rappresentazione di stringa di phpserver[:ip]. Quando Chef crea ip_addresses, aggiunge la stringa al file.

  5. Crea un .zip archivio diopsworks_cookbooks, carica l'archivio in un bucket Amazon S3, rendi l'archivio pubblico e registra l'URL dell'archivio. Per ulteriori informazioni sui repository dei libri di ricette, consulta Repository dei libri di ricette.

    I contenuti distribuiti ai bucket Amazon S3 potrebbero contenere informazioni dei clienti. Per ulteriori informazioni sulla rimozione di dati sensibili, vedi Come svuotare un bucket S3? o Come eliminare un bucket S3?.

Adesso puoi installare il libro di ricette ed eseguire la ricetta.

Per eseguire la ricetta
  1. Modificare lo stack per abilitare i libri di ricette personalizzati e specificare le impostazioni seguenti.

    • Tipo di repository: Http Archive

    • URL del repository: l'URL dell'archivio del libro di cucina che hai registrato in precedenza

    Utilizzare i valori predefiniti per altre impostazioni e fare clic su Save (Salva) per aggiornare la configurazione dello stack.

  2. Modifica la configurazione personalizzata del livello e assegnala searchjson::default all'evento Setup del livello. AWS OpsWorks Stacks eseguirà la ricetta dopo l'avvio dell'istanza o se attivi esplicitamente l'evento Setup.

  3. Eseguire il comando dello stack Update Custom Cookbooks (Aggiorna libri di ricette personalizzati), che installa la versione corrente del repository dei libri di ricette personalizzati nelle istanze dello stack. Se è presente una versione precedente del repository, verrà sovrascritta da questo comando.

  4. Eseguire la ricetta utilizzando il comando dello stack Setup (Installazione), che attiva un evento Setup sull'istanza ed esegue searchjson::default. Lasciare aperta la pagina Running command setup (Esecuzione configurazione comando).

Dopo aver eseguito correttamente la ricetta, puoi verificarla.

Per verificare searchjson
  1. Il primo passo è esaminare il log di Chef per l'evento Setup più recente. Nella pagina di configurazione dell'esecuzione del comando, fare clic su show (mostra) nella colonna Log dell'istanza php-app1 per visualizzare il log. Scorrere verso il basso per trovare il messaggio di log verso la metà. Sarà simile al seguente.

    ... [2014-09-05T17:08:41+00:00] WARN: Previous bash[logdir_existence_and_restart_apache2]: ... [2014-09-05T17:08:41+00:00] WARN: Current bash[logdir_existence_and_restart_apache2]: ... [2014-09-05T17:08:41+00:00] INFO: **********The public IP address is: '192.0.2.0'********** [2014-09-05T17:08:41+00:00] INFO: Processing directory[/etc/sysctl.d] action create (opsworks_initial_setup::sysctl line 1) ...
  2. Utilizzare SSH per accedere all'istanza ed elencare i contenuti di /tmp, che dovrebbero includere un file denominato ip_addresses contenente l'indirizzo IP.