Terraform வழங்குநர் Selectel

Terraform வழங்குநர் Selectel

Selectel உடன் பணிபுரிய அதிகாரப்பூர்வ Terraform வழங்குநரைத் தொடங்கியுள்ளோம். உள்கட்டமைப்பு-குறியீடு முறை மூலம் வள நிர்வாகத்தை முழுமையாகச் செயல்படுத்த இந்தத் தயாரிப்பு பயனர்களை அனுமதிக்கிறது.

வழங்குநர் தற்போது சேவை வள நிர்வாகத்தை ஆதரிக்கிறார் "மெய்நிகர் தனியார் மேகம்" (இனிமேல் VPC என குறிப்பிடப்படுகிறது). எதிர்காலத்தில், Selectel வழங்கும் பிற சேவைகளுக்கு வள நிர்வாகத்தைச் சேர்க்க திட்டமிட்டுள்ளோம்.

உங்களுக்கு ஏற்கனவே தெரியும், VPC சேவை OpenStack இல் கட்டமைக்கப்பட்டுள்ளது. இருப்பினும், பொது மேகக்கணிக்கு சேவை செய்வதற்கான சொந்த கருவிகளை OpenStack வழங்கவில்லை என்ற உண்மையின் காரணமாக, சிக்கலான கலப்பு பொருட்களின் நிர்வாகத்தை எளிதாக்கும் மற்றும் வேலையை மிகவும் வசதியாக்கும் கூடுதல் APIகளின் தொகுப்பில் விடுபட்ட செயல்பாட்டைச் செயல்படுத்தினோம். OpenStack இல் கிடைக்கும் சில செயல்பாடுகள் நேரடி பயன்பாட்டிலிருந்து மூடப்பட்டுள்ளன, ஆனால் அவை மூலம் கிடைக்கும் எங்கள் API.

Selectel Terraform வழங்குநர் இப்போது பின்வரும் VPC ஆதாரங்களை நிர்வகிக்கும் திறனைக் கொண்டுள்ளது:

  • திட்டங்கள் மற்றும் அவற்றின் ஒதுக்கீடுகள்;
  • பயனர்கள், அவர்களின் பாத்திரங்கள் மற்றும் டோக்கன்கள்;
  • குறுக்கு பிராந்திய மற்றும் VRRP உட்பட பொது சப்நெட்கள்;
  • மென்பொருள் உரிமங்கள்.

VPC API உடன் பணிபுரிய, வழங்குநர் எங்கள் பொது Go நூலகத்தைப் பயன்படுத்துகிறார். நூலகம் மற்றும் வழங்குநர் ஆகிய இரண்டும் திறந்த மூலமாகும், அவற்றின் வளர்ச்சி கிதுப்பில் மேற்கொள்ளப்படுகிறது:

மெய்நிகர் இயந்திரங்கள், வட்டுகள், குபெர்னெட்ஸ் கிளஸ்டர்கள் போன்ற பிற கிளவுட் ஆதாரங்களை நிர்வகிக்க, நீங்கள் OpenStack Terraform வழங்குநரைப் பயன்படுத்தலாம். இரண்டு வழங்குநர்களுக்கான அதிகாரப்பூர்வ ஆவணங்கள் பின்வரும் இணைப்புகளில் கிடைக்கின்றன:

தொடங்குதல்

தொடங்குவதற்கு, நீங்கள் Terraform ஐ நிறுவ வேண்டும் (அறிவுறுத்தல்கள் மற்றும் நிறுவல் தொகுப்புகளுக்கான இணைப்புகளை இங்கே காணலாம் அதிகாரப்பூர்வ வலைத்தளம்).

செயல்பட, வழங்குநருக்கு Selectel API விசை தேவை, அதில் உருவாக்கப்பட்டுள்ளது கணக்கு கட்டுப்பாட்டு பேனல்கள்.

Selectel உடன் பணிபுரிவதற்கான மேனிஃபெஸ்ட்கள் Terraform பயன்படுத்தி அல்லது எங்கள் Github களஞ்சியத்தில் கிடைக்கும் ஆயத்த உதாரணங்களின் தொகுப்பைப் பயன்படுத்தி உருவாக்கப்படுகின்றன: நிலப்பரப்பு-உதாரணங்கள்.

