Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações
Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações

Eventos da caixa. Eventos de caixa. Instalar, configurar e outros

Atualizado por Julio Castanar em dez 28, 2018
Código do artigo: kb/399

Neste artigo:

Visão geral

Este artigo se destina a auxiliar os clientes do Cloud Application Manager que desejam criar e gerenciar caixas. Ele trata de Eventos de caixa.

O ciclo de vida de um serviço ou aplicativo é gerenciado virtualmente por eventos de caixa, como instalar, configurar, iniciar, parar e descartar. Cada evento corresponde ao seu tipo de script de evento na caixa. O Cloud Application Manager suporta a criação de scripts de eventos em todas as linguagens suportadas pelas imagens básicas do Linux e Windows. Elas incluem Bash, PowerShell, Salt, Ansible, Chef e Puppet.

O agente do Cloud Application Manager executa e armazena a saída dos scripts de eventos em um diretório padrão na instância da máquina virtual: /var/elasticcaixa/<instance_id> onde instance_id é a ID da instância. Você pode consultar esse diretório como ${folder} nos scripts de evento para mover a saída dos scripts executados em outro lugar.

Público

Usuários do Cloud Application Manager que utilizam recursos de Application Lifecycle Management (ALM - gerenciamento de ciclo de vida de aplicativos).

Pré-requisitos

  • Acesso ao site Applications (módulo Application Lifecycle Management) do Cloud Application Manager como um usuário autorizado de uma conta ativa do Cloud Application Manager.

  • Um provedor já configurado no Cloud Application Manager. Consulte administrar provedores.

Tipos de eventos

Há cinco tipos de eventos em uma caixa. Cada evento é executado dependendo da ação acionada em uma instância de caixa.

Instalar

Instala a caixa. É executado quando você clica em implementar em uma caixa e também ao clicar em reinstalar em uma instância.
Use-o para instalar ou atualizar tarefas, como configurar um ambiente de tempo de execução Java, Ruby ou Python.

Configurar

Lida com a instalação inicial e é executado após os eventos de instalação. Também é executado quando você clica em Reconfigurar em uma instância.
Use-o para reinicializar o servidor virtual (usando a linha de comandos do servidor), inicie o servidor a partir da página de instância do Cloud Application Manager e adicione ou remova nós de instância quando gerenciados por meio do escalonamento automático do AWS.
O evento deve conter tarefas que ocorrem várias vezes ao longo da vida útil de uma instância de caixa, como configurar e manter a conectividade entre camadas de aplicativos.

Iniciar

Inicia um serviço. É executado após configurar eventos e também é acionado quando você clica em Ligar em uma instância ou quando o servidor virtual é reinicializado. O evento deve conter tarefas para iniciar um serviço.

Parar

Encerra de forma limpa um serviço. É executado quando você clica em Desligar em uma instância. O evento deve conter tarefas para encerrar de forma limpa um serviço.

Descartar

É executado quando você clica em Terminar em uma instância implementada com sucesso. O evento deve conter tarefas que limpem a instância antes de ser excluída.
Os exemplos incluem o cancelamento do registro de agentes e a coleta de registros e dados com informações de estado.

Ordem de execução de eventos

O Cloud Application Manager executa eventos na ordem em que são exibidos na seção de eventos de caixa.
Por exemplo, essa caixa aninha uma caixa Git que, por sua vez, aninha uma caixa de repositório Git. Se expandirmos os eventos, poderemos ver a ordem em que os scripts são executados no momento da implementação.

Ordem de execução de eventos

Tipos de pré-evento

Observe como cada evento tem um tipo de pré-evento. O evento instalar tem pre_install, configurar tem pre_configure, e assim por diante. Os pré-eventos preenchem certas condições antes da execução do próximo passo.
Por exemplo, você pode precisar do pré-evento para instalar dependências ou fazer download de arquivos ou criar pastas e diretórios. Os pré-eventos sempre são executados antes dos eventos da caixa secundária.

