Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Integração com Jenkins
Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Integração com Jenkins

Configurar CI/CD com o Cloud Application Manager, Jenkins e GitHub

Atualizado por Julio Castanar em 16 de maio de 2019
Código do artigo: kb/417

Neste artigo:

Visão geral

O plugin Jenkins do Cloud Application Manager automatiza CI/CD em qualquer nuvem e SCM.
Neste artigo, usamos Git como SCM.
Para CI, o plugin inicia atualizações de código para criar ambientes em qualquer nuvem por meio do Cloud Application Manager.
Para CD, ele executa operações de automatização e ciclo de vida para cargas de trabalho definidas nas caixas do Cloud Application Manager nas etapas de compilação de trabalho do Jenkins.

Para adicionar etapas de compilação do Cloud Application Manager em trabalhos do Jenkins, vá para a página de trabalho. Em Compilar, clique em Adicionar etapa de compilação e selecione uma etapa de implementação, gerenciamento ou atualização do Cloud Application Manager.

Público

Se você usa o Cloud Application Manager e também usa o Jenkins para testar e integrar as mudanças de códigos continuamente em desenvolvimento, preparo ou produção, você pode usar o plugin Jenkins do Cloud Application Manager para automatizar totalmente as implementações sem nenhum toque.

Pré-requisitos

Gerenciar solicitações pull GitHub 

O plugin simplifica o ciclo de vida da solicitação pull do GitHub para cargas de trabalho executadas pelo Cloud Application Manager. Embora você precise do plugin GitHub para fornecer o repositório, a URL do projeto e as credenciais de acesso, não é necessário o plugin do compilador de solicitação pull do GitHub, que é muito trabalhoso para configurar.

job-build-triggers.png

Quando você marca a opção Gerenciar ciclo de vida da solicitação pull do GitHub com o Cloud Application Manager no trabalho do Jenkins, o plugin executa o seguinte:

  • Detecta automaticamente confirmações no repositório do GitHub especificado no trabalho do Jenkins.
  • Aciona o trabalho do Jenkins quando você cria ou atualiza uma solicitação pull.
    O plugin detecta uma mudança quando qualquer um desses casos ocorrer:
    • Você submete uma nova solicitação pull,
    • reabre um existente,
    • envia uma nova confirmação para uma já existente ou
    • publica a frase acionadora especificada do trabalho do Jenkins no comentário da solicitação pull.
  • Gerencia várias atualizações para uma solicitação pull de maneira econômica. Normalmente, uma solicitação pull tem uma instância.
    Quando várias confirmações acontecem simultaneamente, o Jenkins pode se deparar com conflitos e criar problemas. Além disso, as confirmações simultâneas para a mesma solicitação pull desperdiçam recursos de computação e slave. Mas, com a opção de ciclo de vida, o plugin cancela compilações mais antigas quando encontra uma nova atualização para a solicitação pull.
    Assim, ele economiza tanto em recursos slave quanto de computação.
  • Quando você mescla solicitações pull para a ramificação principal, o plugin encerra e exclui a instância da solicitação pull. Isso é útil para aplicativos de várias camadas. Geralmente, você tem que usar tags e excluir etapas de compilação em tarefas de compilação downstream para limpar instâncias. Mas você poupa todo esse trabalho extra com a opção de ciclo de vida do plugin.

O Cloud Application Manager fornece parâmetros que contêm informações sobre solicitações pull do GitHub. Você pode chamá-los a partir de scripts de caixa, variáveis de expressão de texto de caixa e em scripts shell de trabalho de compilação do Jenkins.

