Usando a CLI do AWS OpsWorks Stacks Agent - AWS OpsWorks

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando a CLI do AWS OpsWorks Stacks Agent

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

nota

A CLI do agente está disponível apenas em instâncias do Linux.

Em cada instância on-line, o AWS OpsWorks Stacks instala um agente, que se comunica com o serviço. O serviço AWS OpsWorks Stacks, por sua vez, envia comandos ao agente para realizar tarefas como iniciar execuções do Chef na instância quando ocorre um evento de ciclo de vida. Em instâncias do Linux, o agente expõe uma CLI (interface de linha de comando), o que é muito útil para a solução de problemas. Para executar os comandos de CLI, usar o SSH para se conectar a uma instância. Em seguida, você pode executar os comandos de CLI do agente para executar diversas tarefas, incluindo o seguinte:

Para obter mais informações sobre como configurar uma conexão SSH com uma instância, consulte Login com SSH. Você também deve ter permissões de SSH e sudo para a pilha.

Esta seção descreve como usar a CLI de agente para a solução de problemas. Para obter mais informações e uma referência de comando completa, consulte AWS OpsWorks CLI do Stacks Agent.

Execução de receitas

O comando run_command da CLI de agente direciona o agente para executar novamente um comando executado anteriormente. Os comandos mais úteis para a solução de problemas, setup, configure, deploy e undeploy, correspondem a um evento de ciclo de vida. Eles direcionam o agente para iniciar uma execução do Chefe a fim de executar as receitas associadas.

nota

O comando run_command é limitado a executar o grupo de receitas associado a um comando especificado. Em geral, as receitas que são associadas a um evento de ciclo de vida. Não é possível usá-lo para executar uma receita específica. Para executar uma ou mais receitas específicas, use o comando de pilha Executar receitas ou as ações da API ou CLI equivalentes (create-deployment e CreateDeployment).

O comando run_command é útil para depurar receitas personalizadas, especificamente as atribuídas a eventos de ciclo de vida de Configuração e Instalação, que não podem ser acionados diretamente do console. Ao usar run_command, você pode executar as receitas de um evento específico com a frequência necessária sem precisas iniciar ou parar instâncias.

nota

AWS OpsWorks O Stacks executa receitas do cache do livro de receitas da instância, não do repositório do livro de receitas. AWS OpsWorks O Stacks baixa livros de receitas para esse cache quando a instância é iniciada, mas não atualiza automaticamente o cache nas instâncias on-line se você modificar seus livros de receitas posteriormente. Se você modificou os livros de receitas desde o início da instância, certifique-se de executar o comando de pilha Atualizar livros de receitas para atualizar o cache do livro de receitas com a versão mais recente do repositório.

O agente armazena em cache somente os comandos mais recentes. É possível listá-los ao executar list_commands, que retorna uma lista de comandos em cache e o horário em que foram executados.

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 executar novamente o comando mais recente, execute:

sudo opsworks-agent-cli run_command

Para executar a instância mais recente de um comando especificado, execute:

sudo opsworks-agent-cli run_command command

Por exemplo, para executar novamente Configurar receitas, é possível executar o seguinte comando:

sudo opsworks-agent-cli run_command setup

Cada comando tem uma configuração de pilha e implantação JSON que representa o estado do pilha e da implantação quando o comando foi executado. Como os dados podem mudar de um comando para o outro, uma instância mais antiga de um comando pode usar dados diferentes da mais recente. Para executar novamente uma instância específica de um comando, copie o horário da saída list_commands e execute o seguinte:

sudo opsworks-agent-cli run_command time

Os exemplos anteriores todos executam novamente o comando utilizando o JSON padrão, que é o JSON instalado para o comando. Você pode executar novamente um comando em um arquivo JSON arbitrário da seguinte forma:

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

Exibição de logs do Chef

O comando show_log da CLI do agente exibe um log especificado. Depois que o comando é concluído, você visualiza o fim do arquivo. Portanto, o comando show_log oferece uma maneira conveniente de analisar o fim do log, que é geralmente onde as informações de erro são encontradas. Você pode rolar para cima a fim de visualizar as partes anteriores do log.

Para exibir o log dos comandos atuais, execute isto:

sudo opsworks-agent-cli show_log

Você também pode exibir logs de um comando específico, mas saiba que o agente armazena os logs em cache somente nos trinta últimos comandos. É possível listar os comandos de uma instância ao executar list_commands, que retorna uma lista de comandos em cache e o horário em que foram executados. Para ver um exemplo, consulte Execução de receitas.

Para mostrar o log da execução mais recente de um comando específico, execute o seguinte:

sudo opsworks-agent-cli show_log command

O parâmetro do comando pode ser definido como setup, configure, deploy, undeploy, start, stop ou restart. A maioria desses comandos corresponde a eventos de ciclo de vida e direciona o agente para executar as receitas associadas.

Para exibir o log de uma execução de comando específica, copie a data da saída list_commands e execute:

sudo opsworks-agent-cli show_log date

Se um comando ainda está em execução, show_log exibe o estado atual do log.

nota

Uma forma de usar show_log para solucionar erros e out-of-memory problemas é rastrear um log durante a execução, da seguinte maneira:

  1. Use run_command para acionar o evento de ciclo de vida adequado. Para ter mais informações, consulte Execução de receitas.

  2. Execute repetidamente show_log para visualizar a parte final do log como é escrita.

Se o Chef ficar sem memória ou sair inesperadamente, o log encerra abruptamente. Caso de falha de receita, o log termina com uma exceção e um rastreamento de pilha.

Exibição da configuração de pilha e implantação de JSON

A maior parte dos dados usados por receitas vem da configuração de pilha e implantação JSON, que define um conjunto de atributos do Chef e fornece uma descrição detalhada da configuração de pilha, implantações e atributos personalizados opcionais que os usuários podem adicionar. Para cada comando, o AWS OpsWorks Stacks instala um JSON que representa a pilha e o estado de implantação no momento do comando. Para ter mais informações, consulte Configuração de pilha e atributos de implantação.

Se as receitas personalizadas obtêm dados da configuração de pilha e da implantação JSON, é possível verificar os dados ao examinar o JSON. A maneira mais fácil de exibir a configuração de pilha e a implantação JSON é executar o comando get_json da CLI do agente, que exibe uma versão formatada do objeto JSON. Veja a seguir as primeiras linhas de uma saída típica:

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

Você pode exibir a configuração de pilha mais recente e a implantação JSON da seguinte forma:

sudo opsworks-agent-cli get_json

Você pode exibir a configuração de pilha e a implantação JSON mais recente de um comando especificado ao executar o seguinte:

sudo opsworks-agent-cli get_json command

O parâmetro do comando pode ser definido como setup, configure, deploy, undeploy, start, stop ou restart. A maioria desses comandos corresponde a eventos de ciclo de vida e direciona o agente para executar as receitas associadas.

Você pode exibir a configuração de pilha e a implantação JSON de determinado comando ao especificar a data do comando como:

sudo opsworks-agent-cli get_json date

A maneira mais simples de usar este comando é a seguinte:

  1. Execute list_commands, que retorna uma lista de comandos que foram executados na instância e a data em que cada comando foi executado.

  2. Copie a data para o comando adequado e use-a como o argumento de get_json data.