VK Cloud logo

Манифесттерді орналастыру жүйесімен тестілеу

Terraform манифесттерін жергілікті түрде тестілегеннен кейін және сервистік пакетті дүкенге жүктеу алдында plans/<PLAN_NAME>/deployment/deploy.tf манифесттерін орналастыру жүйесімен тестілеу ұсынылады. Бұл орналастыру жүйесі сипатталған барлық ресурстарды жасай алатынына көз жеткізуге мүмкіндік береді.

Тестілеу барысында мыналар қажет болады:

  • API-ге қол жеткізу кілті. Кілт бұлттық платформаның ЖК-дағы жоба баптаулары бетінде көрсетіледі (API арқылы қол жеткізу туралы ақпараты бар қойынды).
  • Бұлттық платформаның домендік атауы — https://cloud.vk.com.

Terraform манифестін орналастыру жүйесімен тестілеу үшін:

  1. Бұлттық платформаның ЖК-да екі факторлы аутентификацияны (2FA) және API арқылы қол жеткізуді қосыңыз (толығырақ — 2FA басқару бөлімінде).

  2. API сұрауларын орындаңыз:

    1. Манифесті орналастыру жүйесіне жүктеңіз.
    2. Жүктелген манифесттің ағымдағы конфигурациясын тексеріңіз.
    3. Сервис инстансын жасаңыз.
    4. Сервис инстансын жойыңыз.

    API сұрауларының параметрлері келесі бөлімдерде сипатталған.

Terraform манифестін орналастыру жүйесіне жүктеу

plans/<PLAN_NAME>/deployment/deploy.tf манифестін орналастыру жүйесіне жүктеу үшін 1 кестесінде келтірілген параметрлермен сұрауды орындаңыз.

Кесте 1 — Манифестті жүктеу сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

POST

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/hoe/config/<MANIFEST_NAME>

Мұнда:

  • <CLOUD_HOST> — бұлттық платформаның домендік атауы.
  • <MANIFEST_NAME> — манифест атауы

Сұрау денесі (--data-binary)

plans/<PLAN_NAME>/deployment/deploy.tf манифестінің мазмұны.

Егер тестілеу үшін провайдерлердің қосымша ресурстары қажет болса, оларды сұрау денесіне қосыңыз

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Манифестті жүктеу сұрауының мысалы
curl -v -X POST https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/config/test_1.0 \-H 'x-auth-token: <AUTH_TOKEN>' \--data-binary "@deploy.tf"

Жауаптың HTTP кодтары 2 кестесінде келтірілген.

Кесте 2 — Жауаптың HTTP кодтары

Код

Сипаттама

201

Манифест жүктелді немесе жаңартылды

400, 500

Сұрауды орындау қатесі

401

Авторизация қатесі

Егер сұрау орналастыру жүйесінде бұрыннан бар манифест атауымен жіберілсе, осы манифесттің конфигурациясы жаңартылады.

Манифесттер бір пайдаланушы аккаунты шеңберінде жүктеледі.

Terraform дұрыс жұмыс істеуін қамтамасыз ету үшін манифесттің бұрын жүктелген барлық конфигурациялары орналастыру жүйесінде сақталады. Сервис инстансы GET сұрауы /hoe/config/<MANIFEST_NAME> арқылы көруге болатын манифесттің ағымдағы конфигурациясымен орналастырылады (толығырақ — Terraform манифестінің ағымдағы конфигурациясын тексеру бөлімінде).

Terraform манифестінің ағымдағы конфигурациясын тексеру

Орналастыру жүйесінде тұрған Terraform манифестінің ағымдағы конфигурациясын тексеру үшін 3 кестесінде келтірілген параметрлермен сұрауды орындаңыз.

Кесте 3 — Манифесттің ағымдағы конфигурациясын тексеру сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

GET

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/hoe/config/<MANIFEST_NAME>

Мұнда:

  • <CLOUD_HOST> — бұлттық платформаның домендік атауы.
  • <MANIFEST_NAME> — манифест атауы

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Манифесттің ағымдағы конфигурациясын тексеру сұрауының мысалы
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/config/test_1.0 \-H 'x-auth-token: <AUTH_TOKEN>'

Жауаптың HTTP кодтары 4 кестесінде келтірілген.

