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 il 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 Squadra su AWS Re:post o tramite
Questo esempio si basa su uno stack Linux con un unico server di PHP applicazioni. 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 eseguito una ricetta personalizzata su un AWS OpsWorks Prima dell'istanza Stacks, dovresti prima esaminare l'Esecuzione di una ricetta su un'istanza Linuxesempio.
Creare uno stack
-
Aprire AWS OpsWorks Console Stacks
e fai clic su Aggiungi stack. -
Specificare le impostazioni seguenti, accettare i valori predefiniti di altre impostazioni e fare clic su Add Stack (Aggiungi stack).
-
Nome: cerca JSON
-
SSHChiave predefinita: una coppia di EC2 chiavi Amazon
Se devi creare una coppia di EC2 chiavi Amazon, consulta Amazon EC2 Key Pairs. Nota che la key pair deve appartenere alla stessa AWS regione dell'istanza. L'esempio utilizza la regione Stati Uniti occidentali (Oregon).
-
-
Fai clic su Aggiungi un livello e aggiungi un livello PHP App Server allo stack con le impostazioni predefinite.
-
Aggiungere un'istanza 24/7 con impostazioni predefinite al livello e avviarla.
Per configurare il libro di ricette
-
Creare una directory in
opsworks_cookbooks
denominatasearchjson
e accedervi. -
Creare un file
metadata.rb
con il seguente contenuto e salvarlo inopstest
.name "searchjson" version "0.1.0"
-
Creare una directory
recipes
insearchjson
. -
Creare un file
default.rb
con la seguente ricetta e salvarlo nella directoryrecipes
.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 livellophp-app
. Poiché il livello è noto per avere una sola istanza, la ricetta assegna semplicemente la prima aphpserver
. 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'attributoip
è impostato sull'indirizzo IP pubblico dell'istanza, pertanto puoi rappresentare tale indirizzo nel codice della ricetta successiva nella formaphpserver[:ip]
.Dopo aver aggiunto un messaggio al log di Chef, la ricetta usa una risorsa
file
per creare un file denominato ip_addresses
. L'attributocontent
è impostato su una rappresentazione di stringa diphpserver[:ip]
. Quando Chef creaip_addresses
, aggiunge la stringa al file. -
Crea un
.zip
archivio diopsworks_cookbooks
, carica l'archivio in un bucket Amazon S3, rendi l'archivio pubblico e registra l'archivio. URL 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
-
Modificare lo stack per abilitare i libri di ricette personalizzati e specificare le impostazioni seguenti.
-
Tipo di repository: Http Archive
-
Repository URL: l'archivio dei libri di cucina URL che hai registrato in precedenza
Utilizzare i valori predefiniti per altre impostazioni e fare clic su Save (Salva) per aggiornare la configurazione dello stack.
-
-
Modificare la configurazione personalizzata del livello e assegnare 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.
-
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.
-
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
-
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) ...
-
SSHUtilizzatelo per accedere all'istanza ed elencare il contenuto di
/tmp
, che dovrebbe includere un file denominatoip_addresses
che contenga l'indirizzo IP.