Sobes.tech
Junior

Kas yra tiekėjai Terraform?

sobes.tech AI

Atsakymas iš AI

Terraform tiekėjai — tai papildiniai, kurie veikia kaip abstrakcija virš įvairių debesų paslaugų (pvz., AWS, Azure, GCP), SaaS tiekėjų (pvz., GitHub, Datadog) arba kitų infrastruktūros platformų (pvz., Kubernetes, vSphere). Jie leidžia Terraform sąveikauti su šiomis platformomis kuriant, keičiant ir trinant išteklius.

Kiekvienas tiekėjas pateikia išteklių tipų ir duomenų šaltinių rinkinį, kurie atitinka tikslinės platformos objektus. Pavyzdžiui, aws tiekėjas teikia aws_instance išteklių EC2 virtualių mašinų valdymui ir aws_ami duomenų šaltinį AMI vaizdams gauti.

Veikimo principas:

  1. Terraform siunčia užklausą tiekėjui per RCP.
  2. Tiekėjas šią užklausą paverčia tikslinės platformos API iškvietimais.
  3. Terraform gauna atsakymą iš tiekėjo apie operacijos būseną.

Tiekėjo konfigūracija nurodoma .tf failuose:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" // Reikalingos tiekėjo versijos nustatymas
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }
}

// AWS tiekėjo konfigūracija nurodytam regionui
provider "aws" {
  region = "us-east-1"
}

// Kubernetes tiekėjo konfigūracija
provider "kubernetes" {
  config_path = "~/.kube/config" // kelias iki kubeconfig failo
}

Pagrindiniai aspektai:

  • Šaltiniai: Tiekėjai gali būti kuriami HashiCorp (oficialūs), bendruomenės (patvirtinti) arba trečiųjų šalių. hashicorp/aws šaltinis rodo, kad tai yra oficialus HashiCorp tiekėjas AWS.
  • Versijų valdymas: Svarbu fiksuoti tiekėjų versijas, kad užtikrinti pakartotinį diegimą. Naudojami palyginimo operatoriai (pvz., ~>, =, >).
  • Autentifikacija: Tiekėjai reikalauja prisijungimo duomenų autentifikacijai prie tikslinės platformos. Autentifikacijos būdai skiriasi ir gali apimti API raktus, OAuth žetonus, IAM vaidmenis (AWS) ir kt. Konfigūracija dažnai gaunama iš kintamųjų arba įkeliamas iš aplinkos.
  • Kelios instancijos: Galima sukonfigūruoti kelias vieno tiekėjo instancijas su skirtingomis konfigūracijomis (pvz., dirbti su skirtingais AWS regionais).

Galų gale, tiekėjai yra pagrindinė Terraform komponento dalis, leidžianti valdyti infrastruktūrą įvairiuose sistemose naudojant vieningą deklaratyvų sintaksį.