Nome Descrição
PR_NUMBER Número de solicitação pull
PR_URL URL de solicitação pull (ex.: https://github.com/jenkinsci/elasticbox-plugin/pull/0 )
PR_OWNER Login do GitHub do proprietário da solicitação pull
PR_OWNER_EMAIL Endereço de e-mail do proprietário da solicitação pull
PR_MERGE_BRANCH Ramificação na qual a solicitação pull é mesclada (ex.: principal)
PR_BRANCH Ramificação git da solicitação pull (ex.: testes de correção de unidade)
PR_COMMIT Confirmar Git para o build disparado (ex.: fe0b1bef2e3b4bd5a6aae7e)
BUILD_REQUESTER Login do GitHub da pessoa solicitando a compilação através de uma frase acionadora como "Teste de Jenkins, por favor"
BUILD_REQUESTER_EMAIL Endereço de e-mail da pessoa que solicita a compilação

Implementar configurações de caixas do Cloud Application Manager

Adicione a etapa de compilação Implementar caixa do Cloud Application Manager em trabalhos do Jenkins para iniciar a configuração automatizada definida em caixas de uma conta do Cloud Application Manager.

Adicione uma etapa de compilação

Selecione uma caixa que você deseja implementar à instância.

job-deploy-box.png

  • Nuvem - Selecione a conta do Cloud Application Manager com a qual você se registrou na configuração do sistema do servidor Jenkins.
  • Espaço de trabalho - Escolha o espaço de trabalho do Cloud Application Manager de onde você deseja implementar a caixa.
  • Caixa - Escolha a caixa na sua área de trabalho que você deseja implementar.
  • Versão - Escolha versão automática do Cloud Application Manager para implementar uma caixa padrão. Para qualquer outra caixa, selecione Mais recente ou uma versão na lista suspensa.
  • Nome da instância - Escolha um nome para cada instância criada para essa caixa. Anote a variável usada para relacioná-la com o número de solicitação pull e forneça um nome diferente ao mesmo tempo. Veja o próximo campo.
  • Tags Insira uma ou mais palavras-chave separadas por vírgula. Essas palavras-chave podem incluir parâmetros de compilação e variáveis de ambiente do Jenkins no formato ${variable_name}. A instância implementada a partir dessa etapa de compilação é marcada com essas palavras-chave. Certifique-se de que as tags sejam exclusivas se você quiser vincular a essa etapa de compilação a partir de uma subsequente.
  • Atualizações automáticas - Especifique se a caixa deve ser atualizada quando uma nova versão estiver disponível.
  • Expiração - Ao implementar caixas por meio de trabalhos de compilação do Jenkins, você pode planejar a expiração da instância em horas futuras ou hora e data personalizadas para poupar dinheiro e recursos no processo.
    Na etapa de compilação de implementação, em Expiração, agende uma instância da seguinte maneira:
    • Se você não deseja agendar, mantenha Sempre ativo, que é o padrão. Esta opção permite que você elimine a instância quando quiser.

    • Para desligá-la, selecione Desligamento na lista suspensa. Em seguida, especifique se deseja desligar em um número de horas a partir de agora ou em uma data e hora específicas.

      deploy-expiration-shutdown.png

    • Para encerrá-lo, selecione Encerrar no menu suspenso. Em seguida, especifique quando da mesma maneira que antes.

      deploy-expiration-terminate.png

Configure as variáveis

Em Variáveis, passe os valores de implementação para as variáveis definidas na caixa e vincule-as às instâncias. Dependendo da caixa que você escolher, diferentes variáveis serão mostradas para preencher.

Se você tiver uma variável aqui que se liga a uma caixa de uma etapa de compilação anterior, você pode usar tags para se referir à caixa. Por exemplo, em uma etapa de compilação de implementação anterior, uma caixa de banco de dados MySQL é marcada como mysql-db. Ao vincular a esta caixa a partir de uma etapa de compilação posterior, nos referimos à tag conforme mostrado.

job-variables

Defina a política de implementação

Selecione uma política de implementação específica ou pesquise políticas cujas reivindicações correspondam aos requisitos que aparecem aqui.

job-deployment

Defina as configurações avançadas

Em Avançado, você pode definir mais configurações de implementação.

job-advanced-settings

  • Se a instância já existir - Informe ao Jenkins o que fazer, escolhendo se ainda deve ser implementada, ignore a implementação, a reinstalação, reconfigure ou exclua a instância existente e implemente uma nova.

  • Aguardar a conclusão - Marque esta opção se você quiser que as etapas subsequentes da compilação esperem que esta sejam concluídas antes de iniciar a próxima. Para executar etapas de compilação em paralelo, desmarque-a.

  • Tempo limite de espera - Em qualquer uma das etapas de compilação do Cloud Application Manager, você pode esgotar o tempo limite de qualquer operação em minutos se não for executado nesse horário especificado. Por padrão, o plugin Jenkins do Cloud Application Manager aguarda 0 minutos antes de atingir o tempo limite de uma operação. Mas você pode especificar um tempo de espera customizado.

  • Injetar variáveis de ambiente - Permite gerar informações de instância. Dependendo da caixa que você escolheu, diferentes nomes de variáveis estão disponíveis. Digite um nome de variável e o Cloud Application Manager o utilizará para gerar informações de instância.
    Você pode passá-las como variáveis de ambiente seguindo as etapas de compilação ou trabalhos de compilação.

    job-inject-environment-variables

    Por exemplo, se você inserir MYSQL, recuperará as seguintes variáveis de ambiente para a instância:

    • MySQL ID de instância
    • MYSQL_URL: URL da instância
    • MYSQL_SERVICE_ID: ID da instância de serviço
    • MYSQL_TAGS: MYSQL_TAGS: Tags separadas por vírgulas da instância

    Dependendo de você ter implementado uma ou mais instâncias, você também obtém essas variáveis:

    Instância única

    • MYSQL_MACHINE_NAME: Nome da máquina da instância
    • MYSQL_PUBLIC_ADDRESS: Endereço IP público da instância.
    • MYSQL_PRIVATE_ADDRESS: Endereço IP privado da instância.

    Várias instâncias

    • MYSQL_MACHINE_NAMES: MYSQL_MACHINE_NAMES: Lista de nomes de máquinas para as instâncias
    • MYSQL_PUBLIC_ADDRESS: MYSQL_PUBLIC_ADDRESS: Lista de endereços IP públicos para as instâncias
    • MYSQL_PRIVATE_ADDRESS: Endereço IP privado da instância.

Gerenciar instância de ciclo de vida usando o Cloud Application Manager

Adicione a etapa de compilação Gerenciar instância do Cloud Application Manager em trabalhos do Jenkins para gerenciar o ciclo de vida de instâncias em um espaço de trabalho com operações específicas.

Selecione uma operação de instância

manage-operations.png

Para executar uma operação, selecione a conta do Cloud Application Manager registrada no Jenkins, a área de trabalho onde a instância está localizada e a operação no menu Adicionar operação. Selecione Reconfigurar, Reinstalar, Iniciar, Parar, Encerrar ou Atualizar.

Configure as operações

  • Qualquer uma das operações Reconfigurar, reinstalar, iniciar, parar ou encerrar uma instância pode configurar alguns dos seguintes recursos:

    manage-operation-terminate.png

    • Tags - digite tags para as instâncias. Separe as tags por vírgula. Qualquer operação selecionada é executada em todas as instâncias marcadas.
      As tags podem vir de uma etapa de compilação de implementação ou podem ser tags aplicadas a instâncias implementadas por meio do Cloud Application Manager. As tags podem incluir parâmetros de compilação e variáveis de ambiente do Jenkins no formato ${variable_name}.

    • Aguardar a conclusão - Marque esta opção se você quiser que as etapas subsequentes da compilação esperem que esta sejam concluídas antes de iniciar a próxima. Para executar etapas de compilação em paralelo, desmarque-a.

    • Tempo limite de espera - Em qualquer uma das etapas de compilação do Cloud Application Manager, você pode atingir o tempo limite de uma operação em minutos se não for executada nesse horário especificado. Por padrão, o plugin Jenkins do Cloud Application Manager aguarda 0 minutos antes de atingir o tempo limite de uma operação. Mas você pode especificar um tempo de espera customizado.

    • Forçar encerramento - Em vez de encerrar uma instância, você pode forçá-la a finalizar selecionando essa opção em uma operação de encerramento.

    • Excluir após o encerramento - Em uma operação de encerramento, marque esta opção para excluir instâncias após o encerramento.

  • Na operação Atualizar, insira a caixa, a versão preferida e as tags para identificar uma instância implementada que você deseja atualizar.

    manage-operation-update.png

    Atualize seu tempo de execução fornecendo valores de implementação para as variáveis da caixa escolhida.
    Para aplicar essas alterações à instância, execute a reinstalação ou reconfigure nas operações subsequentes.

Variáveis de atualização dos arquivos de caixas

Em um projeto do Jenkins, a etapa de compilação Atualizar caixa do Cloud Application Manager permite que você carregue as variáveis de arquivo em uma caixa em um espaço de trabalho específico.
Adicione essa etapa de compilação para fazer upload de arquivos de uma pasta de trabalho em que o trabalho do Jenkins é executado em uma caixa no Cloud Application Manager.

update-box-build.png

Veja o CI/CD em ação

Para ver o CI/CD do Jenkins em ação, experimente o tutorial. Ele leva você através de um fluxo de trabalho típico de implementação totalmente automatizado com a ajuda do plugin do Cloud Application Manager.

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: Windows: RDP na instância para localizar o registro em ProgramDataElasticBoxLogselasticbox-agent.log
Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink