Peb tau tshaj tawm ib tus neeg muab kev pabcuam Terraform los ua haujlwm nrog Selectel. Cov khoom no tso cai rau cov neeg siv kom ua tiav kev tswj hwm kev tswj hwm los ntawm Infrastructure-as-code methodology.
Tam sim no tus neeg muab kev pabcuam txhawb nqa kev pabcuam kev pabcuam "Virtual Private huab" (tom qab no hu ua VPC). Nyob rau hauv lub neej yav tom ntej, peb npaj yuav ntxiv kev tswj hwm kev pabcuam rau lwm cov kev pabcuam uas muab los ntawm Selectel.
Raws li koj twb paub lawm, qhov kev pabcuam VPC yog tsim los ntawm OpenStack. Txawm li cas los xij, vim qhov tseeb tias OpenStack tsis muab cov cuab yeej ib txwm siv los ua haujlwm rau pej xeem huab cua, peb tau siv cov haujlwm uas ploj lawm hauv cov txheej txheem APIs ntxiv uas ua kom yooj yim rau kev tswj hwm cov khoom sib xyaw ua ke thiab ua rau kev ua haujlwm yooj yim dua. Qee qhov kev ua haujlwm muaj nyob hauv OpenStack raug kaw los ntawm kev siv ncaj qha, tab sis muaj los ntawm peb API.
Tus neeg muab kev pabcuam Selectel Terraform tam sim no suav nrog lub peev xwm los tswj VPC cov peev txheej hauv qab no:
Tus kws kho mob siv peb lub tsev qiv ntawv Go rau pej xeem los ua haujlwm nrog VPC API. Ob lub tsev qiv ntawv thiab tus neeg muab kev pabcuam nws tus kheej yog qhov chaw qhib, lawv txoj kev loj hlob tau ua tiav ntawm Github:
sib cav ignore_changes tso cai rau koj tsis quav ntsej tus cwj pwm hloov pauv id rau cov duab siv los tsim lub tshuab virtual. Hauv kev pabcuam VPC, cov duab pej xeem feem ntau tau hloov kho tshiab ib zaug ib lim tiam thiab tib lub sijhawm lawv id kuj hloov. Qhov no yog vim qhov peculiarities ntawm OpenStack tivthaiv - Glance, nyob rau hauv uas dluab yog suav tias yog immutable chaw.
Yog tias koj tab tom tsim lossis hloov kho lub server lossis disk uas twb muaj lawm uas muaj kev sib cav duab_id yog siv id cov duab pej xeem, tom qab ntawd tom qab cov duab hloov tshiab, khiav Terraform manifest dua yuav rov tsim dua lub server lossis disk. Siv kev sib cav ignore_changes tso cai rau koj kom tsis txhob muaj qhov xwm txheej zoo li no.
sib cav tsis quav ntsej_resize_confirmation xav tau kom ua tau zoo resize lub zos disk, cores, los yog neeg rau zaub mov nco. Cov kev hloov no yog ua los ntawm OpenStack Nova tivthaiv siv qhov kev thov resize. Default Nova tom qab thov resize muab lub server rau hauv cov xwm txheej verify_resize thiab tos kom paub meej ntxiv los ntawm tus neeg siv. Txawm li cas los xij, tus cwj pwm no tuaj yeem hloov pauv kom Nova tsis tos rau kev ua ntxiv los ntawm tus neeg siv.
Cov lus sib cav uas tau teev tseg tso cai rau Terraform tsis txhob tos rau qhov xwm txheej verify_resize rau cov neeg rau zaub mov thiab npaj rau cov neeg rau zaub mov kom nyob rau hauv ib qho kev ua haujlwm tom qab hloov nws cov kev txwv. Cov lus sib cav yog muaj los ntawm version 1.10.0 ntawm OpenStack Terraform tus neeg zov me nyuam: tug #422.
Tsim cov peev txheej
Ua ntej khiav cov manifests, thov nco ntsoov tias hauv peb qhov piv txwv, ob lub chaw muab kev pabcuam sib txawv tau pib, thiab OpenStack tus neeg zov me nyuam nyob ntawm cov peev txheej ntawm Selectel tus muab kev pabcuam, vim tias tsis tsim ib tus neeg siv hauv qhov project, nws tsis tuaj yeem tswj hwm cov khoom ntawm nws. . Hmoov tsis zoo, rau tib qho laj thawj peb tsis tuaj yeem khiav cov lus txib xwb terraform thov hauv peb qhov piv txwv. Peb yuav tsum ua ntej thov rau module project_with_user thiab tom qab ntawd rau txhua yam.
Nco tseg: Qhov teeb meem no tseem tsis tau daws hauv Terraform, koj tuaj yeem ua raws li kev sib tham ntawm Github ntawm Nr. 2430 и Nr. 4149.
Tom qab khiav qhov hais kom ua, Terraform yuav qhia cov peev txheej uas nws xav tsim thiab nug kom paub meej:
Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
Thaum qhov project, tus neeg siv thiab lub luag haujlwm tau tsim, koj tuaj yeem pib tsim cov peev txheej ntxiv:
Ua ntej peb mus rau qhov piv txwv tom ntej, peb yuav ntxuav cov peev txheej uas peb tau tsim ua ntej. Txhawm rau ua qhov no hauv paus ntawm qhov project terraform-examples/example/vpc/server_local_root_disk Cia peb khiav cov lus txib kom rho tawm cov khoom OpenStack:
Hauv ob qho xwm txheej, koj yuav tsum tau lees paub qhov kev tshem tawm tag nrho cov khoom:
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes