Манифесттерді орналастыру жүйесімен тестілеу
Terraform манифесттерін жергілікті түрде тестілегеннен кейін және сервистік пакетті дүкенге жүктеу алдында plans/<PLAN_NAME>/deployment/deploy.tf манифесттерін орналастыру жүйесімен тестілеу ұсынылады. Бұл орналастыру жүйесі сипатталған барлық ресурстарды жасай алатынына көз жеткізуге мүмкіндік береді.
Тестілеу барысында мыналар қажет болады:
- API-ге қол жеткізу кілті. Кілт бұлттық платформаның ЖК-дағы жоба баптаулары бетінде көрсетіледі (API арқылы қол жеткізу туралы ақпараты бар қойынды).
- Бұлттық платформаның домендік атауы —
https://cloud.vk.com.
Terraform манифестін орналастыру жүйесімен тестілеу үшін:
-
Бұлттық платформаның ЖК-да екі факторлы аутентификацияны (2FA) және API арқылы қол жеткізуді қосыңыз (толығырақ — 2FA басқару бөлімінде).
-
API сұрауларын орындаңыз:
- Манифесті орналастыру жүйесіне жүктеңіз.
- Жүктелген манифесттің ағымдағы конфигурациясын тексеріңіз.
- Сервис инстансын жасаңыз.
- Сервис инстансын жойыңыз.
API сұрауларының параметрлері келесі бөлімдерде сипатталған.
plans/<PLAN_NAME>/deployment/deploy.tf манифестін орналастыру жүйесіне жүктеу үшін 1 кестесінде келтірілген параметрлермен сұрауды орындаңыз.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда:
|
Сұрау денесі ( |
Егер тестілеу үшін провайдерлердің қосымша ресурстары қажет болса, оларды сұрау денесіне қосыңыз |
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
201 | Манифест жүктелді немесе жаңартылды |
400, 500 | Сұрауды орындау қатесі |
401 | Авторизация қатесі |
Егер сұрау орналастыру жүйесінде бұрыннан бар манифест атауымен жіберілсе, осы манифесттің конфигурациясы жаңартылады.
Манифесттер бір пайдаланушы аккаунты шеңберінде жүктеледі.
Terraform дұрыс жұмыс істеуін қамтамасыз ету үшін манифесттің бұрын жүктелген барлық конфигурациялары орналастыру жүйесінде сақталады. Сервис инстансы GET сұрауы /hoe/config/<MANIFEST_NAME> арқылы көруге болатын манифесттің ағымдағы конфигурациясымен орналастырылады (толығырақ — Terraform манифестінің ағымдағы конфигурациясын тексеру бөлімінде).
Орналастыру жүйесінде тұрған Terraform манифестінің ағымдағы конфигурациясын тексеру үшін 3 кестесінде келтірілген параметрлермен сұрауды орындаңыз.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда:
|
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
200 | Сұрау орындалды. Сұрауға жауапта көрсетілген Terraform манифестінің ағымдағы конфигурациясы болады |
401 | Авторизация қатесі |
404 | Манифест табылмады |
500 | Сұрауды орындау қатесі |
Сервис инстансын жасау үшін 5 кестесінде келтірілген параметрлермен сұрауды орындаңыз. Terraform манифестінің ағымдағы конфигурациясының ресурстары жасалады.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда |
|
|
Сұрау денесі ( | Келесі параметрлерді көрсетіңіз:
|
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
201 | Сервис инстансы жасалды |
400, 500 | Сұрауды орындау қатесі |
401 | Авторизация қатесі |
Terraform манифестін орындау нәтижесінде жасалған сервис инстансын жою үшін 7 кестесінде келтірілген параметрлермен сұрауды орындаңыз.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда:
|
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
201 | Сервис инстансы жойылды |
400, 500 | Сұрауды орындау қатесі |
401 | Авторизация қатесі |
404 | Манифест табылмады |
Сервис инстансының күйін тексеру үшін 9 кестесінде келтірілген параметрлермен сұрауды орындаңыз.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда:
|
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
200 | Сұрау орындалды. Сұрауға жауап сервис инстансының мәртебесін (
|
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 кестесінде келтірілген параметрлермен сұрауды орындаңыз.
Параметр | Мәні |
|---|---|
Сұрау әдісі |
|
Сұрау жолы |
Мұнда:
|
|
|
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 кестесінде келтірілген.
Код | Сипаттама |
|---|---|
200 | Сұрау орындалды. Сұрауға жауапта |
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": ""}]
Агент жұмысының журналдары мен нәтижелерін қарау үшін:
-
Агент орнатылған ВМ-ға қашықтан қол жеткізу протоколы арқылы қосылыңыз (толығырақ — ВМ-ға қосылу бөлімінде) немесе бұлттық платформаның ЖК-дағы VNC-консолі арқылы.
-
Журналдарды қарау үшін
journalctl -u sowerпәрменін орындаңыз. -
Нәтижелерді қарау үшін
/etc/sower/resultдиректориясына өтіңіз.