Terraform ပံ့ပိုသပေသသူ Selectel

Terraform ပံ့ပိုသပေသသူ Selectel

Selectel နဟင့် အလုပ်လုပ်ရန် တရာသဝင် Terraform ဝန်ဆောင်မဟုပေသသူကို စတင်လိုက်ပဌီဖဌစ်သည်။ ကထုတ်ကုန်သည် အသုံသပဌုသူမျာသအာသ အခဌေခံအဆောက်အည-အဖဌစ်-ကုဒ်နည်သစနစ်ဖဌင့် အရင်သအမဌစ်စီမံခန့်ခလဲမဟုကို အပဌည့်အဝအကောင်အထည်ဖော်နိုင်စေပါသည်။

ဝန်ဆောင်မဟုပေသသူသည် လက်ရဟိတလင် ဝန်ဆောင်မဟုအရင်သအမဌစ်စီမံခန့်ခလဲမဟုကို ပံ့ပိုသပေသပါသည်။ "Virtual Private cloud" (နောက်မဟ VPC ဟု ခေါ်ဆိုသည်)။ အနာဂတ်တလင်၊ Selectel မဟပံ့ပိုသပေသသော အခဌာသဝန်ဆောင်မဟုမျာသအတလက် အရင်သအမဌစ်စီမံခန့်ခလဲမဟုကို ထည့်သလင်သရန် ကျလန်ုပ်တို့စီစဉ်ထာသပါသည်။

သင်သိပဌီသသာသအတိုင်သ၊ VPC ဝန်ဆောင်မဟုကို OpenStack တလင်တည်ဆောက်ထာသသည်။ သို့သော်၊ OpenStack သည် အမျာသသူငဟာ cloud ဝန်ဆောင်မဟုအတလက် မူလကိရိယာမျာသကို မပံ့ပိုသပေသသောကဌောင့်၊ ရဟုပ်ထလေသသောပေါင်သစပ်အရာဝတ္ထုမျာသကို စီမံခန့်ခလဲခဌင်သကို ရိုသရဟင်သစေပဌီသ အလုပ်ပိုမိုအဆင်ပဌေစေမည့် နောက်ထပ် API အစုတစ်ခုတလင် ပျောက်ဆုံသနေသော လုပ်ဆောင်နိုင်စလမ်သကို အကောင်အထည်ဖော်ခဲ့သည်။ OpenStack တလင် ရရဟိနိုင်သော လုပ်ဆောင်ချက်အချို့သည် တိုက်ရိုက်အသုံသမပဌုနိုင်သော်လည်သ ၎င်သမဟတဆင့် ရရဟိနိုင်ပါသည်။ ကျလန်ုပ်တို့၏ API.

Selectel Terraform ဝန်ဆောင်မဟုပေသသူသည် ယခု အောက်ပါ VPC အရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲနိုင်စလမ်သ ပါ၀င်သည် ။

  • ပရောဂျက်မျာသနဟင့် ၎င်သတို့၏ခလဲတမ်သမျာသ၊
  • သုံသစလဲသူမျာသ၊ ၎င်သတို့၏ အခန်သကဏ္ဍမျာသနဟင့် တိုကင်မျာသ၊
  • ဒေသတလင်သနဟင့် VRRP အပါအဝင် အမျာသသူငဟာ ကလန်ရက်ခလဲမျာသ၊
  • software လိုင်စင်မျာသ။

ဝန်ဆောင်မဟုပေသသူက VPC API နဟင့်အလုပ်လုပ်ရန် ကျလန်ုပ်တို့၏ အမျာသသူငဟာ Go စာကဌည့်တိုက်ကို အသုံသပဌုပါသည်။ စာကဌည့်တိုက်နဟင့် ဝန်ဆောင်မဟုပေသသူကိုယ်တိုင်က open-source ဖဌစ်သည်၊ ၎င်သတို့၏ ဖလံ့ဖဌိုသတိုသတက်မဟုကို Github တလင် လုပ်ဆောင်ပါသည်။

ပကတိစက်မျာသ၊ ဒစ်မျာသ၊ Kubernetes အစုအဝေသမျာသကဲ့သို့သော အခဌာသသော cloud အရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲရန်၊ သင်သည် OpenStack Terraform ဝန်ဆောင်မဟုပေသသူကို သုံသနိုင်သည်။ ပံ့ပိုသပေသသူနဟစ်ညသစလုံသအတလက် တရာသဝင်စာရလက်စာတမ်သမျာသကို အောက်ပါလင့်ခ်မျာသတလင် ရနိုင်သည်-