Кесте 4 — Жауаптың HTTP кодтары

Код

Сипаттама

200

Сұрау орындалды.

Сұрауға жауапта көрсетілген Terraform манифестінің ағымдағы конфигурациясы болады

401

Авторизация қатесі

404

Манифест табылмады

500

Сұрауды орындау қатесі

Сервис инстансын жасау

Сервис инстансын жасау үшін 5 кестесінде келтірілген параметрлермен сұрауды орындаңыз. Terraform манифестінің ағымдағы конфигурациясының ресурстары жасалады.

Кесте 5 — Сервис инстансын жасау сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

POST

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/hoe/object

Мұнда <CLOUD_HOST> — бұлттық платформаның домендік атауы

Content-Type

application/json

Сұрау денесі (--data)

Келесі параметрлерді көрсетіңіз:

  • uuid — UUID4 генераторының көмегімен қалыптастырылған сервис инстансының идентификаторы.
  • config — манифест атауы.
  • vars — манифесттің сыртқы кіріс айнымалылары. Мұндай айнымалылардың мәндерін сұрау денесінде беру пайдаланушының тарифтік жоспарды баптау шеберіндегі әрекеттерін имитациялайды.

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Сервис инстансын жасау сұрауының мысалы
curl -v -X POST https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object \-H "Content-Type: application/json" \-H 'x-auth-token: <AUTH_TOKEN>' \--data '{  "uuid": "675f6f08-XXXX-f02311f795d7",  "config": "test_1.0",  "vars": {    "sub_network": "a793470c-XXXX-67af6c178c8e",    "image_uuid": "163ff752-XXXX-b0001e3e65d3",    "volume_type": "ceph-ssd",    "flavor_uuid": "6e61564f-XXXX-08df5fd84514"  }  }'

Мұнда:

  • sub_network — ішкі желінің ID-і.
  • image_uuid — сервис образының ID-і.
  • volume_type — диск түрі.
  • flavor_uuid — ВМ конфигурация үлгісінің ID-і.

Жауаптың HTTP кодтары 6 кестесінде келтірілген.

Кесте 6 — Жауаптың HTTP кодтары

Код

Сипаттама

201

Сервис инстансы жасалды

400, 500

Сұрауды орындау қатесі

401

Авторизация қатесі

Сервис инстансын жою

Terraform манифестін орындау нәтижесінде жасалған сервис инстансын жою үшін 7 кестесінде келтірілген параметрлермен сұрауды орындаңыз.

Кесте 7 — Сервис инстансын жою сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

DELETE

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/hoe/object/<OBJECT_UUID>

Мұнда:

  • <CLOUD_HOST> — бұлттық платформаның домендік атауы.
  • <OBJECT_UUID> — сервис инстансын орналастыру идентификаторы. Мәні сервис инстансын орналастыру туралы сұраудағы uuid параметріне сәйкес келеді

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Сервис инстансын жою сұрауының мысалы
curl -v -X DELETE https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <AUTH_TOKEN>'

Жауаптың HTTP кодтары 8 кестесінде келтірілген.

Кесте 8 — Жауаптың HTTP кодтары

Код

Сипаттама

201

Сервис инстансы жойылды

400, 500

Сұрауды орындау қатесі

401

Авторизация қатесі

404

Манифест табылмады

Сервис инстансының күйін тексеру

Сервис инстансының күйін тексеру үшін 9 кестесінде келтірілген параметрлермен сұрауды орындаңыз.

Кесте 9 — Сервис инстансының күйін тексеру сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

GET

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/hoe/object/<OBJECT_UUID>

Мұнда:

  • <CLOUD_HOST> — бұлттық платформаның домендік атауы.
  • <OBJECT_UUID> — сервис инстансын орналастыру идентификаторы. Мәні сервис инстансын орналастыру туралы сұраудағы uuid параметріне сәйкес келеді

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Сервис инстансының күйін тексеру сұрауының мысалы
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <AUTH_TOKEN>'

Жауаптың HTTP кодтары 10 кестесінде келтірілген.

Кесте 10 — Жауаптың HTTP кодтары

Код

Сипаттама

200

Сұрау орындалды.

