Utilizzo della CLI AWS OpsWorks di Stacks Agent - 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 CLI AWS OpsWorks di Stacks Agent

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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.

Nota

La CLI dell'agente è disponibile solo per le istanze Linux.

Su ogni istanza online, AWS OpsWorks Stacks installa un agente che comunica con il servizio. Il servizio AWS OpsWorks Stacks a sua volta invia comandi all'agente per eseguire attività come l'avvio di Chef sull'istanza quando si verifica un evento del ciclo di vita. Sulle istanze Linux, l'agente espone un'interfaccia a riga di comando (CLI) che è molto utile per la risoluzione dei problemi. Per eseguire un comando della CLI dell'agente, utilizza SSH per connetterti a un'istanza. Puoi quindi eseguire il comando della CLI dell'agente per eseguire un'ampia gamma di attività, tra cui le seguenti:

Per ulteriori informazioni su come impostare una connessione SSH per un'istanza, consulta Accesso con SSH. Inoltre, devi disporre delle autorizzazioni SSH e di quelle sudo per lo stack.

Questa sezione descrive come utilizzare la CLI dell'agente per la risoluzione dei problemi. Per ulteriori informazioni e per un riferimento del comando completo, consulta AWS OpsWorks CLI di Stacks Agent.

Esecuzione di ricette

Il comando run_command della CLI dell'agente indica all'agente di rieseguire un comando lanciato in precedenza. I comandi più utili per la risoluzione dei problemi, setup, configure, deploy e undeploy corrispondono ognuno a un evento del ciclo di vita. Questi comandi indicano all'agente di inizializzare l'esecuzione di Chef per eseguire le ricette associate.

Nota

Il comando run_command è limitato all'esecuzione del gruppo di ricette associato a un comando specificato, di solito le ricette associate a un evento del ciclo di vita. Non puoi utilizzarlo per eseguire una determinata ricetta. Per eseguire una o più ricette specifiche, utilizza il comando dello stack Execute Recipes o operazioni API o CLI equivalenti (create-deployment e CreateDeployment).

Il comando run_command è molto utile per il debugging di ricette personalizzate, soprattutto le ricette assegnate agli eventi del ciclo di vita Configura e Imposta, che non possono essere attivati direttamente dalla console. Utilizzando il comando run_command, puoi eseguire quando vuoi una ricetta di un determinato evento, affinché non sia necessario avviare o interrompere le istanze.

Nota

AWS OpsWorks Stacks esegue le ricette dalla cache dei libri di cucina dell'istanza, non dal repository dei libri di cucina. AWS OpsWorks Stacks scarica i libri di cucina in questa cache all'avvio dell'istanza, ma non aggiorna automaticamente la cache sulle istanze online se successivamente modifichi i tuoi libri di cucina. Se hai modificato i tuoi libri di cucina all'avvio dell'istanza, assicurati di eseguire il comando dello stack relativo all'aggiornamento dei libri di ricette, per aggiornare la cache del libro di ricette alla versione più recente dell'archivio.

L'agente memorizza nella cache solo i comandi più recenti. Puoi elencarli tramite l'esecuzione del comando list_commands, che restituisce un elenco di comandi memorizzati nella cache e il momento in cui sono stati eseguiti.

sudo opsworks-agent-cli list_commands 2013-02-26T19:08:26 setup 2013-02-26T19:12:01 configure 2013-02-26T19:12:05 configure 2013-02-26T19:22:12 deploy

Per eseguire nuovamente il comando più recente, eseguire questa operazione:

sudo opsworks-agent-cli run_command

Per rieseguire l'istanza più recente di un comando specificato, eseguire questa operazione:

sudo opsworks-agent-cli run_command command

Ad esempio, per rieseguire le ricette Installazione, puoi eseguire il comando seguente:

sudo opsworks-agent-cli run_command setup

Ogni comando possiede un JSON di configurazione e distribuzione dello stack che rappresenta lo stato dello stack e della distribuzione al momento dell'esecuzione del comando. Dal momento che i dati possono cambiare tra un comando e il successivo, una vecchia istanza di un comando potrebbe impiegare dei dati differente rispetto a quelli più recenti. Per rieseguire una determinata istanza di un comando, copia il tempo dall'output list_commands ed esegui l'operazione seguente:

sudo opsworks-agent-cli run_command time

I precedenti esempi rieseguono tutti il comando utilizzando il JSON predefinito, che è il JSON installato per quel comando. Puoi eseguire nuovamente un comando contro un file JSON arbitrario eseguendo l'operazione illustrata di seguito:

sudo opsworks-agent-cli run_command -f /path/to/valid/json.file

Visualizzazione dei log di Chef