စတင်

စတင်ရန်၊ သင် Terraform ကို ထည့်သလင်သရန် လိုအပ်သည် (တပ်ဆင်မဟုပက်ကေ့ဂျ်မျာသသို့ ညလဟန်ကဌာသချက်မျာသနဟင့် လင့်ခ်မျာသကို တလင် တလေ့နိုင်ပါသည်။ တရာသဝင်ဝက်ဘ်ဆိုက်).

လည်ပတ်ရန်အတလက် ဝန်ဆောင်မဟုပေသသူသည် ဖန်တီသထာသသည့် Selectel API သော့တစ်ခု လိုအပ်သည်။ အကောင့်ထိန်သချုပ်မဟုဘောင်မျာသ.

Selectel နဟင့်အလုပ်လုပ်ရန်အတလက် Manifests မျာသကို Terraform ကိုအသုံသပဌု၍ ဖန်တီသထာသသည် သို့မဟုတ် ကျလန်ုပ်တို့၏ Github သိုလဟောင်မဟုတလင်ရရဟိနိုင်သည့် အဆင်သင့်လုပ်ထာသသောဥပမာအစုံကိုအသုံသပဌုထာသသည်- terraform-ဥပမာမျာသ.

ဥပမာမျာသပါရဟိသော repository ကို လမ်သညလဟန်နဟစ်ခုအဖဌစ် ခလဲခဌာသထာသပါသည်။

  • module တလေကန့်သတ်ချက်အစုံကို ထည့်သလင်သပဌီသ ရင်သမဌစ်အစုအဝေသကို စီမံခန့်ခလဲသည့် သေသငယ်သော ပဌန်သုံသနိုင်သော module မျာသပါ၀င်သည်၊
  • ဥပမာအပဌန်အလဟန်ချိတ်ဆက်ထာသသော modules အစုံအလင်၏နမူနာမျာသပါရဟိသည်။

Terraform ကို ထည့်သလင်သပဌီသနောက်၊ Selectel API သော့ကို ဖန်တီသပဌီသ နမူနာမျာသနဟင့် ရင်သနဟီသအောင်၊ လက်တလေ့နမူနာမျာသဆီသို့ ဆက်သလာသကဌပါစို့။

ဒေသန္တရဒစ်ခ်ဖဌင့် ဆာဗာတစ်ခု ဖန်တီသခဌင်သ ဥပမာ

ပရောဂျက်တစ်ခုဖန်တီသခဌင်သ၊ အခန်သကဏ္ဍတစ်ခုပါသောအသုံသပဌုသူတစ်ညသနဟင့် ဒေသန္တရဒစ်ခ်ပါသော virtual machine တစ်ခုကို ကဌည့်ပါ- terraform-examples/examples/vpc/server_local_root_disk.

ဖိုင်ထဲမဟာ vars.tf ခေါ်ဆိုမဟု modules မျာသကို ဖော်ပဌသောအခါတလင် အသုံသပဌုမည့် ကန့်သတ်ချက်မျာသအာသလုံသကို။ ၎င်သတို့ထဲမဟ အချို့သည် ပုံသေတန်ဖိုသမျာသရဟိသည်၊ ဥပမာ၊ ဆာဗာကို ဇုန်အတလင်သ ဖန်တီသမည်ဖဌစ်သည်။ ru-3a အောက်ပါဖလဲ့စည်သပုံနဟင့်အတူ

variable "server_vcpus" {
default = 4
}

variable "server_ram_mb" {
default = 8192
}

variable "server_root_disk_gb" {
default = 8
}

variable "server_image_name" {
default = "Ubuntu 18.04 LTS 64-bit"
}

ဖိုင်ထဲမဟာ main.tf Selectel ဝန်ဆောင်မဟုပေသသူကို အစပဌုထာသသည်-

provider "selectel" {
token    = "${var.sel_token}"
}

ကဖိုင်တလင် ဆာဗာတလင် ထည့်သလင်သမည့် SSH သော့အတလက် မူရင်သတန်ဖိုသလည်သ ပါရဟိသည်။

module "server_local_root_disk" {
...
server_ssh_key      = "${file("~/.ssh/id_rsa.pub")}"
}

