Terraform-dan istifadə edin

Terraform OpenStack provayderini tətbiq giriş məlumatının faylları ilə konfiqurasiya edin və Terraform ilə layihədə resurslar yaradın və idarə edin.

Terraform layihənizin (project) resurslarını OpenStack provayderi, yəni terraform-provider-openstack/openstack vasitəsilə idarə edir. Provayder clouds.yaml faylından oxuduğu tətbiq giriş məlumatı (application credential) ilə daxil olur, buna görə Terraform fayllarınızda sirr (secret) olmur.

Başlamazdan əvvəl

  • Terraform-u quraşdırın.
  • Layihədə Full access profilli tətbiq giriş məlumatı yaradın və clouds.yaml və main.tf fayllarını endirin. Tətbiq giriş məlumatı yaradın səhifəsinə baxın.
  • Komandanın və ya CI konveyerinin işə saldığı Terraform üçün xidmət hesabının (service account) giriş məlumatından istifadə edin, hər konveyer üçün bir. Şəxsi giriş məlumatı sahibi təşkilatınızdan ayrıldıqda və ya layihədəki rolunu itirdikdə işləməyi dayandırır.

Provayderi konfiqurasiya edin

main.tf və clouds.yaml fayllarını eyni qovluğa qoyun və ya clouds.yaml faylını ~/.config/openstack/ qovluğuna qoyun. Konsolun yaratdığı main.tf faylı belə görünür:

main.tf
terraform {
  required_providers {
    openstack = {
      source  = "terraform-provider-openstack/openstack"
      version = "~> 3.4"
    }
  }
}

provider "openstack" {
  cloud = "bulutistan"
}

# Read-only check that the credential works: the project it is bound to.
data "openstack_identity_auth_scope_v3" "current" {
  name = "current"
}

output "project_id" {
  value = data.openstack_identity_auth_scope_v3.current.project_id
}

cloud = "bulutistan" clouds.yaml faylındakı eyni adlı qeydi seçir. Region və son nöqtə (endpoint) də həmin fayldan götürülür.

Yoxlayın

Konfiqurasiyanı yoxlayın
terraform init
terraform apply

terraform apply əmri project_id dəyərini, yəni giriş məlumatının bağlı olduğu layihənin ID-sini çıxışa verir. Konfiqurasiya yalnız məlumatları oxuyur, buna görə heç nə yaratmır.

Resurslar yaradın

Bu nümunə şəbəkə (network), altşəbəkə (subnet) və istənilən yerdən HTTPS-ə icazə verən qaydası olan təhlükəsizlik qrupu (security group) yaradır. Onu main.tf faylına əlavə edin və ya məlumat mənbəyini və çıxışı onunla əvəz edin:

main.tf
resource "openstack_networking_network_v2" "app" {
  name = "tf-quickstart"
}

resource "openstack_networking_subnet_v2" "app" {
  name       = "tf-quickstart"
  network_id = openstack_networking_network_v2.app.id
  cidr       = "192.168.50.0/24"
  ip_version = 4
}

resource "openstack_networking_secgroup_v2" "web" {
  name        = "tf-quickstart-web"
  description = "HTTPS in"
}

resource "openstack_networking_secgroup_rule_v2" "https" {
  security_group_id = openstack_networking_secgroup_v2.web.id
  direction         = "ingress"
  ethertype         = "IPv4"
  protocol          = "tcp"
  port_range_min    = 443
  port_range_max    = 443
  remote_ip_prefix  = "0.0.0.0/0"
}

output "network_id" {
  value = openstack_networking_network_v2.app.id
}
Tətbiq edin və təmizləyin
terraform plan
terraform apply
terraform destroy

terraform destroy resursları yenidən silir.

Terraform resursları konsolla necə əlaqəlidir

  • Terraform-un yaratdığı resurslar konsolda gördüyünüz resursların eynisidir. Onlar layihədə görünür və konsolda yaratdığınız resurslar kimi hesablanır.
  • Onlar abunəliyin (subscription) kvotasına və layihənin ayırmasına (allocation) daxil edilir. Ayırmanı aşan sorğu rədd edilir. Kvotalar səhifəsinə baxın.

İstifadə edə bildiyiniz resurs tiplərini yoxlayın

Konsolda OpenStack API guide səhifəsi Terraform provayderinin resurs tiplərini və onların bu buludda dəstəklənmə statusunu siyahıya alır. Onu açmaq üçün Identity & AccessOpenStack API access bölməsinə keçin və Guide düyməsini seçin. Resurs tipini konfiqurasiyada istifadə etməzdən əvvəl onu orada yoxlayın.

Bu səhifədə