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.
Şunlar için geçerlidir:Azure SQL Veritabanı
Tek bir veritabanı oluşturmak, Azure SQL Veritabanı'nda veritabanı oluşturmak için en hızlı ve en basit seçenektir. Bu hızlı başlangıçta Terraform kullanarak tek bir veritabanının nasıl oluşturulacağı gösterilmektedir.
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.
Bu makalede şunları öğreneceksiniz:
- random_pet kullanarak Azure kaynak grubu adı için rastgele bir değer oluşturun.
- azurerm_resource_group kullanarak bir Azure kaynak grubu oluşturun.
- random_pet kullanarak Azure'da mantıksal sunucu için rastgele bir değer oluşturun.
- random_password kullanarak Azure'da mantıksal sunucu için rastgele bir parola oluşturun.
- azurerm_mssql_server kullanarak Azure'da mantıksal sunucu oluşturma.
- azurerm_mssql_database kullanarak Azure SQL Veritabanı'da veritabanı oluşturun.
Önkoşullar
Not
Veritabanını oluşturduktan sonra bazı yapılandırma seçeneklerini değiştiremezsiniz. Dağıtımdan önce değiştirilebilir yapılandırma referansını inceleyin.
İzinler
Transact-SQL aracılığıyla veritabanları oluşturmak için: CREATE DATABASE izinler gereklidir. Bir veritabanı oluşturmak için oturum açma hesabının şu kişilerden biri olması gerekir: sunucu yöneticisi oturum açma hesabı (Azure SQL Veritabanı mantıksal sunucusu oluşturulduğunda oluşturulan), sunucunun Microsoft Entra yöneticisi veya master içindeki dbmanager veritabanı rolünün bir üyesi. Daha fazla bilgi için bkz. CREATE DATABASE.
Azure portalı, PowerShell, Azure CLI veya REST API aracılığıyla veritabanları oluşturmak için: Katkı Sağlayıcı, SQL DB Katkı Sağlayıcı veya SQL Server Katkı Sağlayıcı Azure RBAC rolü olmak üzere Azure RBAC izinleri gereklidir. Daha fazla bilgi için bkz. Azure RBAC yerleşik rolleri.
Terraform kodunu uygulama
Not
Bu makalenin örnek kodu Azure Terraform GitHub deposunda bulunur. Terraform'un geçerli ve önceki sürümlerinden test sonuçlarını içeren günlük dosyasını görüntüleyebilirsiniz.
Örnek Terraform kodunu test edip çalıştıracağınız bir dizin oluşturun ve bu dizini geçerli dizin yapın.
adlı
providers.tfbir dosya oluşturun ve aşağıdaki kodu ekleyin:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }adlı
main.tfbir dosya oluşturun ve aşağıdaki kodu ekleyin:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_pet" "azurerm_mssql_server_name" { prefix = "sql" } resource "random_password" "admin_password" { count = var.admin_password == null ? 1 : 0 length = 20 special = true min_numeric = 1 min_upper = 1 min_lower = 1 min_special = 1 } locals { admin_password = try(random_password.admin_password[0].result, var.admin_password) } resource "azurerm_mssql_server" "server" { name = random_pet.azurerm_mssql_server_name.id resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location administrator_login = var.admin_username administrator_login_password = local.admin_password version = "12.0" } resource "azurerm_mssql_database" "db" { name = var.sql_db_name server_id = azurerm_mssql_server.server.id }Önemli
Sunucu yöneticisi oturum açma adı alanına kişisel, hassas veya gizli bilgi eklemeyin. Bu alana girilen veriler müşteri verileri olarak kabul edilmez.
adlı
variables.tfbir dosya oluşturun ve aşağıdaki kodu ekleyin:variable "resource_group_location" { type = string description = "Location for all resources." default = "eastus" } variable "resource_group_name_prefix" { type = string description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." default = "rg" } variable "sql_db_name" { type = string description = "The name of the SQL Database." default = "SampleDB" } variable "admin_username" { type = string description = "The administrator username of the SQL logical server." default = "azureadmin" } variable "admin_password" { type = string description = "The administrator password of the SQL logical server." sensitive = true default = null }adlı
outputs.tfbir dosya oluşturun ve aşağıdaki kodu ekleyin:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "sql_server_name" { value = azurerm_mssql_server.server.name } output "admin_password" { sensitive = true value = local.admin_password }
Terraform'u başlatma
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 çalıştırma planı oluşturun
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 çalıştırmaz. 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. parametresinin-outkullanılması, gözden geçirdiğiniz planın tam olarak uygulanan plan olmasını sağlar.
Terraform yürütme planını uygulayın
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. - parametresi için
-outfarklı bir dosya adı belirttiyseniz, çağrısındaterraform applyaynı dosya adını kullanın. - parametresini
-outkullanmadıysanız, parametresiz olarak çağırınterraform apply.
Sonuçları doğrulama
Azure kaynak grubu adını alın.
resource_group_name=$(terraform output -raw resource_group_name)Yeni mantıksal sunucu adını alın.
sql_server_name=$(terraform output -raw sql_server_name)Sunucunuzdaki tüm veritabanlarının adlarını görüntülemek için az sql db list komutunu çalıştırın.
az sql db list \ --resource-group $resource_group_name \ --server $sql_server_name \ --output table
Kaynakları temizleme
Terraform aracılığıyla oluşturulan kaynaklara artık ihtiyacınız kalmadığında aşağıdaki adımları uygulayın:
terraform plan çalıştırın ve
destroybayrağını belirtin.terraform plan -destroy -out main.destroy.tfplanÖnemli noktalar:
-
terraform plankomutu bir yürütme planı oluşturur, ancak bunu çalıştırmaz. 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. parametresinin-outkullanı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