كيفية إدارة مناطق DNS باستخدام PowerShell
توضح لك هذه المقالة كيفية إدارة مناطق DNS الخاصة بك باستخدام Azure PowerShell. يمكنك أيضاً إدارة مناطق DNS الخاصة بك باستخدام النظام الأساسي Azure CLI أو مدخل Microsoft Azure.
يتعامل هذا الدليل بشكل خاص مع مناطق DNS العامة. للحصول على معلومات حول استخدام Azure PowerShell لإدارة المناطق الخاصة في Azure DNS، راجع بدء استخدام المناطق الخاصة لـ Azure DNS باستخدام Azure PowerShell.
يتم استخدام منطقة DNS لاستضافة سجلات DNS لمجال معين. لبدء استضافة المجال الخاص بك في Azure DNS، تحتاج إلى إنشاء منطقة DNS لاسم المجال هذا. يتم بعد ذلك إنشاء كل سجل DNS لمجالك داخل منطقة DNS هذه.
على سبيل المثال، قد يحتوي المجال "contoso.com" على العديد من سجلات DNS مثل، "mail.contoso.com" (لخادم البريد) و"www.contoso.com" (لموقع ويب).
عند إنشاء منطقة DNS في Azure DNS:
- يجب أن يكون اسم المنطقة فريداً ضمن مجموعة الموارد، ويجب ألا تكون المنطقة موجودة بالفعل. وإلا، ستفشل العملية.
- يمكن إعادة استخدام نفس اسم المنطقة في مجموعة موارد مختلفة أو اشتراك Azure مختلف.
- حيث تتشارك مناطق متعددة في نفس الاسم، ويعين كل مثيل عناوين خوادم أسماء مختلفة. يمكن تكوين مجموعة واحدة فقط من العناوين باستخدام مسجل اسم المجال.
ملاحظة
ليس لديك الحق في امتلاك اسم مجال لإنشاء منطقة DNS باسم المجال هذا في DNS Azure. ومع ذلك، يجب عليك امتلاك المجال لتكوين خوادم اسم Azure DNS كخوادم الاسم الصحيح لاسم المجال باستخدام مسجل اسم المجال.
للمزيد من المعلومات، راجع تفويض مجال إلى DNS Azure.
أعِدّ Azure PowerShell لنظام أسماء مجالات Azure (Azure DNS)
قبل أن تبدأ
هام
يتطلب استخدام ميزة Azure هذه من PowerShell AzureRM
تثبيت الوحدة النمطية. هذه وحدة نمطية قديمة متوفرة فقط في إصدار ويندوز PowerShell 5.1 التي لم تعد تتلقى ميزات جديدة.
الوحدات Az
وAzureRM
ليستمتوافقة عند تثبيتها لنفس إصدارات PowerShell.
إذا كنت بحاجة إلى كلا الإصدارين:
- قم بإلغاء تثبيت الوحدة النمطية Az من جلسة عمل PowerShell 5.1.
- قم بتثبيت الوحدة النمطيةAzureRM في جلسة عمل PowerShell 5.1.
- قم بتنزيل وتثبيت PowerShell Core 6.x أو أحدث.
- قم بتثبيت الوحدة النمطية Az فى جلسة عمل PowerShell 5.1.
تحقق من أن لديك العناصر التالية قبل بدء الإعداد الخاص بك.
- اشتراك Azure. إذا لم يكن لديك بالفعل اشتراك Azure، فيمكنك تنشيط مزايا اشتراك MSDN أو التسجيل للحصول على حساب مجاني.
- تحتاج إلى تثبيت أحدث إصدار من الأمر Azure Resource Manager PowerShell cmdlets. لمزيد من المعلومات، راجع كيفية تثبيت Azure PowerShell وتكوينه .
قم بتسجيل الدخول إلى حساب Azure الخاص بك
افتح وحدة تحكم PowerShell الخاصة بك واتصل بحسابك. لمزيد من المعلومات، راجع تسجيل الدخول باستخدام Azure PowerShell.
Connect-AzAccount
حدد الاشتراك
تحقق من الاشتراكات الخاصة بالحساب.
Get-AzSubscription
اختر أياً من اشتراكات Azure المراد استخدامها.
Select-AzSubscription -SubscriptionName "your_subscription_name"
إنشاء مجموعة موارد
تتطلب إدارة موارد Azure بأن تقوم كافة مجموعات الموارد بتحديد الموقع. يستخدم هذا الموقع كموقع افتراضي للموارد في مجموعة الموارد المذكورة. ومع ذلك، نظراً لأن جميع موارد DNS عالمية، وليست إقليمية، فإن اختيار موقع مجموعة الموارد ليس له أي تأثير على Azure DNS.
يمكنك تخطي هذه الخطوة إذا كنت تستخدم مجموعة موارد موجودة.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
قم بإنشاء منطقة DNS
يتم إنشاء منطقة DNS باستخدام أمر cmdlet التالي New-AzDnsZone
.
ينشئ المثال التالي منطقة DNS تسمى contoso.com في مجموعة الموارد المسماة MyDNSResourceGroup:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
يوضح المثال التالي كيفية إنشاء منطقة DNS مع علامتي Azure Resource Manager وproject = demo وenv = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
احصل على منطقة DNS
لاسترداد منطقة DNS، استخدم Get-AzDnsZone
cmdlet. تقوم هذه العملية بإرجاع كائن منطقة DNS المطابق لمنطقة موجودة في Azure DNS. يحتوي الكائن على بيانات حول المنطقة (مثل عدد مجموعات السجلات)، لكنه لا يحتوي على مجموعات السجلات نفسها (راجع 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
بحذف اسم المنطقة من Get-AzDnsZone
، يمكنك تعداد كل المناطق في مجموعة موارد. ترجع هذه العملية صفيف كائنات المنطقة.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
بحذف اسم المنطقة واسم مجموعة الموارد من Get-AzDnsZone
، يمكنك تعداد كافة المناطق في اشتراك Azure.
$zoneList = Get-AzDnsZone
$zoneList
حَدِّثْ منطقة DNS
يمكن إجراء تغييرات على مورد منطقة DNS باستخدام Set-AzDnsZone
. لا يقوم أمر cmdlet هذا بتحديث أي من مجموعات سجلات DNS داخل المنطقة (راجع كيفية إدارة سجلات DNS). يتم استخدامه فقط لتحديث خصائص مورد المنطقة نفسه. تقتصر خصائص المنطقة القابلة للكتابة حالياً على "علامات" Azure Resource Manager لمورد المنطقة.
استخدم إحدى الطريقتين التاليتين لتحديث منطقة DNS:
تحديد المنطقة باستخدام اسم المنطقة ومجموعة الموارد
يستبدل هذا الأسلوب علامات المنطقة الحالية بالقيم المحددة.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
تحديد المنطقة باستخدام كائن المنطقة $
يقوم هذا الأسلوب باسترداد كائن المنطقة الموجود، وتعديل العلامات، ثم تنفيذ التغييرات. بهذه الطريقة، يمكن الاحتفاظ بالعلامات الموجودة.
# 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
عند الاستخدام Set-AzDnsZone
مع كائن $zone، يتم استخدام عمليات التحقق من Etag لضمان عدم الكتابة فوق التغييرات المتزامنة. يمكنك استخدام مفتاح -Overwrite
الاختياري لإلغاء عمليات التحقق هذه.
حذف منطقة DNS
يمكن حذف مناطق DNS باستخدام cmdlet المسمى Remove-AzDnsZone
.
ملاحظة
يؤدي حذف منطقة DNS أيضاً إلى حذف جميع سجلات DNS داخل المنطقة. هذه العملية لا يمكن التراجع عنها. إذا كانت منطقة DNS قيد الاستخدام، فسوف تفشل الخدمات التي تستخدمها المنطقة عند حذف المنطقة.
للحماية من الحذف العرضي للمنطقة، راجع كيفية حماية سجلات ومناطق DNS.
استخدم إحدى الطريقتين التاليتين لحذف منطقة DNS:
تحديد المنطقة باستخدام اسم المنطقة واسم مجموعة الموارد
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
تحديد المنطقة باستخدام كائن المنطقة $
يمكنك تحديد المنطقة المراد حذفها باستخدام كائن $zone
الذي تم إرجاعه بواسطةGet-AzDnsZone
.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
يمكن أيضاً توصيل كائن المنطقة بالتدفق بدلاً من تمريره كمعامل:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
كما هو الحال مع Set-AzDnsZone
، يؤدي تحديد المنطقة باستخدام كائن $zone
إلى تمكين عمليات التحقق من Etag لضمان عدم حذف التغييرات المتزامنة. استخدم مفتاح -Overwrite
لإلغاء عمليات التحقق هذه.
مطالبات التأكيد
تدعم أوامر cmdlet التالية New-AzDnsZone
وSet-AzDnsZone
وRemove-AzDnsZone
مطالبات التأكيد جميعها.
يطلب كل من New-AzDnsZone
وSet-AzDnsZone
التأكيد إذا كان متغير تفضيل PowerShell $ConfirmPreference
له قيمة Medium
أو أقل. نظراً لأن حذف منطقة DNS يمكن أن يتسبب في حدوث حالات غير مرغوب فيها، فإن الأمر Remove-AzDnsZone
يطالب بالتأكيد إذا كان $ConfirmPreference
متغير PowerShell له أي قيمة بخلاف None
.
نظراً لأن القيمة الافتراضية لـ $ConfirmPreference
هي High
، فإن Remove-AzDnsZone
فقط تطالب بالتأكيد بشكل افتراضي.
يمكنك تجاوز إعداد $ConfirmPreference
الحالي باستخدام المعلمة -Confirm
. إذا حددت -Confirm
أو -Confirm:$True
، فسيطالبك الأمر cmdlet بالتأكيد قبل تشغيله. إذا حددت -Confirm:$False
، فلن يطالبك الأمر cmdlet بالتأكيد.
لمزيد من المعلومات عن -Confirm
و$ConfirmPreference
، راجع حول متغيرات التفضيل.
الخطوات التالية
تعرف على كيفية إدارة مجموعات السجل والسجلات في منطقة DNS الخاصة بك.
تعرف على كيفية تفويض مجالك إلى Azure DNS.
راجع الوثائق المرجعية لـ Azure DNS PowerShell.