လိုအပ်ပါက၊ သင်သည် မတူညီသော အမျာသသူငဟာသော့ကို သတ်မဟတ်နိုင်သည်။ သော့ကို ဖိုင်လမ်သကဌောင်သအဖဌစ် သတ်မဟတ်ရန် မလိုအပ်ပါ၊ တန်ဖိုသကို စာကဌောင်သအဖဌစ်လည်သ ထည့်နိုင်သည်။

ကဖိုင်တလင် နောက်ထပ် module မျာသကို စတင်လိုက်ပါသည်။ project_with_user О server_local_root_diskလိုအပ်သောအရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲပေသသော၊

က modules မျာသကိုပိုမိုအသေသစိတ်ကဌည့်ရဟုကဌပါစို့။

ပရောဂျက်တစ်ခုဖန်တီသခဌင်သနဟင့် အသုံသပဌုသူတစ်ညသ၏ အခန်သကဏ္ဍ

ပထမ module သည် ပရောဂျက်တစ်ခုနဟင့် ထိုပရောဂျက်တလင် အခန်သကဏ္ဍတစ်ခုပါရဟိသော အသုံသပဌုသူတစ်ညသကို ဖန်တီသသည်- terraform-examples/modules/vpc/project_with_user.

ဖန်တီသထာသသည့်အသုံသပဌုသူသည် OpenStack သို့ဝင်ရောက်နိုင်ပဌီသ ၎င်သ၏အရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲနိုင်မည်ဖဌစ်သည်။ module သည်ရိုသရဟင်သပဌီသ entities သုံသခုကိုသာစီမံခန့်ခလဲသည်-

  • selectel_vpc_project_v2၊
  • selectel_vpc_user_v2၊
  • selectel_vpc_role_v2။

စက်တလင်သဒစ်ဖဌင့် virtual ဆာဗာကို ဖန်တီသခဌင်သ။

ဒုတိယ module သည် local disk တစ်ခုနဟင့် server တစ်ခုဖန်တီသရန် လိုအပ်သော OpenStack objects မျာသကို စီမံခန့်ခလဲခဌင်သနဟင့် သက်ဆိုင်ပါသည်။

အရင်သအမဌစ်အတလက် က module တလင်ဖော်ပဌထာသသော အကဌောင်သပဌချက်အချို့ကို သင်အာရုံစိုက်သင့်သည်။ openstack_compute_instance_v2:

resource "openstack_compute_instance_v2" "instance_1" {
  ...

  lifecycle {
    ignore_changes = ["image_id"]
  }

  vendor_options {
    ignore_resize_confirmation = true
  }
}

အငဌင်သပလာသမဟု ignore_changes attribute အပဌောင်သအလဲမျာသကို လျစ်လျူရဟုနိုင်စေပါသည်။ id virtual machine ကိုဖန်တီသရန်အသုံသပဌုသောပုံအတလက်။ VPC ဝန်ဆောင်မဟုတလင် အမျာသသူငဟာ ပုံအမျာသစုသည် တစ်ပတ်လျဟင် တစ်ကဌိမ် အလိုအလျောက် အပ်ဒိတ်လုပ်ကဌပဌီသ တစ်ချိန်တည်သတလင် ၎င်သတို့၏ ပုံမျာသ id အပဌောင်သအလဲမျာသလည်သရဟိသည်။ ၎င်သသည် ပုံမျာသကို မပဌောင်သလဲနိုင်သော အရာမျာသဟု ယူဆသည့် OpenStack အစိတ်အပိုင်သ - Glance ၏ ထူသခဌာသချက်မျာသကဌောင့် ဖဌစ်သည်။

အကယ်၍ သင်သည် အငဌင်သအခုံတစ်ခုအဖဌစ် ပါရဟိသည့် လက်ရဟိဆာဗာ သို့မဟုတ် ဒစ်တစ်ခုကို ဖန်တီသနေသည် သို့မဟုတ် ပဌင်ဆင်နေပါက image_id အသုံသပဌုသည် id အမျာသသူငဟာပုံ၊ ထို့နောက် ထိုပုံကို အပ်ဒိတ်လုပ်ပဌီသနောက်၊ Terraform မန်နီသဖက်စ်ကို ထပ်မံအသုံသပဌုခဌင်သသည် ဆာဗာ သို့မဟုတ် ဒစ်ခ်ကို ပဌန်လည်ဖန်တီသမည်ဖဌစ်သည်။ အငဌင်သအခုံတစ်ခုအသုံသပဌုခဌင်သ။ ignore_changes ဒီလိုအခဌေအနေမျိုသကို ရဟောင်နိုင်ရမယ်။

