Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Terraform , bulut altyapısının tanımlanmasını, önizlemesini ve dağıtımını sağlar. Terraform kullanarak HCL söz dizimlerini kullanarak yapılandırma dosyaları oluşturursunuz. HCL söz dizimi, Azure gibi bulut sağlayıcısını ve bulut altyapınızı oluşturan öğeleri belirtmenize olanak tanır. Yapılandırma dosyalarınızı oluşturduktan sonra, altyapı değişikliklerinizin dağıtılmadan önce önizlemesini görüntülemenizi sağlayan bir yürütme planı oluşturursunuz. Değişiklikleri doğruladıktan sonra, altyapıyı dağıtmak için yürütme planını uygularsınız.
Azure kaynakları üzerinde kesinlikçi ve durum değiştiren işlemler gerçekleştirmek için azapi_resource_action'i yönetilen bir Terraform kaynağı olarak kullanın. Bu örnekte bir Azure depolama hesabı oluşturup erişim anahtarlarını döndürebilirsiniz.
azapi_resource_action iki kullanım formu vardır:
-
Kaynak: Durum değiştiren bir işlem
terraform applysırasında gerçekleştirir. Terraform işlemi durumunu izler ve isteğe bağlı olarakterraform destroyüzerinde geri alabilir. - Veri kaynağı: Planlama sırasında salt okunur bir işlem gerçekleştirir. Bu senaryo için kaynak eylemi veri kaynağı başlangıç kılavuzuna bakın.
Terraform'un standart bir oluşturma/okuma/güncelleştirme/silme yaşam döngüsünü (örneğin, kimlik bilgilerini döndürme, VM başlatma veya durdurma ya da yük devretmeyi tetikleme) temel almadığı bir Azure işlemi gerçekleştirmesi gerektiğinde kaynak formunu kullanın.
- AzureRM sağlayıcısıyla depolama hesabı oluşturma
- Depolama hesabı erişim anahtarını şu şekilde döndürün:
azapi_resource_action
Prerequisites
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Terraform'ı yapılandırma: Henüz yapmadıysanız, aşağıdaki seçeneklerden birini kullanarak Terraform'ı yapılandırın:
Azure portalında bir Microsoft hesabıyla oturum açtığınızda, bu hesabın varsayılan Azure aboneliği kullanılır.
Terraform, varsayılan Azure aboneliğindeki bilgileri kullanarak otomatik olarak kimlik doğrulaması yapar.
Geçerli Microsoft hesabını ve Azure aboneliğini doğrulamak için az account show komutunu çalıştırın.
az account show
Terraform aracılığıyla yaptığınız tüm değişiklikler, görüntülenen Azure aboneliğinde yer alır. İstediğiniz buysa, bu makalenin geri kalanını atlayın.
Terraform kodunu uygulama
Örnek Terraform kodunu test etmek için bir dizin oluşturun ve bu dizini geçerli dizin olarak ayarlayın.
providers.tfadlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:terraform { required_providers { azapi = { source = "Azure/azapi" version = "~> 2.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } random = { source = "hashicorp/random" version = "~> 3.0" } } } provider "azurerm" { features {} } provider "azapi" {}variables.tfadlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value to create a unique name." } variable "storage_account_name_prefix" { type = string default = "st" description = "Prefix of the storage account name that's combined with a random value to create a unique name." }main.tfadlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "random_string" "storage_suffix" { length = 8 upper = false special = false } resource "azurerm_resource_group" "example" { location = var.resource_group_location name = random_pet.rg_name.id } resource "azurerm_storage_account" "example" { name = "${var.storage_account_name_prefix}${random_string.storage_suffix.result}" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location account_tier = "Standard" account_replication_type = "LRS" } resource "azapi_resource_action" "regenerate_key" { type = "Microsoft.Storage/storageAccounts@2023-01-01" resource_id = azurerm_storage_account.example.id action = "regenerateKey" method = "POST" body = { keyName = "key1" } }Kaynak olarak kullanmayla
azapi_resource_actionilgili önemli noktalar:-
actionalanı, gerçekleştirilecek ARM işlemini belirtir. Depolama hesabı anahtarı döndürme için kullanınregenerateKey. -
methodalanı HTTP yöntemini belirtir. Çoğu zorunlu eylemPOSTkullanır. -
bodyözniteliği verileri eyleme geçirir. Anahtar yeniden oluşturma için hangi anahtarın (key1veyakey2) döndürüleceğini belirtin. - Eylem,
terraform applysırasında gerçekleştirilir ve Terraform durumunda saklanır.
-
outputs.tfadlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:output "resource_group_name" { value = azurerm_resource_group.example.name } output "storage_account_name" { value = azurerm_storage_account.example.name }
Terraform dağıtımını başlatmak için terraform init komutunu çalıştırın. Bu komut, Azure kaynaklarınızı yönetmek için gereken Azure sağlayıcısını indirir.
terraform init -upgrade
Önemli noktalar:
-
-upgradeparametresi, gerekli sağlayıcı eklentilerini yapılandırmanın sürüm kısıtlamalarına uygun en yeni sürüme yükseltir.
Terraform planını çalıştırarak yürütme planı oluşturun.
terraform plan -out main.tfplan
Önemli noktalar:
-
terraform plankomutu bir yürütme planı oluşturur, ancak onu yürütmez. Bunun yerine, yapılandırma dosyalarınızda 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 beklentilerinizle eşleşip eşleşmediğini doğrulamanızı sağlar. - İsteğe bağlı
-outparametresi, plan için bir çıkış dosyası belirtmenize olanak tanır.-outparametresinin kullanılması, gözden geçirdiğiniz planın tam olarak uygulanan plan olmasını sağlar.
Yürütme planını bulut altyapınıza uygulamak için terraform apply komutunu çalıştırın.
terraform apply main.tfplan
Önemli noktalar:
- Örnek
terraform applykomutu, daha önceterraform plan -out main.tfplankomutunu çalıştırdığınızı varsayar. -
-outparametresi için farklı bir dosya adı belirttiyseniz,terraform applyçağrısında aynı dosya adını kullanın. - parametresini
-outkullanmadıysanız, parametresiz olarak çağırınterraform apply.
Sonuçları doğrulama
İşlem tamamlandıktan sonra terraform apply depolama hesabı anahtarı döndürülür. Azure depolama hesabı anahtarlarını denetleyerek anahtar döndürmeyi doğrulayabilirsiniz.
az storage account keys list komutunu çalıştırarak depolama hesabı anahtarlarını görüntüleyin.
az storage account keys list \
--resource-group <resource_group_name> \
--account-name <storage_account_name>
value alanında geçerli anahtar gösterilir.
Diğer kaynak eylemlerine örnekler
azapi_resource_action kaynağı birçok Azure işlemiyle çalışır. Yaygın örnekler şunlardır:
-
Sanal Makineler:
deallocate,start,restart,powerOff,reimage - Anahtar Kasaları: (geçici olarak silinen kasalar için),
purge(yönetilen anahtarlar için) -
Uygulama Hizmetleri:
swap(dağıtım yuvaları için),restart -
Veritabanları:
failover,promote - Hesaplama kaynakları: Bir kaynak oluşturmadan veya yok etmeden mevcut durumu değiştiren ve Azure REST API'si tarafından sunulan tüm işlemler
Kaynakları temizle
Terraform aracılığıyla oluşturulan kaynaklara artık ihtiyacınız kalmadığında aşağıdaki adımları uygulayın:
terraform plan komutunu çalıştırın ve
destroybayrağını belirleyin.terraform plan -destroy -out main.destroy.tfplanÖnemli noktalar:
-
terraform plankomutu bir yürütme planı oluşturur, ancak onu yürütmez. Bunun yerine, yapılandırma dosyalarınızda 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 beklentilerinizle eşleşip eşleşmediğini doğrulamanızı sağlar. - İsteğe bağlı
-outparametresi, plan için bir çıkış dosyası belirtmenize olanak tanır.-outparametresinin kullanılması, gözden geçirdiğiniz planın tam olarak uygulanan plan olmasını sağlar.
-
Yürütme planını uygulamak için terraform apply komutunu çalıştırın.
terraform apply main.destroy.tfplan
Azure'da Terraform sorunlarını giderme
Azure'da Terraform kullanırken karşılaşılan yaygın sorunları giderme