Skip to content

Aqui você encontrará uma coleção de projetos individuais, cada um focado em diferentes aspectos da infraestrutura como código utilizando o Terraform.

Notifications You must be signed in to change notification settings

SilvioCavalcantiBonfim/terraform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repositório de Projetos Terraform para Infraestrutura em Nuvem

terraform amazonaws microsoftazure googlecloud alibabacloud

Bem-vindo ao Repositório de Projetos Terraform

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.

Estrutura do Repositório

Aqui estão os projetos disponíveis no repositório, organizados por recursos e plataformas de nuvem:

Armazenamento (Storage)

1.Create - Cria um estrutura de armazenamento na cloud para armazenar e gerenciar objetos.

amazonaws microsoftazure alibabacloud googlecloud

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.

amazonaws microsoftazure alibabacloud googlecloud

Nuvem privada virtual (VPC/VNET)

Cria um estrutura de nuvem privada virtual (VPC/VNET) com uma subnet com as devidas configurações de segurança.

amazonaws microsoftazure alibabacloud googlecloud

Maquina virtual (VM)

Antes de executar estes projetos deve-se executar o Storage/Enabled_Versioning e depois VPC da cloud escolhida.

  1. 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.

amazonaws microsoftazure alibabacloud googlecloud

  1. 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.

amazonaws microsoftazure alibabacloud googlecloud

Modulos no terraform

  1. Local - Cria um maquina virtual (VM) com o sistema operacional linux na estrutura de nuvem privada virtual (VPC) provida como modulo.

amazonaws

  1. Remote - Cria um maquina virtual (VM) com o sistema operacional linux em uma VNET criada com um modulo remoto.

microsoftazure

Pipelines

  1. Gitlab - Cria um maquina virtual (VM) com o sistema operacional linux tanto na azure quanto na aws usando o recurso de pipeline do Gitlab.

Gitlab

  1. 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.

azuredevops

Configuração das Credenciais

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:

AWS

  1. 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
  1. Certifique-se de que as variáveis de ambiente estejam configuradas corretamente antes de executar o projeto.

Azure

  1. 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
  1. 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.

Google Cloud Plataform

"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.

Alibaba Cloud

  1. 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
  1. Certifique-se de que as variáveis de ambiente estejam configuradas corretamente antes de executar o projeto.

Criando uma Chave SSH

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:

  1. Abra o terminal.
  2. Navegue até o diretório do projeto de VM desejado usando o comando cd caminho/do/diretorio.
  3. Execute o comando ssh-keygen -f provider.key, substituindo provider pela cloud escolhida.
  4. 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.

Contribuição

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.

About

Aqui você encontrará uma coleção de projetos individuais, cada um focado em diferentes aspectos da infraestrutura como código utilizando o Terraform.

Resources

Stars

Watchers

Forks

Languages