எடுத்துக்காட்டுகளுடன் கூடிய களஞ்சியம் இரண்டு கோப்பகங்களாக பிரிக்கப்பட்டுள்ளது:

  • தொகுதிகள், அளவுருக்களின் தொகுப்பை உள்ளீடாக எடுத்து சிறிய அளவிலான வளங்களை நிர்வகிக்கும் சிறிய மறுபயன்படுத்தக்கூடிய தொகுதிகள் உள்ளன;
  • உதாரணங்கள், ஒன்றோடொன்று இணைக்கப்பட்ட தொகுதிகளின் முழுமையான தொகுப்பின் எடுத்துக்காட்டுகள் உள்ளன.

டெர்ராஃபார்மை நிறுவிய பின், ஒரு Selectel API விசையை உருவாக்கி, உதாரணங்களுடன் உங்களைப் பழக்கப்படுத்திய பிறகு, நடைமுறை எடுத்துக்காட்டுகளுக்குச் செல்லலாம்.

உள்ளூர் வட்டுடன் சேவையகத்தை உருவாக்குவதற்கான எடுத்துக்காட்டு

ஒரு திட்டத்தை உருவாக்குவதற்கான உதாரணம், ஒரு பங்கைக் கொண்ட பயனர் மற்றும் உள்ளூர் வட்டுடன் ஒரு மெய்நிகர் இயந்திரம் ஆகியவற்றைப் பார்ப்போம்: terraform-examples/examles/vpc/server_local_root_disk.

கோப்பில் vars.tf தொகுதிகளை அழைக்கும் போது பயன்படுத்தப்படும் அனைத்து அளவுருக்கள் விவரிக்கப்பட்டுள்ளன. அவற்றில் சில இயல்புநிலை மதிப்புகளைக் கொண்டுள்ளன, எடுத்துக்காட்டாக, சேவையகம் மண்டலத்தில் உருவாக்கப்படும் 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")}"
}

தேவைப்பட்டால், நீங்கள் வேறு பொது விசையை குறிப்பிடலாம். விசையை ஒரு கோப்பு பாதையாகக் குறிப்பிட வேண்டியதில்லை; நீங்கள் மதிப்பை ஒரு சரமாகவும் சேர்க்கலாம்.

மேலும் இந்த கோப்பில் தொகுதிகள் தொடங்கப்பட்டுள்ளன திட்டம்_பயனர் и server_local_root_disk, இது தேவையான வளங்களை நிர்வகிக்கிறது.

இந்த தொகுதிகளை இன்னும் விரிவாகப் பார்ப்போம்.

ஒரு திட்டத்தை உருவாக்குதல் மற்றும் ஒரு பங்கைக் கொண்ட பயனரை உருவாக்குதல்

முதல் தொகுதி ஒரு திட்டத்தை உருவாக்குகிறது மற்றும் அந்த திட்டத்தில் ஒரு பங்கைக் கொண்ட ஒரு பயனரை உருவாக்குகிறது: டெர்ராஃபார்ம்-எடுத்துக்காட்டுகள்/தொகுதிகள்/vpc/project_with_user.

உருவாக்கப்பட்ட பயனர் OpenStack இல் உள்நுழைந்து அதன் வளங்களை நிர்வகிக்க முடியும். தொகுதி எளிமையானது மற்றும் மூன்று நிறுவனங்களை மட்டுமே நிர்வகிக்கிறது:

  • selectel_vpc_project_v2,
  • selectel_vpc_user_v2,
  • selectel_vpc_role_v2.

உள்ளூர் வட்டுடன் மெய்நிகர் சேவையகத்தை உருவாக்குதல்

இரண்டாவது தொகுதி OpenStack பொருட்களை நிர்வகிப்பதைக் கையாள்கிறது, இது உள்ளூர் வட்டுடன் ஒரு சேவையகத்தை உருவாக்குவதற்கு அவசியமாகும்.

