Terraform ile nasıl örnek vApp içersinde birden fazla parallel sanal sunucu oluşturabilirim

Kullanacağımız vcd terraform kaynak tipini vcd_vm yerine vcd_vapp_vm olarak gücelleyip hangi vApp içersine atayacağımızı belirtmemiz gerekiyor.

Bu makalede aynı zamanda terraform'un count meta argümanı kullanarak birden fazla sanal sunucu nasıl oluşturulabilir gösterilmiştir.

Terraform parallelism destekleyen bir araç ve varsayılı apply komutu 10'a kadar paralel evrende işlem yapabilir :D

Yine mantıksal olarak vApp içersinde açılan sanal sunucuları ayrı değerlendirmek için vapp_vm.tf  adında bir dosya oluşturun ve aşağıdaki kodu ekleyin.

ubuntu@terraformubuntu:~/vcd_lina_tenant$ tree
.
├── networks.tf
├── standalonvm.tf
├── terraform.tfstate
├── terraform.tfstate.backup
├── vapp_vm.tf
├── vapps.tf
├── variables.tf
└── version.tf

Görebileceğiniz gibi birkaç ek parametre ve isim değişikliği dışında Standalone sanal sunucu oluşturmak ile aynı kod'a sahip

#vApp içersinde sanal sunucu oluşturalim
#https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/vapp_vm

    resource "vcd_vapp_vm" "DBServer-1"{

#Birden fazla sunucu olusturmak icin, count parametresini ekliyoruz
#https://jeffbrown.tech/terraform-count-foreach/
#https://www.terraform.io/docs/language/meta-arguments/count.html
      count = 3

      name="DBServer-${count.index}"
      computer_name="DB-1"
      description="TestStandaloneSanalSunucu"

# vapp name pls :D

      vapp_name="dbserversgroup"

#DorukCloud'da musterilerin hizli kurulum yapmalari için paylastirilmis kataloglardan biri ve o katalogdaki imajin adi verilmis

      catalog_name="Doruknet-Linux-Templates"
      template_name="vCD-Centos7-Minimal-Template"
      cpus=2
      memory=2048

#Zorunlu olmayan bir k/v fakat ozellikle sanal sunucularinizi kapatip acmaya gerek kalmadan ram/cpu eklemek icin kullanabilirsiniz

      cpu_hot_add_enabled=true
      memory_hot_add_enabled=true
      power_on=true

#Storage profile verilmesi zorunlu degil fakat birden fazla storage profile atanmis musteriler icin secimin nasil
#yapilabilecegini gostermek amaciyla eklenmistir.

      storage_profile="AllFlash7200-B-DSC-01"

#Sanal sunucuyu baglayacagimiz networku belirtin
#Asagida daha once terraform ile olusturulmus olan databasenetwork kaynaginda belirtilmis networke baglanacagimizi belirtiyoruz
#name burada birdegisken olarak geliyor ve DBNetwork1'i isaret ediyor...

    network{
      name=vcd_network_routed_v2.databasenetwork.name
      type="org"
      ip_allocation_mode="POOL"
    }

#Ozellestirme ise daha cok windows'lardaki sysprep gibi dersek bir cagirism yapabilir
#Burada kurmak istediğimiz Centos'un sifresinin otomatik atanmasini istiyoruz

    customization{
      enabled=true
      allow_local_admin_password=true
      auto_generate_password=true
    }

#Sunucu ile ilgili tag'lamanız gereken bilgiler var ise belirtebilirsiniz

    metadata={
      role="web"
      env="staging"
      version="v1"
      my_key="myvalue"
    }

}

İlgili komutu çalıştırdığımızda görebileceğiniz gibi plan 3 adet kaynak oluşturacağınızı belirtiyor, count değişkeninde belirttiğimiz gibi

ubuntu@terraformubuntu:~/vcd_lina_tenant$ terraform plan

Plan: 3 to add, 0 to change, 0 to destroy.

Uygulayalım, ilgili komutu çalıştırdığınızda göreceksiniz 3 adet sanal sunucu oluşturma aynı anda başlayacak.

ubuntu@terraformubuntu:~/vcd_lina_tenant$ terraform apply

vcd_vapp_vm.DBServer-1[2]: Creating...
vcd_vapp_vm.DBServer-1[0]: Creating...
vcd_vapp_vm.DBServer-1[1]: Creating...


Not :
Örnek olarak verilen kod parçacıkları, değişkenler, UI üzerinde görülen isimler ve dosya isimleri çeşitli makalelerde değişiklik gösterebilir, tüm kod parçacıklarının son hali için github adresine bakabilirsiniz.


Geri bildirim

Bu makaleyle ilgili bir sorun bulursanız ve/veya hizmetlerimizden herhangi birini nasıl iyileştirebileceğimize dair bir fikriniz varsa, info@doruk.net adresine bir e-posta gönderin.

 

 

Bu cevap yeterince yardımcı oldu mu? 0 Bu dökümanı faydalı bulan kullanıcılar: (0 Oy)