Il commando show_log della CLI dell'agente mostra un log specifico. Al termine del comando, lo vedrai alla fine del file. Il comando show_log pertanto offre un modo conveniente per accodare il log, che in genere è la posizione delle informazioni di errore. Puoi scorrere fino a visualizzare le parti precedenti del log.

Per visualizzare il log del comando corrente, eseguire questa operazione:

sudo opsworks-agent-cli show_log

Puoi anche visualizzare i log per un determinato comando, ma i log vengono memorizzati nella cache dell'agente solo per gli ultimi trenta comandi. Puoi elencare i comandi di un'istanza eseguendo list_commands, che restituisce un elenco dei comandi memorizzati nella cache e il tempo impiegato per eseguirli. Per vedere un esempio, consulta Esecuzione di ricette.

Per visualizzare il log per la più recente l'esecuzione di un determinato comando, eseguire l'operazione seguente:

sudo opsworks-agent-cli show_log command

Il parametro del comando può essere impostato su setup, configure, deploy, undeploy, start, stop, o restart. La maggior parte di questi comandi corrispondono agli eventi del ciclo di vita e indirizzano l'agente per eseguire le ricette associate.

Per visualizzare il log di un determinato comando di esecuzione, copia la data dall'output list_commands ed esegui:

sudo opsworks-agent-cli show_log date

Se un comando è ancora in esecuzione, show_log mostrerà lo stato attuale del log.

Nota

Un modo per show_log risolvere errori e out-of-memory problemi consiste nel tracciare un registro durante l'esecuzione, nel modo seguente:

  1. Utilizza il comando run_command per attivare l'evento del ciclo di vita appropriato. Per ulteriori informazioni, consulta Esecuzione di ricette.

  2. Esegui ripetutamente show_log per visualizzare la coda del log nel momento in cui viene scritta.

Se Chef termina la memoria o esce inaspettatamente, il log terminerà bruscamente. Se una ricetta ha esito negativo, il log terminerà con un'eccezione e una traccia dello stack.

Visualizzazione del JSON di configurazione e distribuzione dello stack.

La maggior parte dei dati utilizzati dalle ricette provengono dal JSON di configurazione e distribuzione dello stack. Questo definisce una serie di attributi di Chef che forniscono una descrizione dettagliata della configurazione dello stack, di tutte le distribuzioni e degli attributi opzionali che può aggiungere un utente. Per ogni comando, AWS OpsWorks Stacks installa un JSON che rappresenta lo stack e lo stato di distribuzione al momento del comando. Per ulteriori informazioni, consulta Attributi di configurazione e distribuzione dello stack.

Se le tue ricette personalizzate ottengono i dati dalla configurazione dello stack e dalla distribuzione JSON, puoi verificare i dati esaminando il JSON. Il modo più semplice per visualizzare il JSON di configurazione e distribuzione dello stack è di eseguire il comando get_json della CLI dell'agente, che consente di visualizzare una versione formattata dell'oggetto JSON. Il seguente esempio mostra le prime righe di alcuni output tipici:

{ "opsworks": { "layers": { "php-app": { "id": "4a2a56c8-f909-4b39-81f8-556536d20648", "instances": { "php-app2": { "elastic_ip": null, "region": "us-west-2", "booted_at": "2013-02-26T20:41:10+00:00", "ip": "10.112.235.192", "aws_instance_id": "i-34037f06", "availability_zone": "us-west-2a", "instance_type": "c1.medium", "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal", "private_ip": "10.252.0.203", "created_at": "2013-02-26T20:39:39+00:00", "status": "online", "backends": 8, "public_dns_name": "ec2-10-112-235-192.us-west-2.compute.amazonaws.com" ...

Puoi visualizzare la configurazione dello stack più recente e la distribuzione JSON come segue:

sudo opsworks-agent-cli get_json

Puoi visualizzare la configurazione più recente e la distribuzione JSON per un comando specificato eseguendo la seguente operazione:

sudo opsworks-agent-cli get_json command

Il parametro del comando può essere impostato su setup, configure, deploy, undeploy, start, stop, o restart. La maggior parte di questi comandi corrispondono agli eventi del ciclo di vita e indirizzano l'agente per eseguire le ricette associate.

Puoi visualizzare la configurazione dello stack e la distribuzione JSON per l'esecuzione di un determinato comando, specificando la data del comando come nell'esempio che segue:

sudo opsworks-agent-cli get_json date

Il modo più semplice per l'utilizzo di questo comando è il seguente:

  1. Esegui list_commands, che restituisce un elenco di comandi che sono stati eseguiti sull'istanza e la data che stava eseguendo ogni comando.

  2. Copia la data dei comandi appropriati e utilizzala come argomento get_json della data.