Terraform kullanarak Azure VM kümesini yapılandırma
Bu makalede Azure'da VM kümesi oluşturmak için örnek Terraform kodu yer alır.
Bu makalede şunları öğreneceksiniz:
- Azure VM kümesi yapılandırma
1. Ortamınızı yapılandırma
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Terraform'yi yapılandırma: Henüz bunu yapmamışsanız, aşağıdaki seçeneklerden birini kullanarak Terraform'ı yapılandırabilirsiniz:
2. Kodu uygulama
Örnek Terraform kodunu test etmek ve bunu geçerli dizin yapmak için bir dizin oluşturun.
adlı bir dosya
main.tfoluşturun ve aşağıdaki kodu girin:module "windowsservers" { source = "Azure/compute/azurerm" resource_group_name = azurerm_resource_group.rg.name is_windows_image = true vm_hostname = "mywinvm" // Line can be removed if only one VM module per resource group admin_password = "ComplxP@ssw0rd!" // See note following code about storing passwords in config files vm_os_simple = "WindowsServer" public_ip_dns = ["winsimplevmips"] // Change to a unique name per data center region vnet_subnet_id = module.network.vnet_subnets[0] depends_on = [azurerm_resource_group.rg] } module "network" { source = "Azure/network/azurerm" resource_group_name = azurerm_resource_group.rg.name subnet_prefixes = ["10.0.1.0/24"] subnet_names = ["subnet1"] depends_on = [azurerm_resource_group.rg] } output "windows_vm_public_name" { value = module.windowsservers.public_ip_dns_name } output "vm_public_ip" { value = module.windowsservers.public_ip_address } output "vm_private_ips" { value = module.windowsservers.network_interface_private_ip }Önemli noktalar:
- Yukarıdaki kod örneğinde kolaylık olması için
admin_passworddeğişkenine değişmez değer atanmıştır. Parolalar gibi hassas verileri depolamanın birçok yolu vardır. Verilerinizi nasıl korumak istediğinize ilişkin karar, ortamınızı ve bu verileri ortaya çıkaran konfor düzeyini içeren tek tek seçeneklere iner. Risk örneği olarak, bunun gibi bir dosyayı kaynak denetiminde depolamak, parolanın başkaları tarafından görülebilecek şekilde sonuçlanmasına neden olabilir. Bu konu hakkında daha fazla bilgi için HashiCorp, hassas verileri yönetmeye (parolalar gibi) ilişkin giriş değişkenlerini ve tekniklerini tanımlamanın çeşitli yollarını belgelemektedir.
- Yukarıdaki kod örneğinde kolaylık olması için
3. Terraform'ü başlatma
Terraform dağıtımını başlatmak için terraform init'i çalıştırın.
terraform init
Önemli noktalar:
- Bu komut, bir Azure kaynak grubu oluşturmak için gereken Azure modüllerini indirir.
4. Terraform yürütme planı oluşturma
Terraform planını çalıştırarak bir yürütme planı oluşturun.
terraform plan -out main.tfplan
Önemli noktalar:
- Komut
terraform planbir yürütme planı oluşturur ancak yürütmez. Bunun yerine, yapılandırma dosyalarında belirtilen yapılandırmayı oluşturmak için hangi eylemlerin gerekli olduğunu belirler. Bu düzen, gerçek kaynaklarda değişiklik yapmadan önce yürütme planının beklentilerinize uygun olup olmadığını doğrulamanıza olanak sağlar. - İsteğe
-outbağlı parametresi, plan için bir çıkış dosyası belirtmenize olanak sağlar. parametresini-outkullanmak, gözden geçiren planın tam olarak uygulandığını garantiler. - Yürütme planlarını ve güvenliği kalıcı hale uygulama hakkında daha fazla bilgi için güvenlik uyarısı bölümüne bakın.
5. Terraform yürütme planı uygulama
Yürütme planını bulut altyapınıza uygulamak için terraform apply'i çalıştırın.
terraform apply main.tfplan
Önemli noktalar:
- Yukarıdaki
terraform applykomut daha önce komutunun olduğunu varsayıyor.terraform plan -out main.tfplan - parametresi için farklı bir dosya adı
-outbelirttiyebilirsiniz, çağrısında aynı dosya adınıterraform applykullanın. - parametresini
-outkullanmadıysanız herhangi bir parametreterraform applyolmadan çağrısı yapmanız gerekir.
Azure'da Terraform sorunlarını giderme
Azure'da Terraform kullanırken karşılaşılan yaygın sorunları giderme