Sobes.tech
Junior

O que são provedores no Terraform?

sobes.tech IA

Resposta da IA

Os provedores no Terraform são plugins que atuam como uma abstração sobre as APIs de vários serviços em nuvem (por exemplo, AWS, Azure, GCP), provedores SaaS (por exemplo, GitHub, Datadog) ou outras plataformas de infraestrutura (por exemplo, Kubernetes, vSphere). Eles permitem que o Terraform interaja com essas plataformas para criar, modificar e eliminar recursos.

Cada provedor fornece um conjunto de tipos de recursos e fontes de dados que correspondem a objetos na plataforma alvo. Por exemplo, o provedor aws fornece o recurso aws_instance para gerir máquinas virtuais EC2 e a fonte de dados aws_ami para obter informações sobre imagens AMI.

Princípio de funcionamento:

  1. O Terraform envia uma solicitação ao provedor através de RPC.
  2. O provedor traduz essa solicitação em chamadas API à plataforma alvo.
  3. O Terraform recebe uma resposta do provedor sobre o estado da operação.

A configuração do provedor é especificada em ficheiros .tf:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" // Especifica a versão requerida do provedor
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }
}

// Configuração do provedor AWS para a região especificada
provider "aws" {
  region = "us-east-1"
}

// Configuração do provedor Kubernetes
provider "kubernetes" {
  config_path = "~/.kube/config" // Caminho para o ficheiro de configuração kubeconfig
}

Aspectos chave:

  • Fontes: Os provedores podem ser desenvolvidos pela HashiCorp (oficiais), pela comunidade (verificados) ou por terceiros. A fonte hashicorp/aws indica que é um provedor oficial da HashiCorp para AWS.
  • Versionamento: É importante fixar as versões dos provedores para garantir a reprodutibilidade das implementações. São utilizados operadores de comparação (por exemplo, ~>, =, >).
  • Autenticação: Os provedores requerem credenciais para autenticação na plataforma alvo. Os métodos de autenticação dependem do provedor e podem incluir chaves API, tokens OAuth, funções IAM (para AWS), etc. A configuração de autenticação muitas vezes é externalizada em variáveis ou carregada do ambiente.
  • Múltiplas instâncias: Pode-se configurar várias instâncias de um mesmo provedor com diferentes configurações (por exemplo, para trabalhar com diferentes regiões da AWS).

Em suma, os provedores são componentes fundamentais do Terraform que permitem gerir a infraestrutura em diversos sistemas através de uma sintaxe declarativa unificada.