Sobes.tech
Junior

Ի՞նչ են պրովայդերները Terraform-ում։

sobes.tech AI

Պատասխան AI-ից

Terraform- ի պրովայդերները — դա պլագիններ են, որոնք գործում են որպես աբստրակցիա տարբեր ամպային ծառայությունների (օրինակ, AWS, Azure, GCP), SaaS-պրովայդերների (օրինակ, GitHub, Datadog) կամ այլ ինֆրակառուցվածքային հարթակների (օրինակ, Kubernetes, vSphere) վրա: Նրանք թույլ են տալիս Terraform-ին փոխազդել այդ հարթակների հետ՝ ռեսուրսներ ստեղծելու, փոփոխելու և ջնջելու համար:

Յուրաքանչյուր պրովայդեր տրամադրում է ռեսուրսների և տվյալների աղբյուրների հավաքածու, որոնք համապատասխանում են նպատակային հարթակի օբյեկտներին: Օրինակ, aws պրովայդերը տրամադրում է aws_instance ռեսուրս՝ EC2 վիրտուալ մեքենաներ կառավարելու համար և aws_ami տվյալների աղբյուր՝ AMI պատկերների մասին տեղեկատվություն ստանալու համար:

Աշխատանքի սկզբունքը՝

  1. Terraform-ը ուղարկում է հարցում պրովայդերին RCP-ի միջոցով:
  2. Պրովայդերը վերածում է այդ հարցումը նպատակային հարթակի API-հայցերին:
  3. Terraform-ը ստանում է պատասխան պրովայդերից՝ գործողության կարգավիճակի մասին:

Պրովայդերի կոնֆիգուրացիան նշվում է .tf ֆայլերում՝

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" // Պահանջվող պրովայդերի տարբերակի սահմանում
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }
}

// AWS պրովայդերի կոնֆիգուրացիա նշված տարածաշրջանի համար
provider "aws" {
  region = "us-east-1"
}

// Kubernetes պրովայդերի կոնֆիգուրացիա
provider "kubernetes" {
  config_path = "~/.kube/config" // kubeconfig ֆայլի ուղին
}

Հիմնական ասպեկտներ՝

  • Աղբյուրներ: Պրովայդերները կարող են լինել HashiCorp-ի (պաշտոնական), համայնքի (վավերացված) կամ երրորդ կողմերի կողմից մշակված: hashicorp/aws աղբյուրը ցույց է տալիս, որ դա պաշտոնական պրովայդեր է՝ HashiCorp-ի կողմից՝ AWS-ի համար:
  • Տարբերակավորում: Կարևոր է պրովայդերների տարբերակները ֆիքսել՝ կրկնվող տեղակայումների ապահովման համար: Օգտագործվում են համեմատության օպերատորներ՝ ~>, =, >:
  • Աутենտիկացիա: Պրովայդերները պահանջում են տվյալներ՝ հաստատելու համար՝ նպատակային հարթակում: Աутենտիկացիայի մեթոդները տարբեր են և կարող են ներառել API բանալիներ, OAuth տոքեններ, IAM ռոլեր (AWS-ի համար) և այլն: Կոնֆիգուրացիան հաճախ բեռնվում է փոփոխականներից կամ շրջակա միջավայրից:
  • Բազմաթիվ օրինակներ: Կարող է լինել միաժամանակ մի քանի օրինակ՝ նույն պրովայդերի տարբեր կոնֆիգուրացիաներով (օրինակ՝ տարբեր տարածաշրջանների համար):

Վերջում՝ պրովայդերները հիմնարար բաղադրիչ են Terraform-ի, որոնք թույլ են տալիս կառավարել ինֆրակառուցվածքը տարբեր համակարգերում՝ միացյալ դեկլարատիվ սինտաքսիսով։