Bem-vindo ao repositório de projetos Terraform! Este repositório é uma coleção de projetos criados como parte do curso Terraform - Do Básico ao Avançado, disponível na plataforma Udemy. Cada projeto foca em aspectos específicos da infraestrutura como código usando a ferramenta Terraform, abordando cenários de armazenamento (Storage), máquinas virtuais (VM) e redes virtuais (VPC) nas principais plataformas de nuvem.
Aqui estão os projetos disponíveis no repositório, organizados por recursos e plataformas de nuvem:
1.Create - Cria um estrutura de armazenamento na cloud para armazenar e gerenciar objetos.
2.Enabled Versioning - Cria um estrutura de armazenamento na cloud para armazenar e gerenciar objetos com versionamento habilitado para depois ser usado com Remote State
.
Cria um estrutura de nuvem privada virtual (VPC/VNET) com uma subnet com as devidas configurações de segurança.
Antes de executar estes projetos deve-se executar o Storage/Enabled_Versioning e depois VPC da cloud escolhida.
- Remote State - Cria um maquina virtual (VM) com o sistema operacional linux na estrutura de nuvem privada virtual (VPC/VNET) criada anteriormente com remote state salvo na bucket da cloud tambem criada anteriormente com o acesso via SSH.
- Provisioners - Cria um maquina virtual (VM) com o sistema operacional linux na estrutura de nuvem privada virtual (VPC/VNET) criada anteriormente com remote state salvo na bucket da cloud tambem criada anteriormente com o acesso via SSH e adiciona arquivos de teste na pasta
/tmp
do sistema e na pasta do projeto.
- Local - Cria um maquina virtual (VM) com o sistema operacional linux na estrutura de nuvem privada virtual (VPC) provida como modulo.
- Remote - Cria um maquina virtual (VM) com o sistema operacional linux em uma VNET criada com um modulo remoto.
- Gitlab - Cria um maquina virtual (VM) com o sistema operacional linux tanto na azure quanto na aws usando o recurso de pipeline do Gitlab.
- Azure Devops - Cria um maquina virtual (VM) com o sistema operacional linux tanto na azure quanto na aws usando o recurso de pipeline do Gitlab.
Antes de executar qualquer um dos projetos acima, é necessário configurar suas credenciais da AWS e Azure como variáveis de ambiente. Siga as instruções abaixo para configurar suas credenciais:
- Configure suas credenciais da AWS como variáveis de ambiente:
export AWS_ACCESS_KEY_ID=seu_access_key
export AWS_SECRET_ACCESS_KEY=seu_secret_key
- Certifique-se de que as variáveis de ambiente estejam configuradas corretamente antes de executar o projeto.
- Configure suas credenciais da Azure como variáveis de ambiente:
export ARM_CLIENT_ID=seu_client_id
export ARM_CLIENT_SECRET=seu_client_secret
export ARM_SUBSCRIPTION_ID=seu_subscription_id
export ARM_TENANT_ID=seu_tenant_id
- Verifique se todas as variáveis de ambiente estão definidas corretamente antes de iniciar o projeto.
Lembre-se de substituir seu_access_key
, seu_secret_key
, seu_client_id
, seu_client_secret
, seu_subscription_id
e seu_tenant_id
pelos valores correspondentes das suas contas da AWS e Azure.
"Certifique-se de estar com as credenciais do Google Cloud Platform configuradas com o gcloud.
Acesse o site oficial do Google Cloud SDK para encontrar o instalador apropriado para o seu sistema operacional (Windows, macOS ou Linux).
Siga as instruções de instalação fornecidas na página para o seu sistema operacional específico. Geralmente, envolve baixar e executar o instalador.
Por fim, execute o seguinte comando:
gcloud auth application-default login
Isso executará a autenticação na sua conta do Google Cloud Platform.
- Configure suas credenciais da Alibaba Cloud como variáveis de ambiente:
export ALICLOUD_ACCESS_KEY=seu_access_key
export ALICLOUD_SECRET_KEY=seu_secret_key
export ALICLOUD_REGION=sua_region
- Certifique-se de que as variáveis de ambiente estejam configuradas corretamente antes de executar o projeto.
Antes de executar os projetos relacionados à criação de Máquinas Virtuais (VM), você precisará criar uma chave SSH para acessar as instâncias criadas. Você pode fazer isso utilizando o comando ssh-keygen
nos diretórios correspondentes aos projetos de VM. Aqui está um exemplo de como fazer isso:
- Abra o terminal.
- Navegue até o diretório do projeto de VM desejado usando o comando
cd caminho/do/diretorio
. - Execute o comando
ssh-keygen -f provider.key
, substituindoprovider
pela cloud escolhida. - Siga as instruções para escolher um nome de arquivo e uma senha (opcional) para a chave.
Lembre-se de que as chaves SSH são sensíveis e devem ser tratadas com segurança. Não compartilhe suas chaves privadas e armazene-as em um local seguro.
O login por chave SSH nas VMs da Alibaba Cloud ainda não está disponível devido à falta de conhecimento. Futuramente, será corrigido.
Sinta-se à vontade para contribuir com novos projetos ou melhorias nos projetos existentes. Crie um fork deste repositório, faça suas alterações e envie um pull request. Suas contribuições são bem-vindas!
Caso tenha dúvidas ou precise de ajuda, não hesite em criar uma issue neste repositório.
Divirta-se explorando e provisionando infraestrutura com Terraform!
Nota: Certifique-se de seguir as melhores práticas de segurança ao lidar com suas credenciais e informações sensíveis. Mantenha suas variáveis de ambiente seguras e evite incluir informações confidenciais diretamente no código. Utilize um gerenciador de segredos, como o AWS Secrets Manager ou o Azure Key Vault, sempre que possível.