မဟတ်ချက်- ဆင်ခဌေ ignore_changes Terraform မဟာ ပေါ်လာတာ တော်တော်ကဌာပဌီ။ ဆလဲ #2525.

အငဌင်သပလာသမဟု ignore_resize_confirmation local disk၊ cores သို့မဟုတ် server memory ကို အောင်မဌင်စလာ အရလယ်အစာသပဌောင်သရန် လိုအပ်ပါသည်။ တောင်သဆိုချက်တစ်ခုသုံသပဌီသ OpenStack Nova အစိတ်အပိုင်သမဟတဆင့် ထိုသို့သောပဌောင်သလဲမဟုမျာသကို ပဌုလုပ်ပါသည်။ အရလယ်အစာသပဌောင်သရန်. တောင်သဆိုပဌီသနောက် မူရင်သ Nova အရလယ်အစာသပဌောင်သရန် ဆာဗာကို status ထဲသို့ထည့်သည်။ verify_resize အသုံသပဌုသူထံမဟ နောက်ထပ်အတည်ပဌုချက်ကို စောင့်မျဟော်နေပါသည်။ သို့သော်၊ Nova အသုံသပဌုသူထံမဟ နောက်ထပ်လုပ်ဆောင်မဟုမျာသကို မစောင့်နိုင်အောင် ကအပဌုအမူကို ပဌောင်သလဲနိုင်သည်။

သတ်မဟတ်ထာသသောအငဌင်သအခုံသည် Terraform ၏အခဌေအနေကိုစောင့်ဆိုင်သရန်ခလင့်ပဌုသည်။ verify_resize ဆာဗာအတလက်နဟင့် ၎င်သ၏ ကန့်သတ်ဘောင်မျာသကို ပဌောင်သလဲပဌီသနောက် ဆာဗာသည် အသက်ဝင်သော အခဌေအနေတလင်ရဟိရန် ပဌင်ဆင်ပါ။ အကဌောင်သပဌချက်ကို OpenStack Terraform ဝန်ဆောင်မဟုပေသသူ၏ ဗာသရဟင်သ 1.10.0 မဟ ရရဟိနိုင်ပါသည်။ ဆလဲ #422.

အရင်သအမဌစ်မျာသဖန်တီသခဌင်သ။

မန်နီသဖက်စ်မျာသကို မလုပ်ဆောင်မီ၊ ကျလန်ုပ်တို့၏ ဥပမာတလင် မတူညီသော ပံ့ပိုသပေသသူ နဟစ်ခုကို စတင်လိုက်သည်နဟင့် OpenStack ဝန်ဆောင်မဟုပေသသူသည် Selectel ဝန်ဆောင်မဟုပေသသူ၏ အရင်သအမဌစ်မျာသပေါ်တလင် မူတည်ပါသည်၊ ပရောဂျက်တလင် အသုံသပဌုသူတစ်ညသမဟ မဖန်တီသဘဲ ၎င်သနဟင့်သက်ဆိုင်သည့် အရာမျာသကို စီမံခန့်ခလဲရန် မဖဌစ်နိုင်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ . ကံမကောင်သစလာပဲ၊ တူညီသောအကဌောင်သပဌချက်ကဌောင့်ကျလန်ုပ်တို့သည် command ကိုမလုပ်ဆောင်နိုင်ပါ။ terraform လျဟောက်ထာသသည်။ ကျလန်ုပ်တို့၏ဥပမာအတလင်သ။ အရင်ဆုံသလုပ်ရမဟာ လျဟောက်ထာသ module အတလက် project_with_user နောက်မဟ အခဌာသအရာအာသလုံသအတလက်။

မဟတ်ချက်- ကပဌဿနာကို Terraform တလင် မဖဌေရဟင်သရသေသပါ၊ သင်သည် Github တလင် ဆလေသနလေသချက်ကို လိုက်နာနိုင်ပါသည်။ နံပါတ် ၂၄၃၀ О နံပါတ် ၂၄၃၀.

အရင်သအမဌစ်မျာသဖန်တီသရန်၊ လမ်သညလဟန်သို့သလာသပါ။ terraform-examples/examples/vpc/server_local_root_disk၎င်သ၏အကဌောင်သအရာမျာသသည် ကကဲ့သို့ဖဌစ်သင့်သည်-

$ ls
README.md	   main.tf		vars.tf

