Uso de la CLI AWS OpsWorks de Stacks Agent - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la CLI AWS OpsWorks de Stacks Agent

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

nota

La CLI del agente solo está disponible en instancias Linux.

En cada instancia en línea, AWS OpsWorks Stacks instala un agente que se comunica con el servicio. El servicio AWS OpsWorks Stacks, a su vez, envía comandos al agente para que realice tareas como iniciar las ejecuciones de Chef en la instancia cuando se produce un evento del ciclo de vida. En instancias de Linux, el agente expone una interfaz de línea de comandos (CLI) que es muy útil para la resolución de problemas. Para ejecutar comandos de la CLI del agente, utilice SSH para conectarse a una instancia. A continuación, se pueden ejecutar los comandos de la CLI del agente para realizar diversas tareas, entre las que se incluyen las siguientes:

Para obtener más información acerca de cómo configurar una conexión de SSH a una instancia, consulte Inicio de sesión con SSH. También debe contar con los permisos SSH y sudo para la pila.

En esta sección se describe cómo utilizar la CLI del agente para la resolución de problemas. Para obtener más información y una referencia de comandos completa, consulte AWS OpsWorks Agente Stacks CLI.

Ejecución de recetas

El comando run_command de la CLI del agente ordena al agente que vuelva a ejecutar un comando que ha ejecutado anteriormente. La mayoría de comandos útiles para la resolución de problemas (setup, configure, deploy y undeploy) se corresponde con un evento del ciclo de vida. Los comandos ordenan al agente que inicie una ejecución de Chef para ejecutar las recetas asociadas.

nota

El comando run_command se limita a ejecutar el grupo de recetas que está asociado con un comando específico, normalmente son las recetas que están asociadas con un evento del ciclo de vida. No puede utilizarlo para ejecutar una receta determinada. Para ejecutar una o varias recetas específicas, utilice el comando de pila Execute Recipes o las acciones de la CLI o la API equivalentes (create-deployment y CreateDeployment).

El comando run_command es muy útil para la depuración de recetas personalizadas, especialmente recetas que se asignan a los eventos del ciclo de vida Setup y Configure, que no puede disparar directamente desde la consola. Al utilizar run_command, puede ejecutar las recetas de un evento determinado siempre que se necesiten sin tener que iniciar o finalizar instancias.

nota

AWS OpsWorks Stacks ejecuta las recetas desde la caché de libros de cocina de la instancia, no desde el repositorio de libros de cocina. AWS OpsWorks Stacks descarga libros de cocina a esta caché cuando se inicia la instancia, pero no actualiza automáticamente la caché en las instancias en línea si posteriormente modificas tus libros de cocina. Si ha modificado sus libros de recetas después de iniciar la instancia, asegúrese de ejecutar el comando de pila Update Cookbooks para actualizar la memoria caché del libro de recetas con la versión más reciente del repositorio.

El agente solo graba en caché los comandos más recientes. Puede enumerarlos ejecutando list_commands, que devuelve una lista de comandos almacenados en caché y el momento en que se han llevado a cabo.

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

Para volver a ejecutar el comando más reciente, ejecute lo siguiente:

sudo opsworks-agent-cli run_command

Para volver a ejecutar la instancia más reciente de un comando especificado, ejecute lo siguiente:

sudo opsworks-agent-cli run_command command

Por ejemplo, para volver a ejecutar las recetas Setup, puede ejecutar el siguiente comando:

sudo opsworks-agent-cli run_command setup

Cada comando tiene un JSON de la implementación y la configuración de la pila asociado que representa el estado de la implementación y de la pila en el momento en que se ha ejecutado el comando. Dado que los datos pueden cambiar de un comando a otro, una instancia más antigua de un comando podría utilizar datos ligeramente distintos que los que utiliza la más reciente. Para volver a ejecutar una instancia determinada de un comando, copie la hora de la salida list_commands y ejecute los siguiente:

sudo opsworks-agent-cli run_command time

