Skip to content

Automation for AMI generation and deployment with packer, terraform, shellscript and Github Actions

Notifications You must be signed in to change notification settings

infratidev/terraform-packer-aws-github-actions

Repository files navigation

Blog

Projeto terraform packer aws utilizando o github actions, sendo acionado via PR

Contents

Projeto terraform packer aws com github-actions

Estrutura

  • Esse projeto será executado utlizando o github-actions. Projeto foi criado para ser executado localmente também nesse repositório terraform-packer-aws
  • PR sendo aprovado e feito o merge na branch main em uma única ação, ao executar ./terraform-packer-aws.sh com o parâmentro all ./terraform-packer-aws.sh all será executado:
    • Através do terraform, o provisionamento da infraestrutura de rede para o packer realizar o build utilizando a AWS.
    • Após infraestrutura de rede pronta, o packer irá realizar o build da imagem na AWS utilizando a infraestrutura de rede específica, onde será executado o script userdata.sh instalando um servidor apache.
    • AMI criada e disponível na AWS, será provisionado com o terraform uma infraestrutura nova para deploy de uma ec2 com a imagem criada pelo packer.
    • tfstate da infraestrutura de network e deploy estão separadas, utilizando S3 para armazenar o state e dynamoDB para locking.
    • Para que consigamos efetuar o destroy, através do manifest post-processor iremos criar o arquivo packer_manifest.json com a lista de todos os artefatos que o packer produziu durante a execução. No processo de deploy armazenamos no S3 e no processo de destroy recuperamos do S3.

Requiriments

  • AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY cadastradas no github e parametrizadas na AWS com as pemissões para os recursos utilizados.
  • Estrutura para remote state criada. Link para provisionar a estrutura: Estrutura Remote State

Working DIR

Estrutura criada para execução do script terraform-packer-aws.sh dentro da pasta scripts

Provisionamento

Abrir um PR, aprovar e efetuar o merge.

Ao final, será exibido na console.

Prov

Todas execuções:

Prov2

Remoção de toda infraestrutura criada, AMIs e snapshots

Acionamento manual do workflow

Ao final, será exibido na console.

Prov2

Todas execuções:

Prov2


Blog

About

Automation for AMI generation and deployment with packer, terraform, shellscript and Github Actions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published