Códigos de erro de eventos

É recomendável usar códigos de erro de saída em eventos para indicar se uma tarefa foi executada com êxito ou não em uma instância. Por exemplo, você pode retornar um 0 para indicar um erro e escrever o que causou o erro nos registros da instância.

Nos scripts shell de eventos do Windows e do Linux, o Cloud Application Manager compreende três tipos de códigos de saída que afetam o estado da instância.

Use o código Para indicar Descrição Estado da instância
0 Sucesso O script retorna um zero. A instância está on-line e disponível.
Diferente de zero Falha Falha do Cloud Application Manager no script de evento que retornou diferente de zero. A instância está indisponível.
100 Reiniciar Indica que você deseja reinicializar o serviço ou a máquina virtual. O agente entra no modo de espera enquanto a reinicialização é concluída.
Para reinicializar, execute o comando reboot para o tipo de sistema operacional.
Por exemplo, no Linux é para reinicializar, no Windows PowerShell significa reiniciar-computador.
Estado da instância não afetado.

Exemplos

Este exemplo de script shell verifica se um arquivo de configuração puppet foi executado com sucesso. Caso contrário, o snippet retorna o código de erro padrão 1 para indicar um erro. A mensagem de erro do comando echo é registrada nos registros da instância.

puppetfile=`curl -k -s $PUPPET_DEFAULT`
if [ $(echo $puppetfile | wc -c) -gt 1 ]; then
echo "$puppetfile" | elasticbox config | puppet apply -v --detailed-exitcodes --modulepath=$folder/$MODULES_DIRECTORY --templatedir $folder/$TEMPLATES_DIRECTORY
if ! [[ ($? == 0) || ($? == 2) ]]; then
echo "Error: Failed to apply your PuppetDefault configuration file."
exit 1
fi
else
echo "Error: Failed to download PuppetDefault configuration file."
exit 1
fi

Aqui está outra amostra de script que usa o código de saída 0 para indicar que o comando foi concluído com êxito quando a conectividade com a máquina Nginx está ativa.

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx

Códigos de retorno do Windows

Em máquinas Windows, executamos comandos usando o parâmetro Arquivo do PowerShell.

  • Quando o parâmetro Arquivo encontra erros fatais, ele para de executar um comando, mas não retorna um código de erro de saída.

  • Quando encontra erros não fatais, continua na próxima operação sem retornar um código de erro por padrão.

Para contornar essas limitações e capturar erros na instância, sugerimos o retorno de códigos de evento para erros fatais e não fatais e exceções:

  • Faça com que erros fatais retornem um código de erro diferente de 0.

  • Também trate erros não fatais como fatais para capturá-los nos registros da instância do Cloud Application Manager e refletir o verdadeiro estado da instância. Opcionalmente, aplique a mesma solução alternativa para capturar exceções.

Como você pode ver neste exemplo, as linhas de trap retornam um código de saída diferente de 0 para relatar o erro. A primeira linha faz a execução parar em qualquer erro. Os registros do Cloud Application Manager mostram os erros e processam a instância da VM relacionada em um estado indisponível.

$ErrorActionPreference="Stop"
trap {
        Write-Warning $_
        exit 1
}

Como contatar o suporte do Cloud Application Manager

Lamentamos que você tenha encontrado um problema com o Cloud Application Manager. Consulte as dicas de troubleshooting ou entre em contato com o suporte do Cloud Application Manager e apresente detalhes e capturas de tela, conforme possível.

Para problemas relacionados a chamadas de API, envie o corpo da solicitação junto com os detalhes referentes ao problema.

Em caso de erro de caixa, compartilhe a caixa no espaço de trabalho que sua organização e o Cloud Application Manager podem acessar e anexe os registros.

  • Linux: SSH e localize o registro em /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP na instância para localizar o registro em \ProgramData\ElasticBox\Logs\elasticbox-agent.log
Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink