Sdílet prostřednictvím


Správa zón DNS pomocí PowerShellu

V tomto článku se dozvíte, jak spravovat zóny DNS pomocí Azure PowerShell. Zóny DNS můžete také spravovat pomocí azure CLI pro různé platformy nebo Azure Portal.

Tato příručka se zabývá konkrétně veřejnými zónami DNS. Informace o použití Azure PowerShell ke správě privátních zón v Azure DNS najdete v tématu Začínáme s privátními zónami Azure DNS pomocí Azure PowerShell.

K hostování záznamů DNS pro konkrétní doménu se používá zóna DNS. Pokud chcete začít hostovat svou doménu v DNS Azure, musíte vytvořit zónu DNS pro daný název domény. Všechny záznamy DNS pro vaši doménu se pak vytvoří v této zóně DNS.

Například doména contoso.com může obsahovat několik záznamů DNS, třeba mail.contoso.com (pro poštovní server) a www.contoso.com (pro web).

Při vytváření zóny DNS v DNS Azure:

  • Název zóny musí být v rámci skupiny prostředků jedinečný a zóna ještě nesmí existovat. Jinak se operace nezdaří.
  • V jiné skupině prostředků nebo v rámci jiného předplatného Azure se dá znovu použít stejný název zóny.
  • Pokud má několik zón stejný název, každé instanci se přiřadí jiná adresa názvového serveru. U registrátora názvu domény je možné nakonfigurovat pouze jednu sadu adres.

Poznámka

Pro vytvoření zóny DNS s názvem domény v DNS Azure nemusíte tento název domény vlastnit. Doménu ale musíte vlastnit, pokud chcete nakonfigurovat názvové servery DNS Azure jako správné názvové servery pro daný název domény u registrátora názvu domény.

Další informace najdete v tématu Delegování domény do Azure DNS.

Nastavení Azure PowerShellu pro Azure DNS

Než začnete

Důležité

Použití této funkce Azure z PowerShellu AzureRM vyžaduje nainstalovaný modul. Jedná se o starší modul, který je k dispozici pouze pro Windows PowerShell 5.1, který už nepřijímá nové funkce. Moduly Az a AzureRMnejsou kompatibilní, pokud jsou nainstalovány pro stejné verze PowerShellu. Pokud potřebujete obě verze:

  1. Odinstalujte modul Az z relace PowerShellu 5.1.
  2. Nainstalujte modul AzureRM z relace PowerShellu 5.1.
  3. Stáhněte a nainstalujte PowerShell Core 6.x nebo novější.
  4. Nainstalujte modul Az v relaci PowerShellu Core.

Před zahájením konfigurace ověřte, zda máte následující.

Přihlášení k účtu Azure

Otevřete konzolu prostředí PowerShell a připojte se ke svému účtu. Další informace najdete v tématu Přihlášení pomocí Azure PowerShell.

Connect-AzAccount

Výběr předplatného

Zkontrolujte předplatná pro příslušný účet.

Get-AzSubscription

Zvolte předplatné Azure, které chcete použít.

Select-AzSubscription -SubscriptionName "your_subscription_name"

Vytvoření skupiny prostředků

Azure Resource Manager vyžaduje, aby všechny skupiny prostředků určily umístění. Toto umístění slouží jako výchozí umístění pro prostředky v příslušné skupině prostředků. Všechny prostředky DNS jsou ale globální, a ne místní, takže volba umístění skupiny prostředků nemá na Azure DNS žádný vliv.

Pokud používáte některou ze stávajících skupin prostředků, můžete tento krok přeskočit.

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

Vytvoření zóny DNS

Zóna DNS se vytvoří pomocí rutiny New-AzDnsZone.

Následující příklad vytvoří zónu DNS s názvem contoso.com ve skupině prostředků MyDNSResourceGroup:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Následující příklad ukazuje, jak vytvořit zónu DNS se dvěma značkami Azure Resource Manager, project = demo a env = test:

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

Získání zóny DNS

