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.
O diagrama mostra o seguinte fluxo de trabalho:
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).
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
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar o 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. |
| Desenvolvedor de aplicativos |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um projeto de compilação. |
| Desenvolvedor de aplicativos, administrador de sistemas da AWS |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Nome do 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