வளத்திற்கான இந்த தொகுதியில் குறிப்பிடப்பட்டுள்ள சில வாதங்களுக்கு நீங்கள் கவனம் செலுத்த வேண்டும் openstack_compute_instance_v2:

resource "openstack_compute_instance_v2" "instance_1" {
  ...

  lifecycle {
    ignore_changes = ["image_id"]
  }

  vendor_options {
    ignore_resize_confirmation = true
  }
}

வாதம் புறக்கணிப்பு_மாற்றங்கள் பண்பு மாற்றங்களை புறக்கணிக்க உங்களை அனுமதிக்கிறது id மெய்நிகர் இயந்திரத்தை உருவாக்கப் பயன்படுத்தப்படும் படத்திற்கு. VPC சேவையில், பெரும்பாலான பொது படங்கள் வாரத்திற்கு ஒருமுறை தானாகவே புதுப்பிக்கப்படும் அதே நேரத்தில் அவற்றின் id மாறுகிறது. இது ஓபன்ஸ்டாக் கூறுகளின் தனித்தன்மையின் காரணமாகும் - க்லான்ஸ், இதில் படங்கள் மாறாத நிறுவனங்களாகக் கருதப்படுகின்றன.

நீங்கள் ஏற்கனவே உள்ள சர்வர் அல்லது டிஸ்க்கை உருவாக்கினால் அல்லது மாற்றினால் அது ஒரு வாதமாக உள்ளது image_id பயன்படுத்தப்படுகிறது id பொது படம், பின்னர் அந்த படம் புதுப்பிக்கப்பட்ட பிறகு, Terraform மெனிஃபெஸ்டை மீண்டும் இயக்குவது சர்வர் அல்லது டிஸ்க்கை மீண்டும் உருவாக்கும். ஒரு வாதத்தைப் பயன்படுத்துதல் புறக்கணிப்பு_மாற்றங்கள் அத்தகைய சூழ்நிலையைத் தவிர்க்க உங்களை அனுமதிக்கிறது.

குறிப்பு: வாதம் புறக்கணிப்பு_மாற்றங்கள் மிக நீண்ட காலத்திற்கு முன்பு Terraform இல் தோன்றியது: இழு#2525.

வாதம் புறக்கணிப்பு_அளவு_உறுதிப்படுத்தல் உள்ளூர் வட்டு, கோர்கள் அல்லது சர்வர் நினைவகத்தை வெற்றிகரமாக மறுஅளவிட வேண்டும். கோரிக்கையைப் பயன்படுத்தி OpenStack Nova கூறு மூலம் இத்தகைய மாற்றங்கள் செய்யப்படுகின்றன அளவை. கோரிக்கைக்குப் பிறகு இயல்புநிலை Nova அளவை சேவையகத்தை நிலைக்கு வைக்கிறது verify_resize மேலும் பயனரின் கூடுதல் உறுதிப்படுத்தலுக்காக காத்திருக்கிறது. இருப்பினும், இந்த நடத்தை மாற்றப்படலாம், இதனால் பயனரின் கூடுதல் செயல்களுக்காக நோவா காத்திருக்காது.

டெர்ராஃபார்ம் நிலைக்காக காத்திருக்காமல் இருக்க குறிப்பிட்ட வாதம் அனுமதிக்கிறது verify_resize சேவையகத்திற்கு மற்றும் அதன் அளவுருக்களை மாற்றிய பின் சேவையகம் செயலில் இருக்கும் நிலையில் இருக்க தயாராக இருக்க வேண்டும். OpenStack Terraform வழங்குநரின் பதிப்பு 1.10.0 இலிருந்து வாதம் கிடைக்கிறது: இழு#422.

வளங்களை உருவாக்குதல்

