Cara mengelola Zona DNS menggunakan PowerShell
Artikel ini memperlihatkan kepada Anda cara mengelola zona DNS Anda dengan menggunakan Azure PowerShell. Anda juga dapat mengelola zona DNS Anda menggunakan Azure CLI lintas platform atau portal Microsoft Azure.
Panduan ini secara khusus berhubungan dengan zona DNS Publik. Untuk informasi tentang menggunakan Azure PowerShell untuk mengelola Zona Privat di Azure DNS, lihat Mulai dengan Zona Privat Azure DNS menggunakan Azure PowerShell.
Zona DNS digunakan untuk menghosting rekaman DNS untuk domain tertentu. Untuk mulai menghosting domain Anda di Azure DNS, Anda perlu membuat zona DNS untuk nama domain tersebut. Setiap rekaman DNS untuk domain Anda kemudian dibuat di dalam zona DNS ini.
Misalnya, domain 'contoso.com' mungkin berisi beberapa data DNS seperti 'mail.contoso.com' (untuk server email) dan 'www.contoso.com' (untuk situs web).
Saat membuat zona DNS di Azure DNS:
- Nama zona harus unik dalam grup sumber daya, dan zona harus belum ada. Jika tidak, operasi akan gagal.
- Nama zona yang sama dapat digunakan kembali dalam grup sumber daya yang berbeda atau langganan Azure yang berbeda.
- Jika beberapa zona memiliki nama yang sama, setiap instans diberi alamat server nama yang berbeda. Hanya satu set alamat yang dapat dikonfigurasi dengan pendaftar nama domain.
Catatan
Anda tidak harus memiliki nama domain untuk membuat zona DNS dengan nama domain tersebut di Azure DNS. Namun, Anda perlu memiliki domain untuk mengonfigurasi server nama Azure DNS sebagai server nama yang benar untuk nama domain dengan pendaftar nama domain.
Untuk informasi lebih lanjut, lihat Mendelegasikan domain ke Azure DNS.
Menyiapkan Azure PowerShell untuk Azure DNS
Sebelum Anda mulai
Penting
Untuk menggunakan fitur Azure ini dari PowerShell wajib menginstal modul AzureRM
. Ini adalah modul lama yang hanya tersedia untuk Windows PowerShell 5.1 yang tidak lagi mendapatkan fitur baru.
Modul Az
dan AzureRM
tidak kompatibel ketika diinstal untuk versi PowerShell yang sama.
Jika Anda memerlukan kedua versi:
- Hapus instalan modul Az dari sesi PowerShell 5.1.
- Instal modul AzureRM dari sesi PowerShell 5.1.
- Unduh dan instal PowerShell Core 6.x atau yang lebih baru.
- Instal modul Az dalam sesi PowerShell Core.
Verifikasi bahwa Anda memiliki item berikut sebelum memulai konfigurasi Anda.
- Langganan Azure. Jika Anda belum memiliki langganan Azure, Anda dapat mengaktifkan manfaat pelanggan MSDN atau mendaftar untuk akun gratis.
- Anda perlu menginstal versi terbaru cmdlet Azure Resource Manager PowerShell. Untuk informasi selengkapnya, lihat Cara menginstal dan mengonfigurasi Azure PowerShell.
Masuk ke akun Azure Anda
Buka konsol PowerShell Anda dan sambungkan ke akun Anda. Untuk informasi selengkapnya, lihat Masuk dengan Azure PowerShell.
Connect-AzAccount
Pilih langganan
Periksa langganan untuk akun tersebut.
Get-AzSubscription
Pilih langganan Azure mana yang akan digunakan.
Select-AzSubscription -SubscriptionName "your_subscription_name"
Buat grup sumber daya
Azure Resource Manager mengharuskan semua grup sumber daya menentukan lokasi. Lokasi ini digunakan sebagai lokasi default untuk sumber daya di grup sumber daya tersebut. Namun, karena semua sumber daya DNS global, bukan regional, pilihan lokasi grup sumber daya tidak berdampak pada Azure DNS.
Anda bisa melewati langkah ini jika Anda menggunakan grup sumber daya yang ada.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
Membuat zona DNS
Zona DNS dibuat dengan menggunakan New-AzDnsZone
cmdlet.
Contoh berikut membuat zona DNS yang disebut contoso.com di grup sumber daya bernama MyDNSResourceGroup:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Contoh berikut menunjukkan cara membuat zona DNS dengan dua tag Azure Resource Manager, project = demo dan env = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Dapatkan zona DNS
Untuk mengambil zona DNS, gunakan Get-AzDnsZone
cmdlet. Operasi ini mengembalikan objek zona DNS yang terkait dengan zona yang sudah ada di Azure DNS. Objek berisi data tentang zona (seperti jumlah kumpulan catatan), tetapi tidak berisi kumpulan catatan itu sendiri (lihat 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
Daftar zona DNS
Dengan menghilangkan nama zona dari Get-AzDnsZone
, Anda dapat menghitung semua zona dalam grup sumber daya. Operasi ini mengembalikan array objek zona.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
Dengan menghilangkan nama zona dan nama grup sumber daya Get-AzDnsZone
dari, Anda dapat menghitung semua zona dalam langganan Azure.
$zoneList = Get-AzDnsZone
$zoneList
Perbarui zona DNS
Perubahan pada sumber daya zona DNS dapat dilakukan menggunakan Set-AzDnsZone
. Cmdlet ini tidak memperbarui kumpulan catatan DNS apa pun di dalam zona (lihat Cara Mengelola Catatan DNS). Ini hanya digunakan untuk memperbarui properti sumber daya zona itu sendiri. Properti zona bisa tulis saat ini terbatas pada 'tag' Azure Resource Manager untuk sumber daya zona.
Gunakan salah satu dari dua cara berikut ini untuk memperbarui zona DNS:
Tentukan zona menggunakan nama zona dan grup sumber daya
Pendekatan ini menggantikan tag zona yang ada dengan nilai yang ditentukan.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Tentukan zona menggunakan objek $zone
Pendekatan ini mengambil objek zona yang ada, memodifikasi tag, lalu melakukan perubahan. Dengan cara ini, tag yang ada dapat dipertahankan.
# 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
Saat Anda menggunakan Set-AzDnsZone
dengan objek $zone, pemeriksaan Etag digunakan untuk memastikan perubahan bersamaan tidak ditimpa. Anda dapat menggunakan tombol -Overwrite
opsional untuk menekan pemeriksaan ini.
Hapus zona DNS
Zona DNS dapat dihapus menggunakan Remove-AzDnsZone
cmdlet.
Catatan
Menghapus zona DNS juga menghapus semua catatan DNS di dalam zona tersebut. Tindakan ini tidak dapat dibatalkan. Jika zona DNS sedang digunakan, layanan yang menggunakan zona tersebut akan gagal saat zona dihapus.
Untuk melindungi dari penghapusan zona yang tidak disengaja, lihat Cara melindungi zona dan catatan DNS.
Gunakan salah satu dari dua cara berikut ini untuk menghapus zona DNS:
Tentukan zona menggunakan nama dari zona dan grup sumber daya
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Tentukan zona menggunakan objek $zone
Anda dapat menentukan zona yang akan dihapus menggunakan $zone
objek yang dikembalikan oleh Get-AzDnsZone
.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
Objek zona juga dapat disalurkan alih-alih diteruskan sebagai parameter:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
Seperti halnya Set-AzDnsZone
, menentukan zona menggunakan $zone
objek yang memungkinkan pemeriksaan Etag untuk memastikan perubahan serentaknya tidak dihapus. Gunakan -Overwrite
tombol untuk menekan pemeriksaan ini.
Permintaan konfirmasi
Cmdlet New-AzDnsZone
, Set-AzDnsZone
, dan Remove-AzDnsZone
semua permintaan konfirmasi dukungan.
Baik New-AzDnsZone
dan Set-AzDnsZone
meminta untuk konfirmasi jika variabel $ConfirmPreference
preferensi PowerShell memiliki nilai Medium
atau lebih rendah. Karena dampak yang berpotensi tinggi untuk menghapus zona DNS, Remove-AzDnsZone
cmdlet meminta konfirmasi jika $ConfirmPreference
variabel PowerShell memiliki nilai selain None
.
Karena nilai default untuk $ConfirmPreference
adalah High
, hanya Remove-AzDnsZone
permintaan untuk konfirmasi secara default.
Anda dapat ambil alih setelan $ConfirmPreference
saat ini menggunakan -Confirm
parameter. Jika Anda menentukan -Confirm
atau -Confirm:$True
, cmdlet akan meminta konfirmasi sebelum dijalankan. Jika Anda menentukan -Confirm:$False
, cmdlet tidak meminta Anda untuk konfirmasi.
Untuk informasi selengkapnya tentang -Confirm
dan $ConfirmPreference
, lihat Tentang Variabel Preferensi.
Langkah berikutnya
Pelajari cara mengelola rangkaian data dan data di zona DNS Anda.
Pelajari cara mendelegasikan domain Anda ke Azure DNS.
Tinjau Dokumentasi referensi PowerShell Azure DNS.