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
İzinler
Transact-SQL aracılığıyla veritabanları oluşturmak için: CREATE DATABASE izinler gereklidir. Veritabanı oluşturmak için bir oturum açma bilgisi, içinde dbmanager veritabanı rolünün masterbir üyesi olan sunucunun Microsoft Entra yöneticisi (Azure SQL Veritabanı mantıksal sunucu sağlandığında oluşturulan) sunucu yöneticisi oturum açma bilgisi olmalıdır. 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ırmak ve geçerli dizin yapmak için bir dizin oluşturun.
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 }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 yürütme planı oluşturma
Terraform planını çalıştırarak yürütme planı oluşturun.
terraform plan -out main.tfplan
Önemli noktalar:
- komutu
terraform planbir yürütme planı oluşturur ancak 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. parametresinin-outkullanılması, gözden geçirdiğiniz planın tam olarak uygulanan plan olmasını sağlar.
Terraform yürütme planı uygulama
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 applykomut, daha önce komutunu çalıştırdığınızıterraform plan -out main.tfplanvarsayar. - 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:
- komutu
terraform planbir yürütme planı oluşturur ancak 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. parametresinin-outkullanılması, gözden geçirdiğiniz planın tam olarak uygulanan plan olmasını sağlar.
- komutu
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