Pokud chcete načíst zónu DNS, použijte rutinu Get-AzDnsZone . Tato operace vrátí objekt zóny DNS odpovídající existující zóně v Azure DNS. Objekt obsahuje data o zóně (například počet sad záznamů), ale neobsahuje samotné sady záznamů (viz 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

Výpis zón DNS

Vynecháním názvu zóny v rutině Get-AzDnsZone můžete zobrazit výčet všech zón ve skupině prostředků. Tato operace vrátí pole objektů zón.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

Vynecháním názvu zóny i názvu skupiny prostředků v rutině Get-AzDnsZone můžete zobrazit výčet všech zón v předplatném Azure.

$zoneList = Get-AzDnsZone
$zoneList

Aktualizace zóny DNS

Změny prostředku zóny DNS je možné provádět pomocí rutiny Set-AzDnsZone. Tato rutina neaktualizuje žádné sady záznamů DNS v rámci zóny (viz Správa záznamů DNS). Slouží pouze k aktualizaci vlastností samotného prostředku zóny. Vlastnosti zapisovatelné zóny jsou v současné době omezené na značky Azure Resource Manager pro prostředek zóny.

Zónu DNS můžete aktualizovat jedním z následujících dvou způsobů:

Určení zóny pomocí názvu zóny a skupiny prostředků

Tento přístup nahradí existující značky zón zadanými hodnotami.

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

Určení zóny pomocí objektu $zone

Tento přístup načte existující objekt zóny, upraví značky a pak potvrdí změny. Tímto způsobem je možné zachovat stávající značky.

# 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

Při použití Set-AzDnsZone s objektem $zone se kontroly značky používají k zajištění, aby se nepřepsaly souběžné změny. K potlačení těchto kontrol můžete použít volitelný -Overwrite přepínač.

Odstranění zóny DNS

Zóny DNS je možné odstranit pomocí rutiny Remove-AzDnsZone .

Poznámka

Odstraněním zóny DNS dojde také k odstranění všech záznamů DNS v rámci dané zóny. Tato operace se nedá vrátit zpět. Pokud se zóna DNS používá, služby využívající tuto zónu při jejím odstranění selžou.

Informace o ochraně před náhodným odstraněním zóny najdete v tématu Ochrana záznamů a zón DNS.

Zónu DNS můžete odstranit některým z následujících dvou způsobů:

Určení zóny pomocí názvu zóny a názvu skupiny prostředků

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Určení zóny pomocí objektu $zone

Zónu k odstranění můžete určit pomocí objektu $zone vráceného rutinou Get-AzDnsZone.

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

Místo předání jako parametru je možné objekt zóny předat také rourou:

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

Stejně jako u Set-AzDnsZoneobjektu umožňuje určení zóny pomocí objektu $zone kontroly značky, aby se zajistilo, že se neodstraní souběžné změny. -Overwrite Pomocí přepínače tyto kontroly potlačíte.

Výzvy k potvrzení

Všechny rutiny New-AzDnsZone, Set-AzDnsZone a Remove-AzDnsZone podporují výzvy k potvrzení.

Rutiny New-AzDnsZone a Set-AzDnsZone zobrazí výzvu k potvrzení v případě, že má proměnná předvolby PowerShellu $ConfirmPreference hodnotu Medium nebo nižší. Protože odstranění zóny DNS může potenciálně způsobit nežádoucí podmínky, Remove-AzDnsZone rutina zobrazí výzvu k potvrzení, jestli $ConfirmPreference má proměnná PowerShellu jinou hodnotu než None.

Vzhledem k tomu, že výchozí hodnota proměnné $ConfirmPreference je High, ve výchozím nastavení zobrazí výzvu k potvrzení pouze rutina Remove-AzDnsZone.

Aktuální nastavení $ConfirmPreference můžete přepsat pomocí parametru -Confirm. Pokud zadáte -Confirm nebo -Confirm:$True, rutina před spuštěním zobrazí výzvu k potvrzení. Pokud zadáte -Confirm:$False , rutina nezobrazí výzvu k potvrzení.

Další informace o -Confirm a $ConfirmPreference najdete v tématu Informace o proměnných předvoleb.

Další kroky

Zjistěte, jak spravovat sady záznamů a záznamy v zóně DNS.
Zjistěte, jak delegovat doménu na Azure DNS.
Projděte si referenční dokumentaci k Azure DNS PowerShellu.