மேனிஃபெஸ்ட்டை இயக்கும் முன், எங்கள் எடுத்துக்காட்டில், இரண்டு வெவ்வேறு வழங்குநர்கள் தொடங்கப்பட்டுள்ளனர் என்பதை நினைவில் கொள்ளவும், மேலும் OpenStack வழங்குநர் செலக்டெல் வழங்குநரின் வளங்களைப் பொறுத்தது, ஏனெனில் திட்டத்தில் ஒரு பயனரை உருவாக்காமல், அதற்குச் சொந்தமான பொருட்களை நிர்வகிக்க முடியாது. . துரதிர்ஷ்டவசமாக, அதே காரணத்திற்காக நாம் கட்டளையை இயக்க முடியாது டெராஃபார்ம் பொருந்தும் எங்கள் உதாரணத்தின் உள்ளே. முதலில் நாம் செய்ய வேண்டும் விண்ணப்பிக்க தொகுதிக்கு திட்டம்_பயனர் அதன் பிறகு மற்ற எல்லாவற்றுக்கும்.

குறிப்பு: இந்தச் சிக்கல் Terraform இல் இன்னும் தீர்க்கப்படவில்லை, Github இல் உள்ள விவாதத்தைப் பின்தொடரலாம் வெளியீடு#2430 и வெளியீடு#4149.

ஆதாரங்களை உருவாக்க, கோப்பகத்திற்குச் செல்லவும் terraform-examples/examles/vpc/server_local_root_disk, அதன் உள்ளடக்கங்கள் இப்படி இருக்க வேண்டும்:

$ ls
README.md	   main.tf		vars.tf

கட்டளையைப் பயன்படுத்தி தொகுதிகளை துவக்குகிறோம்:

$ terraform init

டெர்ராஃபார்ம் அது பயன்படுத்தும் வழங்குநர்களின் சமீபத்திய பதிப்புகளைப் பதிவிறக்குகிறது மற்றும் எடுத்துக்காட்டில் விவரிக்கப்பட்டுள்ள அனைத்து தொகுதிக்கூறுகளையும் சரிபார்க்கிறது என்பதை வெளியீடு காட்டுகிறது.

முதலில் தொகுதியைப் பயன்படுத்துவோம் திட்டம்_பயனர். இதற்கு அமைக்கப்படாத மாறிகளுக்கான மதிப்புகளை கைமுறையாக அனுப்ப வேண்டும்:

  • செல்_கணக்கு உங்கள் Selectel கணக்கு எண்ணுடன்;
  • செல்_டோக்கன் Selectel APIக்கான உங்கள் விசையுடன்;
  • பயனர்_கடவுச்சொல் OpenStack பயனருக்கான கடவுச்சொல்லுடன்.

முதல் இரண்டு மாறிகளின் மதிப்புகள் எடுக்கப்பட வேண்டும் கட்டுப்பாட்டு பேனல்கள்.

கடைசி மாறிக்கு, நீங்கள் எந்த கடவுச்சொல்லையும் கொண்டு வரலாம்.

தொகுதியைப் பயன்படுத்த, நீங்கள் மதிப்புகளை மாற்ற வேண்டும் SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD கட்டளையை இயக்குதல்:

$ 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

கட்டளையை இயக்கிய பிறகு, டெர்ராஃபார்ம் எந்த ஆதாரங்களை உருவாக்க விரும்புகிறது என்பதைக் காண்பிக்கும் மற்றும் உறுதிப்படுத்தலைக் கேட்கும்:

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

ஆதாரங்களை உருவாக்கும்போது, ​​உருவாக்கப்பட்ட சேவையகத்தை அணுகக்கூடிய வெளிப்புற ஐபி முகவரியுடன் டெர்ராஃபார்ம் வெளியீட்டிற்கு கவனம் செலுத்துங்கள்:

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

குறிப்பிட்ட IP ஐப் பயன்படுத்தி SSH வழியாக உருவாக்கப்பட்ட மெய்நிகர் இயந்திரத்துடன் நீங்கள் வேலை செய்யலாம்.

வளங்களைத் திருத்துதல்

டெர்ராஃபார்ம் மூலம் வளங்களை உருவாக்குவதுடன், அவை மாற்றியமைக்கப்படலாம்.

எடுத்துக்காட்டாக, அளவுருக்களுக்கான மதிப்புகளை மாற்றுவதன் மூலம் எங்கள் சேவையகத்திற்கான கோர்கள் மற்றும் நினைவகங்களின் எண்ணிக்கையை அதிகரிக்கலாம் சர்வர்_விசிபஸ் и சர்வர்_ராம்_எம்பி கோப்பில் உதாரணங்கள்/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

