VK Cloud logo

Terraform манифесін жергілікті тестілеу

Жергілікті тестілеу алдында OpenStack PID жеткізушілер тізіміне енгізілгеніне көз жеткізіңіз (толығырақ — Дайындық операциялары бөлімінде).

Жергілікті тестілеу кезінде қолданыстағы желілердің ішкі желілерін пайдаланыңыз немесе жаңа желі құрып, оның ішкі желісін пайдаланыңыз (толығырақ — Желілер және ішкі желілер бөлімінде).

Terraform plans/<PLAN_NAME>/deployment/deploy.tf манифесін жергілікті тестілеу үшін:

  1. Terraform-ды жергілікті түрде орнатыңыз:

    1. Terraform-ды VK Cloud ресми айнасынан жүктеп алыңыз.
    2. Архивті шығарып, Path орта айнымалысында шығарылған файлға жолды көрсетіңіз.
    3. Terraform сәтті орнатылғанына көз жеткізу үшін terraform -help пәрменін орындаңыз.
  2. Бұлтты платформаның ЖК-сінде екі факторлы аутентификацияны (2FA) және API арқылы қолжетімділікті қосыңыз (толығырақ — 2FA басқару бөлімінде).

  3. Terraform үшін CLI конфигурациясы бар файлды өңдеңіз: Windows үшін — terraform.rc, басқа ОЖ үшін — .terraformrc (толығырақ — Terraform ресми құжаттамасында):

    1. Terraform айналармен және жергілікті провайдерлермен бір уақытта жұмыс істеуі үшін келесі ақпаратты қосыңыз:

      provider_installation {    filesystem_mirror {        # Полный путь до директории plugins        path    = "/home/user_name/.terraform.d/plugins"        include = ["vk-cs.local/*/*", "ivk-cs.local/*/*"]    }    network_mirror {        url = "https://terraform-mirror.mcs.mail.ru"        include = ["registry.terraform.io/*/*"]    }    direct {        exclude = ["registry.terraform.io/*/*", "vk-cs.local/*/*", "ivk-cs.local/*/*"]    }}
    2. Terraform-ның айналармен және жергілікті провайдерлермен бір уақытта жұмыс істеуі талап етілмесе, файлды тазалаңыз.

    3. Егер жергілікті компьютерде мұндай файл болмаса, бұл қадамды өткізіп жіберіңіз.

  4. VK CS провайдерінің плагинін GitHub арқылы жүктеп алыңыз.

  5. iVK CS провайдерінің плагинін алу үшін marketplace@cloud.vk.com мекенжайына хат жіберіңіз. Хатта манифесті жергілікті түрде тестілейтін компьютердің ОЖ-сін және оның архитектурасын көрсетіңіз (мысалы, amd64 архитектурасындағы Linux).

  6. Егер Terraform үшін CLI конфигурациясы бар файл жергілікті компьютерде болмаса немесе ол тазартылған болса, null провайдерінің плагинін Terraform ресми сайтынан жүктеп алыңыз.

  7. terraform.d директориясында plugins директориясын жасаңыз. terraform.d директориясы компьютерде Terraform орнатылғаннан кейін автоматты түрде жасалады, оның жолы ОЖ-ге байланысты (толығырақ — Terraform ресми құжаттамасында).

  8. plugins директориясында келесі директория құрылымын жасаңыз:

    • ivk-cs.local.

      • ivk-cs.

        • ivkcs.

          • <PROVIDER_VERSION>.

            • <OPERATING_SYSTEM>.
    • registry.terraform.io.

      • hashicorp.

        • null.

          • <PROVIDER_VERSION>.

            • <OPERATING_SYSTEM>.
    • vk-cs.local.

      • vk-cs.

        • vkcs.

          • <PROVIDER_VERSION>.

            • <OPERATING_SYSTEM>.

    Мұнда:

    • <PROVIDER_VERSION> — провайдер плагинінің нұсқасы. Мәні плагин файлының атауынан анықталады. Мысалы, terraform-provider-vkcs_0.4.2 плагині үшін нұсқа 0.4.2, ал terraform-provider-null_v3.2.1_x5 плагині үшін — 3.2.1.

    • <OPERATING_SYSTEM> — компьютердің ОЖ-сі. Мәнді анықтау үшін terraform --version пәрменін орындаңыз. Пәрмен шығысында Terraform-ның ағымдағы нұсқасы және архитектурасы бар ОЖ көрсетіледі.

      Жауап мысалы
      Terraform v1.5.4on linux_amd64

      Жоғарыдағы мысалда <OPERATING_SYSTEM> мәні linux_amd64 болады.

  9. Жүктелген провайдерлердің плагиндерін тиісті <OPERATING_SYSTEM> директорияларына орналастырыңыз.

    amd64 архитектурасындағы Linux ОЖ үшін `/home/user_name/.terraform.d/plugins` директориясы құрылымының мысалы
    /home/user_name/.terraform.d└── plugins    ├── ivk-cs.local    │   └── ivk-cs    │       └── ivkcs    │           └── 0.0.4    │               └── linux_amd64    │                   └── terraform-provider-ivkcs_0.0.4    ├── registry.terraform.io    │   └── hashicorp    │       └── null    │           └── 3.2.1    │               └── linux_amd64    │                   └── terraform-provider-null_v3.2.1    └── vk-cs.local        └── vk-cs            └── vkcs                └── 0.4.2                    └── linux_amd64                        └── terraform-provider-vkcs_0.4.2
  10. Манифесті тестілеу үшін жұмыс директориясын жасаңыз.

  11. Жұмыс директориясында auth.tf файлын жасаңыз.

  12. auth.tf файлында пайдаланылатын провайдерлерді сипаттаңыз.

    1. VK CS және iVK CS провайдерлерін көрсетіңіз. Егер Terraform үшін CLI конфигурациясы бар файл жергілікті компьютерде болмаса немесе ол тазартылған болса, қосымша түрде null провайдерін де көрсетіңіз.

      terraform {    required_providers {        vkcs = {            # Путь локального плагина провайдера. Указывается часть пути после terraform.d/plugins            source  = "vk-cs.local/vk-cs/vkcs"            # Версия провайдера            version = "0.2.2"        }        ivkcs = {            source  = "ivk-cs.local/ivk-cs/ivkcs"            version = "0.1.15"        }        null = {            source  = "registry.terraform.io/hashicorp/null"            version = "3.2.1"        }    }}
    2. VK CS және iVK CS провайдерлері үшін манифесті тестілейтін бұлтты платформадағы аккаунт пен жоба туралы ақпаратты көрсетіңіз:

      provider "vkcs" {    # User Domain ID    user_domain_name = "users"    username = "USER_NAME"    password = "PASSWORD"    project_id = "PROJECT_ID"    # Region Name    region = "RegionOne"}provider "ivkcs" {    # URL компонента Keystone облачной платформы    auth_url = "https://cloud.vk.com/infra/identity/v3/"    user_domain_name = "users"    username = "USER_NAME"    password = "PASSWORD"    project_id = "OPENSTACK_PROJECT_ID"    region = "RegionOne"    # URL сервиса Infra API    infra_url = "https://cloud.vk.com/marketplace/api/infra-api/api/v1/"}

      Аккаунт пен жоба туралы ақпарат бұлтты платформаның ЖК-сінде көрсетіледі.

  13. plans/<PLAN_NAME>/deployment/deploy.tf файлын жұмыс директориясына көшіріңіз.

  14. Егер жергілікті тестілеу үшін deploy.tf манифесінде сипатталмаған қосымша мәндерді құру қажет болса (мысалы, сыртқы IP бар ВМ), онда жұмыс директориясында extended.tf файлын жасаңыз.

  15. extended.tf файлында провайдерлердің ресурстары мен деректер көздерін пайдаланып қосымша мәндерді сипаттаңыз.

  16. Жұмыс директориясында провайдерлерді инициализациялау үшін terraform init пәрменін орындаңыз.

  17. Жұмыс директориясында deploy.tf және extended.tf файлдарында сипатталған ресурстарды құруды іске қосу үшін terraform apply пәрменін орындаңыз.

  18. Ресурстарды құруды растау үшін yes енгізіңіз.

  19. Манифестер орындалғаннан кейін бұлтты платформаның ЖК-сіне өтіп, ресурстардың құрылғанына көз жеткізіңіз.