Todos los ejemplos anteriores vuelven a ejecutar el comando utilizando el JSON predeterminado, que es el JSON que se instaló para dicho comando. Puede volver a ejecutar un comando en un archivo JSON arbitrario de la siguiente manera:

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

Mostrar los registros de Chef

El comando show_log de la CLI del agente muestra un registro específico. Una vez finalizado el comando, verá el final del archivo. El comando show_log, por tanto, proporciona una manera cómoda de consultar la cola del registro, que suele ser donde se encuentra la información de error. Puede desplazarse hacia arriba para ver las partes antiguas del registro.

Para visualizar el registro del comando actual, ejecute lo siguiente:

sudo opsworks-agent-cli show_log

También puede mostrar los registros de un comando determinado, pero debe saber que el agente almacena en caché los registros de únicamente los últimos treinta comandos. Puede enumerar los comandos de la instancia ejecutando list_commands, que devuelve una lista de comandos almacenados en caché y la hora en que se llevaron a cabo. Para ver un ejemplo, consulte Ejecución de recetas.

Para mostrar el registro de la ejecución más reciente de un determinado comando, ejecute lo siguiente:

sudo opsworks-agent-cli show_log command

El parámetro del comando puede fijarse en setup, configure, deploy, undeploy, start, stop o restart. Muchos de estos comandos se corresponden con los eventos del ciclo de vida y ordenan al agente que ejecute las recetas asociadas.

Para visualizar el registro de una ejecución de comandos determinada, copie la fecha de la salida list_commands y ejecute:

sudo opsworks-agent-cli show_log date

Si un comando sigue ejecutándose, show_log mostrará el estado actual del registro.

nota

Una forma de show_log solucionar errores y out-of-memory problemas es guardar un registro durante la ejecución, de la siguiente manera:

  1. Use run_command para disparar el evento del ciclo de vida adecuado. Para obtener más información, consulte Ejecución de recetas.

  2. Ejecute show_log varias veces para ver la cola del registro tal como se escribe.

Si Chef se queda sin memoria o se cierra de forma inesperada, el registro finalizará bruscamente. Si una receta da error, el registro finalizará con una excepción y un rastro de pila.

Mostrar el archivo JSON de la implementación y la configuración de la pila

La mayor parte de los datos que utilizan las recetas proviene del JSON de la implementación y la configuración de la pila, que define un conjunto de atributos de Chef que proporcionan una descripción detallada de la configuración de la pila, las implementaciones y los atributos personalizados y opcionales que pueden añadir los usuarios. Para cada comando, AWS OpsWorks Stacks instala un JSON que representa el estado de la pila y del despliegue en el momento del comando. Para obtener más información, consulte Atributos de configuración e implementación de pilas.

Si la receta personalizada obtiene datos del JSON de la configuración e implementación de la pila, puede verificar los datos examinando el JSON. La forma más sencilla de visualizar el JSON de configuración e implementación de la pila consiste en ejecutar el comando get_json de la CLI del agente, que muestra una versión formateada del objeto JSON. A continuación se muestran las primeras líneas de algunas salidas típicas:

{ "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" ...

Puede visualizar el JSON de configuración e implementación de la pila más reciente de la siguiente manera:

sudo opsworks-agent-cli get_json

Puede visualizar el JSON de configuración e implementación de la pila más reciente para un comando especificado mediante la ejecución de lo siguiente:

sudo opsworks-agent-cli get_json command

El parámetro del comando puede fijarse en setup, configure, deploy, undeploy, start, stop o restart. Muchos de estos comandos se corresponden con los eventos del ciclo de vida y ordenan al agente que ejecute las recetas asociadas.

Puede visualizar el JSON de configuración e implementación de la pila para una ejecución de comando determinada especificando la fecha del comando de la siguiente manera:

sudo opsworks-agent-cli get_json date

La forma más sencilla de utilizar este comando es la siguiente:

  1. Ejecute list_commands, que devuelve una lista de comandos que se ha ejecutado en la instancia, y la fecha en que se ha ejecutado cada comando.

  2. Copie la fecha para el comando adecuado y utilícela como el argumento get_json date.