Jak zarządzać strefami DNS przy użyciu programu PowerShell
W tym artykule pokazano, jak zarządzać strefami DNS przy użyciu programu Azure PowerShell. Strefy DNS można również zarządzać przy użyciu międzyplatformowego interfejsu wiersza polecenia platformy Azure lub witryny Azure Portal.
Ten przewodnik dotyczy konkretnie publicznych stref DNS. Aby uzyskać informacje na temat zarządzania strefami prywatnymi w usłudze Azure DNS przy użyciu programu Azure PowerShell, zobacz Rozpoczynanie pracy ze strefami prywatnymi usługi Azure DNS przy użyciu programu Azure PowerShell.
Strefa DNS służy do hostowania rekordów DNS dla konkretnej domeny. Aby rozpocząć hostowanie domeny w usłudze Azure DNS, musisz utworzyć strefę DNS dla tej nazwy domeny. Każdy rekord DNS domeny zostanie utworzony w tej strefie DNS.
Na przykład domena „contoso.com” może zawierać wiele rekordów DNS, takich jak „mail.contoso.com” (dla serwera poczty) i „www.contoso.com” (dla witryny sieci Web).
Podczas tworzenia strefy DNS w usłudze Azure DNS należy uwzględnić następujące kwestie:
- Nazwa strefy musi być unikatowa w obrębie grupy zasobów, a strefa nie może wcześniej istnieć. W przeciwnym razie operacja zakończy się niepowodzeniem.
- Danej nazwy strefy można użyć ponownie w innej grupie zasobów lub w ramach innej subskrypcji platformy Azure.
- W przypadku wielu stref o tej samej nazwie do każdego wystąpienia jest przypisywany inny adres serwera nazw. W rejestratorze nazw domen można skonfigurować tylko jeden zestaw adresów.
Uwaga
Nie musisz być właścicielem nazwy domeny, aby utworzyć strefę DNS z tą nazwą domeny w usłudze Azure DNS. Jednak musisz być właścicielem domeny, aby skonfigurować serwery nazw usługi Azure DNS jako poprawne serwery nazw dla nazwy domeny w rejestratorze nazw domen.
Więcej informacji można znaleźć w temacie Delegowanie domeny do usługi DNS platformy Azure.
Konfigurowanie programu Azure PowerShell dla usługi Azure DNS
Zanim rozpoczniesz
Ważne
Korzystanie z tej funkcji platformy Azure z poziomu programu PowerShell wymaga zainstalowania modułu AzureRM
. Jest to starszy moduł dostępny tylko dla programu Windows PowerShell 5.1, który nie otrzymuje już nowych funkcji.
Moduły Az
i AzureRM
nie są zgodne w przypadku instalacji dla tych samych wersji programu PowerShell.
Jeśli potrzebujesz obu wersji:
- Odinstaluj moduł Az z sesji programu PowerShell 5.1.
- Zainstaluj moduł AzureRM z sesji programu PowerShell 5.1.
- Pobierz i zainstaluj program PowerShell Core 6.x lub nowszy.
- Zainstaluj moduł Az w sesji programu PowerShell Core.
Przed rozpoczęciem konfiguracji sprawdź, czy dysponujesz następującymi elementami:
- Subskrypcja Azure. Jeśli nie masz jeszcze subskrypcji platformy Azure, możesz aktywować korzyści dla subskrybentów MSDN lub utworzyć bezpłatne konto.
- Niezbędne jest zainstalowanie najnowszej wersji poleceń cmdlet programu PowerShell usługi Azure Resource Manager. Aby uzyskać więcej informacji, zobacz Instalowanie i konfigurowanie programu Azure PowerShell.
Zaloguj się do swojego konta platformy Azure
Otwórz konsolę programu PowerShell i połącz się ze swoim kontem. Aby uzyskać więcej informacji, zobacz Logowanie się przy użyciu programu Azure PowerShell.
Connect-AzAccount
Wybierz subskrypcję
Sprawdź subskrypcje dostępne na koncie.
Get-AzSubscription
Wybierz subskrypcję platformy Azure do użycia.
Select-AzSubscription -SubscriptionName "your_subscription_name"
Tworzenie grupy zasobów
Usługa Azure Resource Manager wymaga, żeby wszystkie grupy zasobów miały lokalizację. Ta lokalizacja będzie używana jako domyślna lokalizacja dla zasobów w danej grupie zasobów. Ponieważ jednak wszystkie zasoby DNS są globalne, a nie regionalne, wybór lokalizacji grupy zasobów nie ma wpływu na usługę Azure DNS.
Ten krok można pominąć, jeśli używasz istniejącej grupy zasobów.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
Tworzenie strefy DNS
Strefa DNS jest tworzona za pomocą polecenia cmdlet New-AzDnsZone
.
Poniższy przykład tworzy strefę DNS o nazwie contoso.com w grupie zasobów o nazwie MyDNSResourceGroup:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
W poniższym przykładzie pokazano, jak utworzyć strefę DNS z dwoma tagami usługi Azure Resource Manager, project = demo i env = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Uzyskiwanie strefy DNS
Aby pobrać strefę DNS, użyj Get-AzDnsZone
polecenia cmdlet . Ta operacja zwraca obiekt strefy DNS odpowiadający istniejącej strefie w usłudze Azure DNS. Obiekt zawiera dane dotyczące strefy (takie jak liczba zestawów rekordów), ale nie zawiera samych zestawów rekordów (zobacz 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
Wyświetlanie listy stref DNS
Pomijając nazwę strefy w elemencie Get-AzDnsZone
, można wyliczyć wszystkie strefy w grupie zasobów. Ta operacja zwraca tablicę obiektów stref.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
Pomijając zarówno nazwę strefy, jak i nazwę grupy zasobów w elemencie Get-AzDnsZone
, można wyliczyć wszystkie strefy w subskrypcji platformy Azure.
$zoneList = Get-AzDnsZone
$zoneList
Aktualizowanie strefy DNS
Zmiany w zasobie strefy DNS można wprowadzić przy użyciu polecenia Set-AzDnsZone
. To polecenie cmdlet nie aktualizuje żadnego z zestawów rekordów DNS w strefie (zobacz Jak zarządzać rekordami DNS). Służy ono wyłącznie do aktualizacji właściwości samego zasobu strefy. Właściwości strefy z możliwością zapisu są obecnie ograniczone do "tagów" usługi Azure Resource Manager dla zasobu strefy.
Użyj jednego z następujących dwóch sposobów, aby zaktualizować strefę DNS:
Określanie strefy przy użyciu nazwy strefy i grupy zasobów
To podejście zastępuje istniejące tagi strefy określonymi wartościami.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Określenie strefy przy użyciu obiektu $zone
To podejście pobiera istniejący obiekt strefy, modyfikuje tagi, a następnie zatwierdza zmiany. W ten sposób można zachować istniejące tagi.
# 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
Gdy używasz z Set-AzDnsZone
obiektem $zone, kontrole Etag są używane do zapewnienia, że współbieżne zmiany nie zostaną zastąpione. Możesz użyć opcjonalnego -Overwrite
przełącznika, aby pominąć te kontrole.
Usuwanie strefy DNS
Strefy DNS można usunąć przy użyciu Remove-AzDnsZone
polecenia cmdlet .
Uwaga
Usunięcie strefy DNS powoduje również usunięcie wszystkich rekordów DNS w strefie. Tej operacji nie można cofnąć. Jeśli strefa DNS jest używana, po jej usunięciu usługi korzystające z tej strefy będą kończyć się niepowodzeniem.
Aby zapobiec przypadkowemu usunięciu strefy, zobacz jak chronić strefy i rekordy DNS.
Strefę DNS można usunąć przy użyciu jednego z dwóch poniższych sposobów:
Określenie strefy przy użyciu nazwy strefy i nazwy grupy zasobów
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Określenie strefy przy użyciu obiektu $zone
Strefę do usunięcia można wskazać przy użyciu obiektu $zone
zwróconego przez element Get-AzDnsZone
.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
Obiekt strefy można również przekazać w potoku zamiast przekazywania jako parametr:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
Podobnie jak w przypadku Set-AzDnsZone
, określanie strefy przy użyciu $zone
obiektu umożliwia sprawdzanie elementu Etag w celu zapewnienia, że współbieżne zmiany nie zostaną usunięte. Użyj przełącznika , -Overwrite
aby pominąć te kontrole.
Monity o potwierdzenie
Polecenia cmdlet New-AzDnsZone
, Set-AzDnsZone
i Remove-AzDnsZone
obsługują monity o potwierdzenie.
Polecenia New-AzDnsZone
i Set-AzDnsZone
monitują o potwierdzenie, jeśli zmienna preferencji $ConfirmPreference
programu PowerShell ma wartość Medium
lub mniejszą. Ponieważ usunięcie strefy DNS może potencjalnie spowodować niepożądane warunki, Remove-AzDnsZone
polecenie cmdlet wyświetli monit o potwierdzenie, jeśli $ConfirmPreference
zmienna programu PowerShell ma dowolną wartość inną niż None
.
Ponieważ domyślną wartością elementu $ConfirmPreference
jest High
, tylko polecenie Remove-AzDnsZone
domyślnie monituje o potwierdzenie.
Bieżące ustawienie $ConfirmPreference
można zastąpić przy użyciu parametru -Confirm
. W przypadku wybrania elementów -Confirm
lub -Confirm:$True
polecenie cmdlet monituje o potwierdzenie przed uruchomieniem. Jeśli określisz -Confirm:$False
wartość , polecenie cmdlet nie wyświetli monitu o potwierdzenie.
Aby uzyskać więcej informacji na temat elementów -Confirm
i $ConfirmPreference
, zobacz About Preference Variables (Informacje o zmiennych preferencji).
Następne kroki
Dowiedz się, jak zarządzać zestawami rekordów i rekordami w strefie DNS.
Dowiedz się, jak delegować domenę do usługi Azure DNS.
Zapoznaj się z dokumentacją referencyjną programu PowerShell usługi Azure DNS.