Aracılığıyla paylaş


PowerShell kullanarak DNS Bölgelerini yönetme

Bu makalede, Azure PowerShell kullanarak DNS bölgelerinizi yönetme adımları gösterilmektedir. Dns bölgelerinizi platformlar arası Azure CLI veya Azure portal kullanarak da yönetebilirsiniz.

Bu kılavuz özellikle Genel DNS bölgeleriyle ilgilidir. Azure DNS'de Özel Bölgeleri yönetmek için Azure PowerShell kullanma hakkında bilgi için bkz. Azure PowerShell kullanarak Azure DNS Özel Bölgelerini kullanmaya başlama.

DNS bölgesi, belirli bir etki alanına ait DNS kayıtlarını barındırmak için kullanılır. Etki alanınızı Azure DNS'de barındırmaya başlamak için bir DNS bölgesi oluşturmanız gerekir. Ardından bu DNS bölgesinde etki alanınız için tüm DNS kayıtları oluşturulur.

Örneğin "contoso.com" etki alanı, "mail.contoso.com" (bir posta sunucusu için) ve "www.contoso.com" (bir web sitesi için) gibi birden fazla DNS kaydını içerebilir.

Azure DNS'de bir DNS bölgesi oluştururken:

  • Bölge adı kaynak grubunda benzersiz olmalıdır ve bölge daha önceden var olmamalıdır. Aksi takdirde işlem başarısız olur.
  • Aynı bölge adı farklı bir kaynak grubunda veya farklı bir Azure aboneliğinde yeniden kullanılabilir.
  • Birden fazla bölgenin aynı adı paylaştığı durumda her örneğe farklı bir ad sunucusu adresi atanır. Etki alanı kayıt şirketinde yalnızca bir adres kümesi yapılandırılabilir.

Not

Azure DNS'de aynı etki alanıyla DNS bölgesi oluşturmak için bir etki alanına sahip değilsiniz. Ancak Azure DNS ad sunucularını etki alanı kayıt şirketinde etki alanı adı için doğru ad sunucuları olarak yapılandırmak üzere etki alanının sahibi olmanız gerekmez.

Daha fazla bilgi için bkz. Bir etki alanını Azure DNS'ye devretme.

Azure DNS için Azure PowerShell ayarlama

Başlamadan önce

Önemli

PowerShell'in bu Azure özelliğini kullanmak için modülün AzureRM yüklü olması gerekir. Bu, yalnızca Windows PowerShell 5.1 için artık yeni özellikler almayan eski bir modüldür. Ve modülleri, PowerShell'in Az aynı sürümleri için yüklendiğinde uyumlu değildir.AzureRM Her iki sürüme de ihtiyacınız varsa:

  1. Az modülünü PowerShell 5.1 oturumundan kaldırın.
  2. PowerShell 5.1 oturumundan AzureRM modülünü yükleyin.
  3. PowerShell Core 6.x veya üzerini indirip yükleyin.
  4. Az modülünü bir PowerShell Core oturumuna yükleyin.

Yapılandırmanıza başlamadan önce aşağıdaki öğelerin bulunduğunu doğrulayın.

Azure hesabınızda oturum açma

PowerShell konsolunuzu açın ve hesabınıza bağlanın. Daha fazla bilgi için bkz. Azure PowerShell ile oturum açma.

Connect-AzAccount

Aboneliği seçme

Hesapla ilişkili abonelikleri kontrol edin.

Get-AzSubscription

Hangi Azure aboneliğinizin kullanılacağını seçin.

Select-AzSubscription -SubscriptionName "your_subscription_name"

Kaynak grubu oluşturma

Azure Resource Manager, tüm kaynak gruplarının bir konum belirtmesini gerektirir. Bu konum, kaynak grubundaki kaynaklar için varsayılan konum olarak kullanılır. Ancak tüm DNS kaynakları bölgesel değil de global olduğundan, kaynak grubu konumu seçiminin Azure DNS üzerinde hiçbir etkisi yoktur.

Var olan bir kaynak grubunu kullanıyorsanız bu adımı atlayabilirsiniz.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

DNS bölgesi oluşturma

DNS bölgesi, New-AzDnsZone cmdlet’i kullanılarak oluşturulur.

Aşağıdaki örnek, MyDNSResourceGroup adlı kaynak grubunda contoso.com adlı bir DNS bölgesi oluşturur:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Aşağıdaki örnekte, project = demo ve env = test olmak üzere iki Azure Resource Manager etiketine sahip bir DNS bölgesi oluşturma adımları gösterilmektedir:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

DNS bölgesi alma

DNS bölgesini almak için cmdlet'ini Get-AzDnsZone kullanın. Bu işlem, Azure DNS'de var olan bir bölgeye karşılık gelen bir DNS bölgesi nesnesi döndürür. nesnesi bölgeyle ilgili verileri (kayıt kümelerinin sayısı gibi) içerir, ancak kayıt kümelerini içermez (bkz Get-AzDnsRecordSet. ).

Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