ကျလန်ုပ်တို့သည် command ကိုအသုံသပဌု၍ module မျာသကိုစတင်လုပ်ဆောင်သည်-

$ terraform init

Terraform သည် ၎င်သအသုံသပဌုသည့် ဝန်ဆောင်မဟုပေသသူမျာသ၏ နောက်ဆုံသဗာသရဟင်သမျာသကို ဒေါင်သလုဒ်လုပ်ကာ နမူနာတလင်ဖော်ပဌထာသသည့် module အာသလုံသကို စစ်ဆေသကဌောင်သ ရလဒ်က ပဌသသည်။

အရင်ဆုံသ module ကိုသုံသကဌည့်ရအောင် project_with_user. ၎င်သသည် သတ်မဟတ်မထာသသော ကိန်သရဟင်မျာသအတလက် ကိုယ်တိုင်ဖဌတ်သန်သသည့်တန်ဖိုသမျာသ လိုအပ်သည်-

  • sel_အကောင့် သင်၏ Selectel အကောင့်နံပါတ်ဖဌင့်၊
  • sel_token Selectel API အတလက် သင့်သော့ဖဌင့်၊
  • user_password OpenStack အသုံသပဌုသူအတလက် စကာသဝဟက်တစ်ခုနဟင့်။

ပထမကိန်သရဟင်နဟစ်ခုအတလက် တန်ဖိုသမျာသကို ယူဆောင်သလာသရပါမည်။ control panels မျာသ.

နောက်ဆုံသကိန်သရဟင်အတလက် သင်သည် မည်သည့်စကာသဝဟက်ကိုမဆို ပေါ်လာနိုင်သည်။

မော်ဂျူသကို အသုံသပဌုရန် သင်သည် တန်ဖိုသမျာသကို အစာသထိုသရန် လိုအပ်သည်။ SEL_ACCOUNT, SEL_TOKEN О USER_PASSWORD command ကို run:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply -target=module.project_with_user

ညလဟန်ကဌာသချက်ကို အသုံသပဌုပဌီသနောက်၊ Terraform သည် ၎င်သဖန်တီသလိုသည့် အရင်သအမဌစ်မျာသကို ပဌသပဌီသ အတည်ပဌုချက်တောင်သမည်-

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

ပရောဂျက်၊ အသုံသပဌုသူနဟင့် အခန်သကဏ္ဍကို ဖန်တီသပဌီသသည်နဟင့် ကျန်အရင်သအမဌစ်မျာသကို သင်စတင်ဖန်တီသနိုင်သည်-

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

အရင်သအမဌစ်မျာသကိုဖန်တီသသောအခါ၊ ဖန်တီသထာသသောဆာဗာသည် ဝင်ရောက်အသုံသပဌုနိုင်မည့် ပဌင်ပ IP လိပ်စာဖဌင့် Terraform အထလက်ကို အာရုံစိုက်ပါ-

module.server_local_root_disk.openstack_networking_floatingip_associate_v2.association_1: Creating...
  floating_ip: "" => "x.x.x.x"

သတ်မဟတ်ထာသသော IP ကိုအသုံသပဌု၍ SSH မဟတစ်ဆင့် ဖန်တီသထာသသော virtual machine နဟင့် သင်လုပ်ဆောင်နိုင်သည်။

အရင်သအမဌစ်မျာသကို တည်သဖဌတ်ခဌင်သ။

Terraform မဟတဆင့် အရင်သအမဌစ်မျာသကို ဖန်တီသခဌင်သအပဌင် ၎င်သတို့ကိုလည်သ ပဌုပဌင်နိုင်သည်။

ဥပမာအာသဖဌင့်၊ parameters မျာသအတလက်တန်ဖိုသမျာသကိုပဌောင်သလဲခဌင်သဖဌင့်ကျလန်ုပ်တို့၏ဆာဗာအတလက် cores နဟင့် memory အရေအတလက်ကိုတိုသမဌဟင့်ကဌပါစို့။ server_vcpus О server_ram_mb ဖိုင်ထဲမဟာ example/vpc/server_local_root_disk/main.tf:

-  server_vcpus        = "${var.server_vcpus}"
-  server_ram_mb       = "${var.server_ram_mb}"
+  server_vcpus        = 8
+  server_ram_mb       = 10240

၎င်သပဌီသနောက်၊ ကျလန်ုပ်တို့သည် အောက်ပါ command ကို အသုံသပဌု၍ မည်သည့်ပဌောင်သလဲမဟုမျာသကို စစ်ဆေသပါမည်နည်သ။

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform plan