Сұрауға жауап сервис инстансының мәртебесін (status) қамтиды. Мүмкін мәртебелер:

  • applying — манифест орындалуда, ресурстар жасалу процесінде.
  • running — манифест орындалды, сервис инстансы жасалды.
  • failed — манифест қателікпен аяқталды, сервис инстансы жасалмады.
  • deleted — сервис инстансы жойылды

401

Авторизация қатесі

404

Сервис инстансының идентификаторы табылмады

500

Сұрауды орындау қатесі

Сервис инстансы жойылғаннан кейін орындалған сұрауға жауап мысалы
{    "uuid": "675f6f08-XXXX-f02311f795d7",    "target_status": "deleted",    "vars": {},    "out": "{}",    "status": "deleted",    "conf_name": "user@vk.team",    "conf_hash": "75587baeXXXX",    "pid": "b66dde3dXXXX",    "create_at": "2023-04-26T13:57:54.849565Z",    "update_at": "2023-04-26T14:02:42.667399Z",    "full_deployed": false,    "attempts": 0,    "max_attempts": 15}

Мұнда:

  • uuid — сервис инстансын орналастыру идентификаторы.
  • target_status — сервис инстансының мақсатты мәртебесі (deleted немесе running).
  • vars — манифесттің кіріс айнымалылары.
  • out — манифесттің шығыс параметрлері.
  • status — сервис инстансының ағымдағы мәртебесі.
  • conf_name — сервисті орналастырған пайдаланушының аты.
  • conf_hash — сервис инстансы конфигурациясының хеші.
  • pid — сервисті орналастырған пайдаланушы жобасының идентификаторы (OpenStack PID).
  • create_at — сервис инстансы жасалған күн мен уақыт.
  • update_at — сервис инстансын орналастыру жүйесі соңғы рет жаңартқан күн мен уақыт.
  • full_deployed — сервис инстансы сәтті орналастырылды ма (deleted мәртебесі үшін мәні false болады).
  • attempts — сервис инстансын орналастыру кезіндегі орындалған қайталама әрекеттер саны.
  • max_attempts — қайталама әрекеттердің ең көп саны.

Сервис инстансының журналдарын қарау

Сервис инстансының журналын қарау үшін 11 кестесінде келтірілген параметрлермен сұрауды орындаңыз.

Кесте 11 — Сервис инстансының журналын шығару сұрауының параметрлері

Параметр

Мәні

Сұрау әдісі

GET

Сұрау жолы

https://<CLOUD_HOST>/marketplace/api/infra-api/api/v1-public/logs/instance/<OBJECT_UUID>

Мұнда:

  • <CLOUD_HOST> — бұлттық платформаның домендік атауы.
  • <OBJECT_UUID> — сервис инстансын орналастыру идентификаторы. Мәні сервис инстансын орналастыру туралы сұраудағы uuid параметріне сәйкес келеді

x-auth-token

<AUTH_TOKEN> — API-ге қол жеткізу кілті

Сервис инстансының журналын шығару сұрауының мысалы
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/logs/instance/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <AUTH_TOKEN>'

Жауаптың HTTP кодтары 12 кестесінде келтірілген.

Кесте 12 — Жауаптың HTTP кодтары

Код

Сипаттама

200

Сұрау орындалды.

Сұрауға жауапта message параметрінде сервис инстансының журналдары көрсетіледі

401

Авторизация қатесі

404

Сервис инстансының идентификаторы табылмады

500

Сұрауды орындау қатесі

Сұрауға жауап мысалы
[  {    "message": " Apply complete! Resources: 1 added, 0 changed, 0 destroyed. ",    "src": "terraform",    "level": "debug",    "created_at": "2024-05-30T08:32:24Z",    "uuid": "675f6f08-XXXX-f02311f795d7",    "broker_id": ""  }]

Агент жұмысының журналдары мен нәтижелерін қарау

Агент жұмысының журналдары мен нәтижелерін қарау үшін:

  1. Агент орнатылған ВМ-ға қашықтан қол жеткізу протоколы арқылы қосылыңыз (толығырақ — ВМ-ға қосылу бөлімінде) немесе бұлттық платформаның ЖК-дағы VNC-консолі арқылы.

  2. Журналдарды қарау үшін journalctl -u sower пәрменін орындаңыз.

  3. Нәтижелерді қарау үшін /etc/sower/result директориясына өтіңіз.