Crie um pipeline CodePipeline e AMI use 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 CodePipeline e AMI use um HashiCorp Packer

Criado por Akash Kumar () AWS

Ambiente: PoC ou piloto

Fonte: DevOps

Alvo: Amazon Machine Images (AMI)

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 Amazon Web Services (AWS) usando 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 o. AWS CodeCommit Em seguida, crie um projeto e configure seu código-fonte usando AWS CodeBuild o. Por fim, crie um AMI que seja comprometido com seu repositório.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa

  • Um Amazon Linux AMI para lançar instâncias do Amazon Elastic Compute Cloud (AmazonEC2)

  • 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 um AMI usando a arquitetura desse padrão.

Automatize a criação de umAMI.

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 os AMI com base em um JSON modelo. 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— AWS CodeBuild é 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— AWS CodeCommit é um serviço de controle de versão que permite armazenar e gerenciar repositórios Git de forma privada na nuvem. 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— AWS CodePipeline é 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— Esse arquivo usa o Packer para criar um Amazon Linux. AMI

Épicos

TarefaDescriçãoHabilidades necessárias

Criar o repositório.

Crie um CodeCommit repositório.

AWSadministrador de sistemas

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 AWS de gerenciamento, abra o AWS CodeBuild console e escolha Criar projeto de compilação.

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

  3. Em Source provider, 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 AWS de sistemas
TarefaDescriçãoHabilidades necessárias

Nome do pipeline

  1. Faça login no console AWS de gerenciamento, abra o AWS CodePipeline console e escolha Criar 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. Em Source provider, 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 CodePipelineverificar periodicamente as alterações. Escolha Próximo.

  9. Em Build provider (Fornecedor 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 AWS de sistemas

Recursos relacionados

Anexos

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