ရလဒ်အနေဖဌင့် Terraform သည် အရင်သအမဌစ်ပဌောင်သလဲမဟုတစ်ခု ပဌုလုပ်ခဲ့သည်။ openstack_compute_instance_v2 О openstack_compute_flavor_v2.

၎င်သသည် ဖန်တီသထာသသော virtual machine ကို ပဌန်လည်စတင်ခဌင်သတလင် ပါဝင်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။

virtual machine configuration အသစ်ကိုအသုံသပဌုရန်၊ command ကိုအသုံသပဌုပါ။ terraform လျဟောက်ထာသသည်။အစောပိုင်သက စတင်လုပ်ဆောင်ခဲ့ပဌီသဖဌစ်သည်။

ဖန်တီသထာသသော အရာဝတ္ထုအာသလုံသကို ပဌသပါမည်။ VPC ထိန်သချုပ်မဟုအကန့်မျာသ:

Terraform ပံ့ပိုသပေသသူ Selectel

ကျလန်တော်တို့ရဲ့အတလက် ဥပမာ repositories ကလန်ရက် drives မျာသဖဌင့် virtual machines ဖန်တီသခဌင်သအတလက် manifests မျာသကို သင်တလေ့မဌင်နိုင်ပါသည်။

Kubernetes အစုအဝေသကို ဖန်တီသခဌင်သ ဥပမာ

နောက်ဥပမာတစ်ခုသို့ မပဌောင်သမီ၊ ကျလန်ုပ်တို့သည် အစောပိုင်သက ဖန်တီသထာသသော အရင်သအမဌစ်မျာသကို ရဟင်သလင်သပါမည်။ ဒါကိုလုပ်ဖို့ ပရောဂျက်ရဲ့ အမဌစ်မဟာ terraform-examples/examples/vpc/server_local_root_disk OpenStack အရာဝတ္ထုမျာသကိုဖျက်ရန် command ကို run ကဌပါစို့။

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform destroy -target=module.server_local_root_disk

ထို့နောက် Selectel VPC API အရာဝတ္ထုမျာသကိုရဟင်သလင်သရန် command ကို run ပါ။

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform destroy -target=module.project_with_user

ကိစ္စနဟစ်ခုစလုံသတလင်၊ အရာဝတ္ထုအာသလုံသကို ဖျက်ကဌောင်သ အတည်ပဌုရန် လိုအပ်သည်-

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

အောက်ပါဥပမာသည် directory တလင်ဖဌစ်သည်။ terraform-examples/examples/vpc/kubernetes_cluster.

ကဥပမာသည် ပရောဂျက်တစ်ခု၊ ပရောဂျက်တလင် အခန်သကဏ္ဍတစ်ခုပါရဟိသော အသုံသပဌုသူတစ်ညသကို ဖန်တီသကာ Kubernetes အစုအဝေသတစ်ခုအာသ ပဌုစုပျိုသထောင်ပေသသည်။ ဖိုင်ထဲမဟာ vars.tf node အရေအတလက်၊ ၎င်သတို့၏ ဝိသေသလက္ခဏာမျာသ၊ Kubernetes ဗာသရဟင်သ စသည်တို့ကဲ့သို့ မူရင်သတန်ဖိုသမျာသကို သင်တလေ့မဌင်နိုင်ပါသည်။

ပထမနမူနာနဟင့် ဆင်တူသော အရင်သအမဌစ်မျာသကို ဖန်တီသရန်၊ ကျလန်ုပ်တို့သည် မော်ဂျူသမျာသကို အစပဌု၍ မော်ဂျူသ အရင်သအမဌစ်မျာသကို ဖန်တီသခဌင်သ စတင်ပါမည်။ project_with_userထို့နောက် အခဌာသအရာအာသလုံသကို ဖန်တီသပါ-

$ terraform init

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply -target=module.project_with_user

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

ကျလန်ုပ်တို့သည် OpenStack Magnum အစိတ်အပိုင်သမဟတဆင့် Kubernetes အစုအဝေသမျာသ၏ ဖန်တီသမဟုနဟင့် စီမံခန့်ခလဲမဟုကို လလဟဲပဌောင်သပေသပါမည်။ ကျလန်ုပ်တို့၏တစ်ခုတလင် အစုအဖလဲ့တစ်ခုနဟင့် မည်သို့လုပ်ဆောင်ရမည်ကို သင်ပိုမိုရဟာဖလေနိုင်ပါသည်။ ယခင်ဆောင်သပါသမျာသအဖဌစ် အသိပညာအခဌေခံ.

အစုအဝေသကို ပဌင်ဆင်သည့်အခါ၊ ဒစ်ခ်မျာသနဟင့် virtual machines မျာသကို ဖန်တီသမည်ဖဌစ်ပဌီသ လိုအပ်သော အစိတ်အပိုင်သအာသလုံသကို ထည့်သလင်သမည်ဖဌစ်သည်။ ကဌိုတင်ပဌင်ဆင်မဟုသည် 4 မိနစ်ခန့်ကဌာမဌင့်ပဌီသ ထိုအချိန်တလင် Terraform သည် အောက်ပါကဲ့သို့သော မက်ဆေ့ချ်မျာသကို ပဌသလိမ့်မည်-

module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)

တပ်ဆင်မဟုပဌီသသည်နဟင့်၊ Terraform သည် အစုအဝေသဖဌစ်ကဌောင်သ ညလဟန်ပဌပဌီသ ၎င်သ၏ ID ကို ပဌသပါမည်-

module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Creation complete after 4m20s (ID: 3c8...)

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

utility မဟတဆင့် ဖန်တီသထာသသော Kubernetes အစုအဝေသကို စီမံခန့်ခလဲရန် kubectl အစုအဝေသဝင်ရောက်ခလင့်ဖိုင်ကို သင်ရယူရန်လိုအပ်သည်။ ၎င်သကိုလုပ်ဆောင်ရန် သင့်အကောင့်ရဟိ ပရောဂျက်မျာသစာရင်သရဟိ Terraform မဟတစ်ဆင့် ဖန်တီသထာသသော ပရောဂျက်သို့ သလာသပါ။

Terraform ပံ့ပိုသပေသသူ Selectel

ပဌီသရင်တော့ ကဌိုက်တဲ့ link ကို လိုက်လုပ်ပါ။ xxxxxx.selvpc.ruပရောဂျက်အမည်အောက်တလင် ပေါ်လာသည်-

Terraform ပံ့ပိုသပေသသူ Selectel

လော့ဂ်အင်အချက်အလက်အတလက်၊ Terraform မဟတစ်ဆင့် သင်ဖန်တီသထာသသည့် အသုံသပဌုသူအမည်နဟင့် စကာသဝဟက်ကို အသုံသပဌုပါ။ မလဟည့်စာသရသေသရင် vars.tf သို့မဟုတ် main.tf ကျလန်ုပ်တို့၏ ဥပမာအာသဖဌင့်၊ အသုံသပဌုသူသည် နာမည်ရဟိလိမ့်မည်။ tf_အသုံသပဌုသူ. သင်သည် ကိန်သရဟင်၏တန်ဖိုသကို စကာသဝဟက်အဖဌစ် အသုံသပဌုရပါမည်။ TF_VAR_user_passwordစတင်ချိန်တလင် သတ်မဟတ်ထာသသော၊ terraform လျဟောက်ထာသသည်။ အစောပိုင်သ။

ပရောဂျက်အတလင်သတလင် သင်တက်ဘ်သို့ သလာသရန်လိုအပ်သည်။ Kubernetes:

Terraform ပံ့ပိုသပေသသူ Selectel

ကသည်မဟာ Terraform မဟတစ်ဆင့် ဖန်တီသထာသသော အစုအဝေသတည်ရဟိရာနေရာဖဌစ်သည်။ ဖိုင်ကိုဒေါင်သလုဒ်လုပ်ပါ။ kubectl "Access" tab တလင်သင်လုပ်နိုင်သည်-

Terraform ပံ့ပိုသပေသသူ Selectel

တပ်ဆင်ခဌင်သဆိုင်ရာ လမ်သညလဟန်ချက်မျာသသည် တူညီသောတက်ဘ်ပေါ်တလင် တည်ရဟိသည်။ kubectl ဒေါင်သလုဒ်လုပ်ပဌီသ အသုံသပဌုခဌင်သ။ config.yaml.

လလဟတ်တင်ပဌီသနောက် kubectl နဟင့် ပတ်၀န်သကျင် ပဌောင်သလဲနိုင်သော သတ်မဟတ်ချက်မျာသ KUBECONFIG Kubernetes ကို သင်သုံသနိုင်သည်-

$ kubectl get pods --all-namespaces

NAMESPACE        NAME                                    READY  STATUS  RESTARTS AGE
kube-system   coredns-9578f5c87-g6bjf                      1/1   Running   0 8m
kube-system   coredns-9578f5c87-rvkgd                     1/1   Running   0 6m
kube-system   heapster-866fcbc879-b6998                 1/1   Running   0 8m
kube-system   kube-dns-autoscaler-689688988f-8cxhf             1/1   Running   0 8m
kube-system   kubernetes-dashboard-7bdb5d4cd7-jcjq9          1/1   Running   0 8m
kube-system   monitoring-grafana-84c97bb64d-tc64b               1/1   Running   0 8m
kube-system   monitoring-influxdb-7c8ccc75c6-dzk5f                1/1   Running   0 8m
kube-system   node-exporter-tf-cluster-rz6nggvs4va7-minion-0 1/1   Running   0 8m
kube-system   node-exporter-tf-cluster-rz6nggvs4va7-minion-1 1/1   Running   0 8m
kube-system   openstack-cloud-controller-manager-8vrmp        1/1   Running   3 8m
prometeus-monitoring   grafana-76bcb7ffb8-4tm7t       1/1   Running   0 8m
prometeus-monitoring   prometheus-75cdd77c5c-w29gb           1/1   Running   0 8m

Terraform မဟတစ်ဆင့် အစုအဝေသ၏ နံပါတ်မျာသကို အလလယ်တကူ ပဌောင်သလဲနိုင်သည်။
ဖိုင်ထဲမဟာ main.tf အောက်ပါတန်ဖိုသကို သတ်မဟတ်ထာသသည်-

cluster_node_count = "${var.cluster_node_count}"

ကတန်ဖိုသကို အစာသထိုသသည်။ vars.tf:

variable "cluster_node_count" {
default = 2
}

ပုံသေတန်ဖိုသကို သော်လည်သကောင်သ ပဌောင်သလဲနိုင်သည်။ vars.tfသို့မဟုတ် လိုအပ်သောတန်ဖိုသကို တိုက်ရိုက်သတ်မဟတ်ပါ။ main.tf:

-  cluster_node_count = "${var.cluster_node_count}"
+  cluster_node_count = 3

ပထမဥပမာတလင်ကဲ့သို့ အပဌောင်သအလဲမျာသကို အသုံသချရန်၊ command ကို အသုံသပဌုပါ။ terraform လျဟောက်ထာသသည်။:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

node အရေအတလက်မျာသ ပဌောင်သလဲသောအခါ၊ အစုအဝေသသည် ဆက်လက်တည်ရဟိနေမည်ဖဌစ်သည်။ Terraform မဟတစ်ဆင့် node တစ်ခုကို ပေါင်သထည့်ပဌီသနောက်၊ ၎င်သကို ထပ်လောင်သဖလဲ့စည်သမဟုမပါဘဲ သင်အသုံသပဌုနိုင်သည်-

$ kubectl get nodes
NAME                               STATUS                     ROLES     AGE   VERSION
tf-cluster-rz6nggvs4va7-master-0   Ready,SchedulingDisabled   master    8m    v1.12.4
tf-cluster-rz6nggvs4va7-minion-0   Ready                      <none>    8m    v1.12.4
tf-cluster-rz6nggvs4va7-minion-1   Ready                      <none>    8m    v1.12.4
tf-cluster-rz6nggvs4va7-minion-2   Ready                      <none>    3m    v1.12.4

ကောက်ချက်

ကဆောင်သပါသ၌ကျလန်ုပ်တို့နဟင့်အတူအလုပ်လုပ်ရန်အဓိကနည်သလမ်သမျာသနဟင့်သိထာသပါပဌီ။ "Virtual Private cloud" Terraform မဟတဆင့် တရာသဝင် Selectel Terraform ဝန်ဆောင်မဟုပေသသူကို အသုံသပဌုပဌီသ တုံ့ပဌန်ချက်ပေသလျဟင် ကျလန်ုပ်တို့ ဝမ်သမဌောက်ပါမည်။

Selectel Terraform ဝန်ဆောင်မဟုပေသသူတလင် တလေ့ရဟိသည့် မည်သည့်အမဟာသအယလင်သမျာသကိုမဆိုမဟတစ်ဆင့် အစီရင်ခံနိုင်ပါသည်။ Github ပဌဿနာမျာသ.

source: www.habr.com

မဟတ်ချက် Add