இதற்குப் பிறகு, பின்வரும் கட்டளையைப் பயன்படுத்தி இது என்ன மாற்றங்களுக்கு வழிவகுக்கும் என்பதை நாங்கள் சரிபார்க்கிறோம்:

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

இதன் விளைவாக, டெர்ராஃபார்ம் வள மாற்றத்தை ஏற்படுத்தியது openstack_compute_instance_v2 и openstack_compute_flavor_v2.

இது உருவாக்கப்பட்ட மெய்நிகர் இயந்திரத்தை மறுதொடக்கம் செய்ய வேண்டும் என்பதை நினைவில் கொள்க.

புதிய மெய்நிகர் இயந்திர கட்டமைப்பைப் பயன்படுத்த, கட்டளையைப் பயன்படுத்தவும் டெராஃபார்ம் பொருந்தும், நாங்கள் ஏற்கனவே தொடங்கினோம்.

உருவாக்கப்பட்ட அனைத்து பொருட்களும் காட்டப்படும் VPC கட்டுப்பாட்டு பேனல்கள்:

Terraform வழங்குநர் Selectel

எங்கள் எடுத்துக்காட்டு களஞ்சியங்கள் நெட்வொர்க் டிரைவ்களுடன் மெய்நிகர் இயந்திரங்களை உருவாக்குவதற்கான மேனிஃபெஸ்டுகளையும் நீங்கள் பார்க்கலாம்.

குபெர்னெட்ஸ் கிளஸ்டரை உருவாக்குவதற்கான எடுத்துக்காட்டு

அடுத்த உதாரணத்திற்குச் செல்வதற்கு முன், நாங்கள் முன்பு உருவாக்கிய ஆதாரங்களை சுத்தம் செய்வோம். திட்டத்தின் மூலத்தில் இதைச் செய்ய terraform-examples/examles/vpc/server_local_root_disk OpenStack பொருட்களை நீக்க கட்டளையை இயக்குவோம்:

$ 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 பொருட்களை அழிக்க கட்டளையை இயக்கவும்:

$ 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

பின்வரும் உதாரணம் கோப்பகத்தில் உள்ளது டெர்ராஃபார்ம்-உதாரணங்கள்/உதாரணங்கள்/விபிசி/குபெர்னெட்ஸ்_கிளஸ்டர்.

இந்த உதாரணம் ஒரு திட்டத்தை உருவாக்குகிறது, திட்டத்தில் ஒரு பங்கைக் கொண்ட ஒரு பயனர், மேலும் ஒரு குபெர்னெட்ஸ் கிளஸ்டரை எழுப்புகிறது. கோப்பில் vars.tf முனைகளின் எண்ணிக்கை, அவற்றின் பண்புகள், குபெர்னெட்ஸ் பதிப்பு போன்ற இயல்புநிலை மதிப்புகளை நீங்கள் பார்க்கலாம்.

முதல் உதாரணத்திற்கு ஒத்த ஆதாரங்களை உருவாக்க, முதலில் நாம் தொகுதிகளை துவக்கி தொகுதி ஆதாரங்களை உருவாக்குவோம் திட்டம்_பயனர்பின்னர் எல்லாவற்றையும் உருவாக்குதல்:

$ 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

ஓபன்ஸ்டாக் மேக்னம் கூறு மூலம் குபெர்னெட்ஸ் கிளஸ்டர்களின் உருவாக்கம் மற்றும் நிர்வாகத்தை மாற்றுவோம். எங்களில் ஒன்றில் ஒரு கிளஸ்டருடன் எவ்வாறு வேலை செய்வது என்பது பற்றி மேலும் அறியலாம் முந்தைய கட்டுரைகள்அத்துடன் அறிவு சார்ந்த.

கிளஸ்டரைத் தயாரிக்கும் போது, ​​வட்டுகள் மற்றும் மெய்நிகர் இயந்திரங்கள் உருவாக்கப்பட்டு தேவையான அனைத்து கூறுகளும் நிறுவப்படும். தயாரிப்பு சுமார் 4 நிமிடங்கள் ஆகும், அந்த நேரத்தில் Terraform போன்ற செய்திகளைக் காண்பிக்கும்:

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

