Crie um pipeline e uma AMI usando CodePipeline um HashiCorp Packer - Recomendações da AWS

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á.

Crie um pipeline e uma AMI usando CodePipeline um HashiCorp Packer

Criado por Akash Kumar (AWS)

Ambiente: PoC ou piloto

Fonte: DevOps

Destino: Imagens de máquina da Amazon (AMIs)

Tipo R: redefinir a hospedagem

Workload: todas as outras workloads

Tecnologias: DevOps; Modernização; aplicativos móveis e web

Resumo

Esse padrão fornece exemplos de código e etapas para criar um pipeline na nuvem da Amazon Web Services (AWS) usando a AWS CodePipeline e uma Amazon Machine Image (AMI) usando o HashiCorp Packer. O padrão é baseado na prática de integração contínua, que automatiza a criação e o teste do código com um sistema de versionamento baseado em Git. Nesse padrão, você cria e clona um repositório de código usando a AWS. CodeCommit Em seguida, crie um projeto e configure seu código-fonte usando a AWS CodeBuild. Por fim, crie uma AMI que seja comprometida com seu repositório.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Uma Amazon Linux AMI para iniciar instâncias do Amazon Elastic Compute Cloud (Amazon EC2)

  • HashiCorp Packer 0.12.3 ou posterior

  • CloudWatch Eventos da Amazon (opcional)

  • Amazon CloudWatch Logs (opcional)

Arquitetura

O diagrama a seguir mostra um exemplo de código de aplicativo que automatiza a criação de uma AMI usando a arquitetura desse padrão.

Automatize a criação de uma AMI.

O diagrama mostra o seguinte fluxo de trabalho:

  1. O desenvolvedor confirma as alterações de código em um repositório CodeCommit Git privado. Em seguida, CodePipeline usa CodeBuild para iniciar a construção e adicionar novos artefatos que estão prontos para implantação no bucket do Amazon Simple Storage Service (Amazon S3).

  2. CodeBuild usa o Packer para agrupar e empacotar a AMI com base em um modelo JSON. Se ativado, o CloudWatch Events pode iniciar automaticamente o pipeline quando ocorrer uma alteração no código-fonte.

Pilha de tecnologia

  • CodeBuild

  • CodeCommit

  • CodePipeline

  • CloudWatch Eventos (opcional)

Ferramentas

  • AWS CodeBuild — CodeBuild A AWS é um serviço de construção totalmente gerenciado na nuvem. CodeBuild compila seu código-fonte, executa testes de unidade e produz artefatos prontos para serem implantados.

  • AWS CodeCommit — CodeCommit A AWS é um serviço de controle de versão que permite que você armazene e gerencie de forma privada repositórios Git na nuvem da AWS. CodeCommit elimina a necessidade de você gerenciar seu próprio sistema de controle de origem ou se preocupar com a escalabilidade de sua infraestrutura.

  • AWS CodePipeline — CodePipeline A AWS é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software.

  • HashiCorp Packer — O HashiCorp Packer é uma ferramenta de código aberto para automatizar a criação de imagens de máquina idênticas a partir de uma única configuração de origem. O Packer é leve, funciona em todos os principais sistemas operacionais e cria imagens de máquina para várias plataformas em paralelo.

Código

Esse padrão inclui os seguintes anexos:

  • buildspec.yml— Esse arquivo é usado CodeBuild para criar e criar um artefato para implantação.

  • amazon-linux_packer-template.json: este arquivo usa o Packer para criar uma Amazon Linux AMI.

Épicos

TarefaDescriçãoHabilidades necessárias

Criar o repositório.

Crie um CodeCommit repositório.

Administrador de sistemas AWS

Clonar o repositório.

Conecte-se ao CodeCommit repositório clonando o repositório.

Desenvolvedor de aplicativos

Envia o código-fonte para o repositório remoto.

  1. Criar uma confirmação para adicionar os arquivos buildspec.yml e amazon-linux_packer-template.json ao seu repositório local.

  2. Envie o commit do seu repositório local para o CodeCommit repositório remoto.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie um projeto de compilação.

  1. Faça login no console de gerenciamento da AWS, abra o CodeBuild console da AWS e escolha Create build project.

  2. Em Nome do projeto, digite o nome de seu projeto.

  3. Para provedor de origem, escolha AWS CodeCommit.

  4. Em Repositório, escolha o repositório em que você deseja criar o pipeline de código.

  5. Em Imagem do ambiente, escolha Imagem gerenciada ou Imagem personalizada.

  6. Para Operating system, selecione Ubuntu.

  7. Para RunTime(s), escolha Padrão.

  8. Em Imagem, escolha aws/codebuild/standard:4.0.

  9. Na Versão da imagem, escolha Sempre usar a imagem mais recente para esta versão de runtime.

  10. Em Ambiente, selecione Linux.

  11. Marque a caixa de seleção Privilegiado.

  12. Em Perfil de serviço, escolha Novo perfil de serviço ou Perfil de serviço existente.

  13. Em Especificações da compilação, escolha Usar um arquivo de especificações da compilação ,ou Inserir comandos de compilação.

  14. (Opcional) Em Tipo na seção Artefatos, escolha Sem artefatos.

  15. (Recomendado) Para fazer upload dos registros de saída da compilação para CloudWatch Logs, escolha CloudWatch logs.

  16. (Opcional) Para fazer upload dos logs de saída da compilação para o Amazon S3, marque a caixa de seleção Logs do S3.

  17. Selecione Create build project (Criar projeto de compilação).

Desenvolvedor de aplicativos, administrador de sistemas da AWS
TarefaDescriçãoHabilidades necessárias

Nome do pipeline

  1. Faça login no console de gerenciamento da AWS, abra o CodePipeline console da AWS e escolha Create pipeline.

  2. Em Nome do pipeline, insira um nome para o pipeline.

  3. Em Perfil de serviço, escolha Novo perfil de serviço ou Perfil de serviço existente.

  4. Em Role name (Nome da função), digite um nome para sua função.

  5. Na seção Configurações avançadas, em Armazenamento de artefatos, escolha Localização padrão se quiser que o Amazon S3 crie um bucket e armazene os artefatos no bucket. Para usar um bucket S3 existente, escolha Custom location (Local personalizado). Escolha Próximo.

  6. Para provedor de origem, escolha AWS CodeCommit.

  7. Em Nome do repositório, escolha o repositório que você clonou anteriormente. Em Nome da ramificação, escolha sua ramificação do código-fonte.

  8. Para opções de detecção de alterações, escolha Amazon CloudWatch Events (recomendado) para iniciar o pipeline ou AWS CodePipeline para verificar periodicamente as alterações. Escolha Próximo.

  9. Para o provedor de compilação, escolha AWS CodeBuild.

  10. Em Nome do projeto, escolha o projeto de construção que você criou no épico Criar um CodeBuild projeto para o aplicativo.

  11. Escolha suas opções de compilação, e, em seguida, escolha Próximo.

  12. Escolha Ignorar estágio de implantação.

  13. Selecione Criar pipeline.

Desenvolvedor de aplicativos, administrador de sistemas da AWS

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip