Sobes.tech
Junior

Čo sú poskytovatelia v Terraform?

sobes.tech AI

Odpoveď od AI

Poskytovatelia v Terraform sú pluginy, ktoré fungujú ako abstrakcia nad API rôznych cloudových služieb (napríklad AWS, Azure, GCP), SaaS poskytovateľov (napríklad GitHub, Datadog) alebo iných infraštruktúrnych platforiem (napríklad Kubernetes, vSphere). Umožňujú Terraformu komunikovať s týmito platformami na vytváranie, zmenu a odstraňovanie zdrojov.

Každý poskytovateľ poskytuje súbor typov zdrojov a zdrojov dát, ktoré zodpovedajú objektom v cieľovej platforme. Napríklad poskytovateľ aws poskytuje zdroj aws_instance na správu virtuálnych strojov EC2 a zdroj dát aws_ami na získanie informácií o obrazoch AMI.

Princíp práce:

  1. Terraform odošle požiadavku poskytovateľovi cez RCP.
  2. Poskytovateľ preloží túto požiadavku do API volaní cieľovej platformy.
  3. Terraform dostane odpoveď od poskytovateľa o stave vykonávania operácie.

Konfigurácia poskytovateľa sa uvádza v súboroch .tf:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" // Určenie požadovanej verzie poskytovateľa
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }
}

// Konfigurácia poskytovateľa AWS pre určený región
provider "aws" {
  region = "us-east-1"
}

// Konfigurácia poskytovateľa Kubernetes
provider "kubernetes" {
  config_path = "~/.kube/config" // Cesta k súboru s konfiguráciou kubeconfig
}

Kľúčové aspekty:

  • Zdroje: Poskytovatelia môžu byť vyvinutí spoločnosťou HashiCorp (oficiálne), komunitou (verifikované) alebo tretími stranami. Zdroj hashicorp/aws označuje, že ide o oficiálneho poskytovateľa od HashiCorp pre AWS.
  • Verzovanie: Je dôležité fixovať verzie poskytovateľov na zabezpečenie opakovateľnosti nasadení. Používajú sa operátory porovnávania (napríklad ~>, =, >).
  • Autentifikácia: Poskytovatelia vyžadujú prihlasovacie údaje na autentifikáciu v cieľovej platforme. Spôsoby autentifikácie sa líšia a môžu zahŕňať API kľúče, OAuth tokeny, IAM role (pre AWS) a pod. Konfigurácia autentifikácie sa často načítava z premenných alebo sa načítava z prostredia.
  • Viaceré inštancie: Je možné nakonfigurovať viacero inštancií toho istého poskytovateľa s rôznymi konfiguráciami (napríklad na prácu s rôznymi regiónmi AWS).

Na záver, poskytovatelia sú základnou súčasťou Terraformu, ktorá umožňuje spravovať infraštruktúru v rôznych systémoch prostredníctvom jednotného deklaratívneho syntaxu.