நிறுவல் முடிந்ததும், டெர்ராஃபார்ம் கிளஸ்டர் தயாராக இருப்பதைக் குறிக்கும் மற்றும் அதன் ஐடியைக் காண்பிக்கும்:

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

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

உருவாக்கப்பட்ட Kubernetes கிளஸ்டரை பயன்பாட்டின் மூலம் நிர்வகிக்க kubectl நீங்கள் கிளஸ்டர் அணுகல் கோப்பைப் பெற வேண்டும். இதைச் செய்ய, உங்கள் கணக்கில் உள்ள திட்டங்களின் பட்டியலில் Terraform மூலம் உருவாக்கப்பட்ட திட்டத்திற்குச் செல்லவும்:

Terraform வழங்குநர் Selectel

அடுத்து, போன்ற இணைப்பைப் பின்தொடரவும் xxxxxx.selvpc.ruதிட்டத்தின் பெயருக்கு கீழே தோன்றும்:

Terraform வழங்குநர் Selectel

உள்நுழைவுத் தகவலுக்கு, Terraform மூலம் நீங்கள் உருவாக்கிய பயனர்பெயர் மற்றும் கடவுச்சொல்லைப் பயன்படுத்தவும். நீங்கள் ஏமாற்றவில்லை என்றால் vars.tf அல்லது main.tf எங்கள் உதாரணத்திற்கு, பயனருக்கு பெயர் இருக்கும் tf_user. நீங்கள் மாறியின் மதிப்பை கடவுச்சொல்லாகப் பயன்படுத்த வேண்டும் TF_VAR_user_password, இது தொடக்கத்தில் குறிப்பிடப்பட்டது டெராஃபார்ம் பொருந்தும் முந்தைய.

திட்டத்தின் உள்ளே நீங்கள் தாவலுக்குச் செல்ல வேண்டும் Kubernetes:

Terraform வழங்குநர் Selectel

டெர்ராஃபார்ம் மூலம் உருவாக்கப்பட்ட கிளஸ்டர் இங்குதான் அமைந்துள்ளது. இதற்கான கோப்பைப் பதிவிறக்கவும் kubectl "அணுகல்" தாவலில் நீங்கள் செய்யலாம்:

Terraform வழங்குநர் Selectel

நிறுவல் வழிமுறைகள் அதே தாவலில் அமைந்துள்ளன. kubectl மற்றும் பதிவிறக்கம் செய்யப்பட்ட பயன்பாடு config.yaml.

தொடங்கப்பட்ட பிறகு kubectl மற்றும் சுற்றுச்சூழல் மாறியை அமைக்கிறது குபெகான்ஃபிக் நீங்கள் 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

டெர்ராஃபார்ம் மூலம் கிளஸ்டர் முனைகளின் எண்ணிக்கையை எளிதாக மாற்றலாம்.
கோப்பில் 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

மாற்றங்களைப் பயன்படுத்த, முதல் உதாரணத்தைப் போலவே, கட்டளையைப் பயன்படுத்தவும் டெராஃபார்ம் பொருந்தும்:

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

முனைகளின் எண்ணிக்கை மாறும்போது, ​​க்ளஸ்டர் தொடர்ந்து கிடைக்கும். Terraform வழியாக ஒரு முனையைச் சேர்த்த பிறகு, கூடுதல் உள்ளமைவு இல்லாமல் அதைப் பயன்படுத்தலாம்:

$ 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

முடிவுக்கு

இந்த கட்டுரையில் வேலை செய்வதற்கான முக்கிய வழிகளை நாங்கள் அறிந்தோம் "மெய்நிகர் தனியார் மேகம்" Terraform வழியாக. நீங்கள் அதிகாரப்பூர்வ Selectel Terraform வழங்குநரைப் பயன்படுத்தினால் நாங்கள் மகிழ்ச்சியடைவோம்.

Selectel Terraform வழங்குநரில் காணப்படும் ஏதேனும் பிழைகள் மூலம் புகாரளிக்கலாம் கிதுப் சிக்கல்கள்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்