Projeto com scripts do Terraform criados a partir do conteúdo assimilado durante treinamento Descomplicando Terraform da LINUXtips.
- aws resources
- random_shuffle resource
- tls resource
- http data source
- external data source
- local variables
- input variables
- number and string variables
- outputs
- remote state
- encrypted state
- conditional expressions
- splat expressions
- providers
- backends
- workspaces
- modules
- Criar uma conta na AWS
- Criar um usuário no IAM da AWS e baixar o csv com suas credenciais
- Criar um domínio(No meu caso, usei um domínio gratuito do Freenom)
## Instalando dependências
sudo apt install -y wget unzip graphviz
## Baixando e instalando o Terraform localmente
wget -P /tmp https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
unzip /tmp/terraform*.zip
sudo mv /tmp/terraform /usr/local/bin
## Instalando o python3, pip3 e o awscli
sudo apt install -y python3 python3-pip graphviz
sudo pip install awscli
## Configurando o awscli - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html
aws configure
## Rodando o terraform
git clone https://github.com/aleroxac/linuxtips-terraform
cd linuxtips-terraform
terraform init
terraform plan -out plan.out
terraform apply plan.out
# É importante ler o README.md dentro dos módulos para ver os detalhes de como usá-los.
## Instalando o Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker ${USERNAME}
## Depois disso, caso não queira ficar usando o sudo, faça logout da sua sessão de usuário e logue-se novamente.
## Instalando o python3, pip e o awscli
sudo apt install -y python3 python3-pip graphviz
sudo pip install awscli
## Configurando o awscli - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html
aws configure
## Rodando o terraform
git clone https://github.com/aleroxac/linuxtips-terraform
cd linuxtips-terraform
alias terraform="docker run \
--rm \
-v $PWD:/code \
-w /code \
-e AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \
-e AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \
hashicorp/terraform:light"
terraform init
terraform plan -out plan.out
terraform apply plan.out
# É importante ler o README.md dentro dos módulos para ver os detalhes de como usá-los.
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker ${USERNAME}
sudo apt install -y python3 python3-pip graphviz
sudo pip install awscli
aws configure
git clone https://github.com/aleroxac/linuxtips-terraform
cd linuxtips-terraform
alias terraform="docker run \
--rm \
-v $PWD:/code \
-w /code \
-e AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \
-e AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \
hashicorp/terraform:light"
alias make="make -f scripts/docker/Makefile"
make terraform-init
make terraform-plan
make terraform-apply
make check-server
make check-nginx
- aws-ec2
- aws-ecs
- Caso queria criar apenas os recursos de um módulo, basta comentar o respectivo código dentro do arquivo terrafile.tf na raiz deste projeto.
- Não criam o bucket no S3 para guardar seu state file; você mesmo precisa criar "manualmente"
- Não cadastram os name servers do Route53 automaticamente no seu provedor de domínio(Usei o Freenom)