Provedores Terraform

Provedores Terraform



Uma das ferramentas populares e de código aberto de infraestrutura como código é o Terraform. Ele permite que os desenvolvedores definam e gerenciem sua infraestrutura de forma declarativa. Ele permite que eles criem, gerenciem e modifiquem os recursos de infraestrutura usando uma sintaxe simples e consistente, independentemente da plataforma de nuvem subjacente ou do provedor de serviços.

Este artigo discute como usar e configurar os diferentes provedores para interagir com várias plataformas e serviços em nuvem.

Introdução aos provedores Terraform

Os provedores Terraform são plug-ins que nos permitem interagir com diferentes plataformas e serviços em nuvem usando o Terraform. Esses provedores são responsáveis ​​por traduzir a configuração do Terraform em chamadas de API necessárias para gerenciar os recursos em uma plataforma ou serviço de nuvem específico.







Tipos de provedores no Terraform

No Registro do Terraform , podemos ver três tipos de provedores:



Provedores Oficiais

Os provedores oficiais são mantidos pela empresa HashiCorp, proprietária da Terraform. Esses provedores são a melhor opção disponível se precisarmos de provedores bem documentados e atualizados.



Os provedores AWS, Microsoft Azure e Google Cloud Platform podem ser exemplos de provedores oficiais no Terraform.





Provedores Parceiros

Organizações terceirizadas mantêm esses provedores e fizeram parceria com a HashiCorp para fornecer suporte oficial para seus serviços.

Os provedores GitLab, MongoDB e CloudFlare são alguns provedores parceiros disponíveis para os usuários.



Provedores da Comunidade

Os provedores de comunidade geralmente são criados por indivíduos ou organizações da comunidade Terraform que desejam gerenciar os recursos em uma plataforma ou serviço em nuvem que não é suportado por um provedor oficial ou parceiro.

Alguns exemplos de provedores comunitários são mostrados na imagem a seguir:

Como usar um provedor Terraform

Para usar um provedor Terraform, precisamos incluir um bloco de provedor em nosso arquivo de configuração que especifica o provedor que queremos usar e quaisquer parâmetros de configuração necessários, como credenciais ou região.

Depois que o provedor estiver configurado, podemos usar os recursos e fontes de dados fornecidos pelo provedor em nossa configuração do Terraform para gerenciar os recursos na plataforma ou serviço em nuvem.

Vamos criar um arquivo de configuração Terraform simples que cria uma instância EC2 na plataforma de nuvem AWS.

fornecedor 'aws' {

versão = '~> 3,0'

região = 'nós-leste-2'

}

recurso 'aws_instance' 'meuEC2' {

qual = 'ami-0a561b65214a47cac'

instance_type = 't3. pequeno'

marcas = {

Nome = 'nova instância'

}

}

Primeiramente, definimos o bloco provider, especificando o provedor AWS e a região onde os recursos são criados. Em seguida, definimos nosso bloco de recursos como consistindo em aws_instance como o tipo de recurso, “myEC2” como o nome do recurso e “ami”, “instance_type” e “tags” como os atributos. O tipo de recurso pode ser dividido em duas partes: Provedor e Recurso. Nesse caso, “aws” é o provedor e “instance” é o recurso. Além disso, se alguém precisar provisionar dez instâncias do EC2, o atributo “count” poderá ser usado com dez como valor.

Agora, podemos executar o fluxo do Terraform, que inclui a execução dos comandos terraform init, terraform plan e terraform apply para criar o recurso que definimos.

Usando o provedor Terraform AWS, podemos acessar a plataforma de nuvem AWS e interagir com seus serviços de forma eficiente sem usar o AWS Management Console.

Usando vários provedores no Terraform

Em vez de usar um único provedor, o Terraform nos permite usar vários provedores no mesmo arquivo de configuração do Terraform para interagir com vários tipos de serviços e plataformas de nuvem.

Para sua compreensão, vamos dar um exemplo em que implantamos um mecanismo de computação no Google Cloud Platform, um repositório no GitHub e um bucket S3 na plataforma de nuvem AWS.

fornecedor 'Google' {

projeto = 'primeiro projeto'

região = 'us-west1'

}

fornecedor 'github' {

símbolo = 'SEU_GITHUB_TOKEN'

}

fornecedor 'aws' {

versão = '~> 3,0'

região = 'us-west-2'

}

recurso 'google_compute_instance' 'gcpInstance' {

nome = 'nova instância'

tipo_máquina = 'n1-padrão-1'

zona = 'us-west1-a'

boot_disk {

inicializar_params {

imagem = 'debian-cloud/debian-10'

}

}

}

recurso 'github_repository' 'gitRepo' {

nome = 'novo-repo'

descrição = 'Este é meu novo repositório'

}

recurso 'aws_s3_bucket' 'awsBucket' {

balde = 'novo balde'

acl = 'privado'

}

Como primeira etapa, definimos nossos blocos de provedores para especificar os provedores (Google, GitHub e AWS) e as informações necessárias, como região, nome do projeto etc. Em seguida, declaramos nossos recursos usando três blocos de recursos: “gcpInstance”, “ gitRepo” e “awsBucket”.

Primeiro, criamos um mecanismo de computação no Google Cloud Platform com o nome “new-instance”, “n1-standard-1” como o tipo de máquina e “us-west1-a” como a zona de disponibilidade. Ele usa o Debian como sistema operacional host. Em seguida, criamos um repositório GitHub chamado “new-repo” e uma descrição adequada. Por fim, um balde S3 é criado com o nome “new-bucket” e “private” como valor ACL (Access Control List).

Com esses três provedores Terraform, podemos interagir facilmente com plataformas de nuvem e seus serviços.

Práticas recomendadas para trabalhar com provedores Terraform

Versão do provedor

Devemos especificar a versão do provedor, pois ajuda a garantir a consistência e evita comportamentos inesperados devido a alterações significativas em versões mais recentes.

Autenticação do provedor

Podemos utilizar os mecanismos de autenticação seguros, como chaves de API e tokens de acesso, para autenticar e autorizar o Terraform a interagir com a respectiva plataforma ou serviço de nuvem.

Documentação do provedor

Os provedores geralmente têm opções, recursos e limitações de configuração específicos. Compreender este tutorial nos ajuda a usar o provedor de forma eficaz e evitar armadilhas comuns.

Atualizações do provedor

Os provedores podem lançar correções de bugs, melhorias de desempenho e novos recursos. Manter-se atualizado nos permite aproveitar as vantagens dos aprimoramentos mais recentes e manter a compatibilidade com o ecossistema do provedor.

Suporte da comunidade

Podemos usar os fóruns on-line, painéis de discussão e canais da comunidade para resolver os desafios diários encontrados ao usar os provedores.

Tratamento de erros e solução de problemas

É uma boa prática nos familiarizarmos com as mensagens de erro, logs e técnicas de depuração do provedor para que isso nos ajude a diagnosticar e resolver os problemas com mais eficiência.

Conclusão

Fizemos uma breve introdução aos provedores Terraform. Discutimos como usá-los e configurá-los para interagir com várias plataformas e serviços de nuvem e como usar vários provedores para gerenciar os recursos em diferentes plataformas e serviços de nuvem por meio de exemplos fáceis de entender.