DNS bölgelerini listeleme

Get-AzDnsZone içinden bölge adını atarak bir kaynak grubundaki tüm bölgeleri numaralandırabilirsiniz. Bu işlem, bölge nesnelerinin bir dizisini döndürür.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

Get-AzDnsZone içinden hem bölge adını hem de kaynak grubunu atarak, Azure aboneliğindeki tüm bölgeleri numaralandırabilirsiniz.

$zoneList = Get-AzDnsZone
$zoneList

DNS bölgesini güncelleştirme

Set-AzDnsZone kullanılarak bir DNS bölgesi kaynağı üzerinde değişiklikler yapılabilir. Bu cmdlet, bölge içindeki DNS kayıt kümelerinden hiçbirini güncelleştirmez (bkz. DNS kayıtlarını yönetme). Yalnızca bölge kaynağının özelliklerini güncelleştirmek için kullanılır. Yazılabilir bölge özellikleri şu anda bölge kaynağı için Azure Resource Manager 'etiketler' ile sınırlıdır.

DNS bölgesini güncelleştirmek için aşağıdaki iki yoldan birini kullanın:

Bölge adını ve kaynak grubunu kullanarak bölgeyi belirtin

Bu yaklaşım, mevcut bölge etiketlerini belirtilen değerlerle değiştirir.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

$zone nesnesini kullanarak bölgeyi belirtin

Bu yaklaşım mevcut bölge nesnesini alır, etiketleri değiştirir ve sonra değişiklikleri işler. Bu şekilde mevcut etiketler korunabilir.

# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzDnsZone -Zone $zone

bir $zone nesnesiyle kullandığınızda Set-AzDnsZone , eş zamanlı değişikliklerin üzerine yazılmamasını sağlamak için Etag denetimleri kullanılır. Bu denetimleri engellemek için isteğe bağlı -Overwrite anahtarı kullanabilirsiniz.

DNS Bölgesini silme

DNS bölgeleri cmdlet'i Remove-AzDnsZone kullanılarak silinebilir.

Not

Bir DNS bölgesi silindiğinde, bölge içindeki tüm DNS kayıtları da silinir. Bu işlem geri alınamaz. DNS bölgesi kullanımdaysa, bölge silindiğinde bölgeyi kullanan hizmetler başarısız olur.

Bölgenin yanlışlıkla silinmesine karşı koruma oluşturmak için bkz. DNS bölgelerini ve kayıtlarını koruma.

DNS bölgesini silmek için aşağıdaki iki yöntemden birini uygulayın:

Bölge adını ve kaynak grubu adını kullanarak bölgeyi belirtin

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

$zone nesnesini kullanarak bölgeyi belirtin

Get-AzDnsZone tarafından döndürülen bir $zone nesnesini kullanarak silinecek bölgeyi belirtebilirsiniz.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

Bölge nesnesi, parametre olarak geçirilmek yerine yöneltilebilir:

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

'de Set-AzDnsZoneolduğu gibi, bir nesne kullanarak $zone bölgeyi belirtmek, eş zamanlı değişikliklerin silinmediğinden emin olmak için Etag denetimlerini etkinleştirir. -Overwrite Bu denetimleri engellemek için anahtarını kullanın.

Onay istemleri

New-AzDnsZone, Set-AzDnsZone ve Remove-AzDnsZone cmdlet’lerinin tamamı onay istemlerini destekler.

$ConfirmPreference PowerShell tercih değişkeni, Medium veya daha küçük bir değere sahipse hem New-AzDnsZone hem de Set-AzDnsZone onay istemi görüntüler. DNS bölgesinin silinmesi istenmeyen koşullara neden olabileceğinden, Remove-AzDnsZone PowerShell değişkeninin $ConfirmPreference dışında Nonebir değeri varsa cmdlet onay ister.

$ConfirmPreference için varsayılan değer High olduğundan yalnızca Remove-AzDnsZone varsayılan olarak onay istemi görüntüler.

-Confirm parametresini kullanarak geçerli $ConfirmPreference ayarını geçersiz kılabilirsiniz. -Confirm veya -Confirm:$True belirtirseniz cmdlet, çalıştırılmadan önce size onay istemi görüntüler. belirtirseniz -Confirm:$False , cmdlet sizden onay istemez.

-Confirm ve $ConfirmPreference hakkında daha fazla bilgi için bkz. Tercih Değişkenleri Hakkında.

Sonraki adımlar

DNS bölgenizdeki kayıt kümelerini ve kayıtları yönetmeyi öğrenin.
Etki alanınızı Azure DNS'ye devretmeyi öğrenin.
Azure DNS PowerShell başvuru belgelerini gözden geçirin.