Diese Anleitung ist der erste Teil einer Reihe, in der gezeigt wird, wie Sie eine hochverfügbare Windows-Architektur in Google Cloud mit Microsoft Active Directory, SQL Server und Internet Information Services (IIS) bereitstellen. In dieser Anleitung richten Sie zwei redundante Windows-Domänencontroller mit Active Directory ein und verwenden dabei ein VPC-Netzwerk (Virtual Private Cloud) und mehrere Subnetze.
Die Reihe besteht aus folgenden Anleitungen:
- Fehlertolerante Microsoft Active Directory-Umgebung bereitstellen (dieses Dokument)
- SQL-Server für mehrere Subnetze bereitstellen
- IIS-Webserver mit Load-Balancing bereitstellen
Die einzelnen Anleitungen basieren auf der Infrastruktur, die Sie in der vorigen Anleitung erstellt haben.
Sie können in dieser Anleitung auch erfahren, wie Sie eine Active Directory-Konfiguration zur Verwendung in anderen Architekturen einrichten. Nicht besprochen wird, wie Sie eine Remote-Active-Directory-Umgebung in die neue, Google Cloud-basierte Active Directory-Umgebung replizieren. Dies ist aber mit Cloud VPN und zusätzlicher Active Directory-Konfiguration möglich.
Architektur
Ziele
- Ein VPC-Netzwerk im benutzerdefinierten Modus mit zwei Subnetzen erstellen, die sich über zwei Zonen erstrecken
- Virtuelle Windows Server-Instanzen erstellen und Active Directory Domain Services aktivieren
- Neue Domain mit Active Directory konfigurieren
- Die neuen Windows Server-Instanzen mit der neuen Domain verbinden
- Firewallregeln konfigurieren, um Traffic zu den virtuellen Maschinen zuzulassen
- Die Konfiguration testen.
Kosten
In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:
Gemäß dem Preisrechner liegen die geschätzten Kosten für diese Umgebung bei ca. 4 $ pro Tag.
Vorbereitung
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
Gemeinsame Variablen initialisieren
Sie müssen verschiedene Variablen definieren, die festlegen, wo Elemente der Infrastruktur bereitgestellt werden.
Rufen Sie Cloud Shell auf.
Erstellen Sie in Cloud Shell die folgenden Umgebungsvariablen, um die Werte festzulegen, die später in der Anleitung benötigt werden.
Durch die Befehle wird als Region
us-east-1
festgelegt. Sie können eine andere Region verwenden, müssen sich diese dann aber gut merken, damit Sie dieselbe Region in den folgenden Anleitungen verwenden können.export region=us-east1 export zone_1=${region}-b export zone_2=${region}-c export vpc_name=webappnet export project_id=your-project-id
Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.
Führen Sie die folgenden Befehle aus, um die Standardregion und die Projekt-ID festzulegen, damit Sie diese Werte nicht bei jedem nachfolgenden Befehl angeben müssen:
gcloud config set compute/region ${region} gcloud config set project ${project_id}
Netzwerkinfrastruktur erstellen
Nachdem Sie die Infrastrukturvariablen definiert haben, müssen Sie das Netzwerk und die Subnetze erstellen, die von Active Directory verwendet werden.
Führen Sie in Cloud Shell den folgenden Befehl aus, um das VPC-Netzwerk zu erstellen:
gcloud compute networks create ${vpc_name} \ --description "VPC network to deploy Active Directory" \ --subnet-mode custom
Die folgende Warnung wird angezeigt. Sie können diese aber ignorieren, da Sie die Firewallregeln später erstellen.
Instances on this network will not be reachable until firewall rules are created.
Fügen Sie dem VPC-Netzwerk zwei Subnetze hinzu:
gcloud compute networks subnets create private-ad-zone-1 \ --network ${vpc_name} \ --range 10.1.0.0/24 gcloud compute networks subnets create private-ad-zone-2 \ --network ${vpc_name} \ --range 10.2.0.0/24
Erstellen Sie eine interne Firewallregel, um den Traffic zwischen den Subnetzen zuzulassen:
gcloud compute firewall-rules create allow-internal-ports-private-ad \ --network ${vpc_name} \ --allow tcp:1-65535,udp:1-65535,icmp \ --source-ranges 10.1.0.0/24,10.2.0.0/24
Erstellen Sie eine Firewallregel, um von einem beliebigen Ort aus eine RDP-Verbindung an Port
3389
zuzulassen:gcloud compute firewall-rules create allow-rdp \ --network ${vpc_name} \ --allow tcp:3389 \ --source-ranges 0.0.0.0/0
Ersten Domänencontroller erstellen
Als Nächstes erstellen Sie einen Domaincontroller mit den folgenden Attributen:
- Name:
ad-dc1
- IP-Adresse:
10.1.0.100
Erstellen Sie eine Compute Engine-Instanz von Windows Server 2016, die als erster Domaincontroller verwendet werden soll:
gcloud compute instances create ad-dc1 --machine-type n1-standard-2 \ --boot-disk-type pd-ssd \ --boot-disk-size 50GB \ --image-family windows-2016 --image-project windows-cloud \ --network ${vpc_name} \ --zone ${zone_1} --subnet private-ad-zone-1 \ --private-network-ip=10.1.0.100
Warten Sie etwa eine Minute und erstellen Sie dann ein Passwort für die Windows-Instanz
ad-dc1
:gcloud compute reset-windows-password ad-dc1 --zone ${zone_1} --quiet
Der Nutzername ist der Ihres Google-Kontos. Notieren Sie Nutzernamen und Passwort.
Verwenden Sie RDP, um mit den im vorherigen Schritt erstellten Anmeldedaten eine Verbindung zur Domänencontrollerinstanz herzustellen.
Öffnen Sie ein PowerShell-Terminal als Administrator. Klicken Sie auf Start, geben Sie PowerShell ein und drücken Sie dann Umschalt+Strg+Eingabe.
Legen Sie die Windows-Anmeldedaten für das Administratorkonto fest:
net user Administrator *
Sie werden aufgefordert, ein Passwort zu erstellen. Wählen Sie ein starkes Passwort und bewahren Sie es zum späteren Gebrauch an einem sicheren Ort auf.
Das Administratorkonto wird zu einem Domainadministratorkonto, nachdem Sie die Active Directory-Gesamtstruktur damit erstellt haben.
Aktivieren Sie das Konto:
net user Administrator /active:yes
Installieren Sie Active Directory Domain Services, einschließlich Management Tools:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Legen Sie die folgenden Variablen fest:
$DomainName = "example-gcp.com" $DomainMode = "7" $ForestMode = "7" $DatabasePath = "C:\Windows\NTDS" $SysvolPath = "C:\Windows\SYSVOL" $LogPath = "C:\Logs"
Installieren Sie die neue Active Directory-Gesamtstrukturkonfiguration im Windows Server 2016-Modus:
Install-ADDSForest -CreateDnsDelegation:$false ` -DatabasePath $DatabasePath ` -LogPath $LogPath ` -SysvolPath $SysvolPath ` -DomainName $DomainName ` -DomainMode $DomainMode ` -ForestMode $ForestMode ` -InstallDNS:$true ` -NoRebootOnCompletion:$true ` -Force:$true
Wenn Sie dazu aufgefordert werden, geben Sie ein Administratorpasswort für den abgesicherten Modus ein. Bewahren Sie das Passwort für den späteren Gebrauch an einem sicheren Ort auf.
Schließen Sie die folgenden Warnungen. Jede Warnung wird zweimal angezeigt. Einmal während der Prüfung der Voraussetzungen und ein zweites Mal während des Installationsvorgangs.
WARNING: Windows Server 2016 domain controllers have a default for the security setting named Allow cryptography algorithms compatible with Windows NT 4.0 that prevents weaker cryptography algorithms when establishing security channel sessions.
For more information about this setting, see Knowledge Base article 942564 (http://go.microsoft.com/fwlink/?LinkId=104751).WARNING: This computer has at least one physical network adapter that does not have static IP address(es) assigned to its IP Properties. If both IPv4 and IPv6 are enabled for a network adapter, both IPv4 and IPv6 static IP addresses should be assigned to both IPv4 and IPv6 Properties of the physical network adapter. Such static IP address(es) assignment should be done to all the physical network adapters for reliable Domain Name System (DNS) operation.
WARNING: A delegation for this DNS server cannot be created because the authoritative parent zone cannot be found or it does not run Windows DNS server. If you are integrating with an existing DNS infrastructure, you should manually create a delegation to this DNS server in the parent zone to ensure reliable name resolution from outside the domain "example-gcp.com". Otherwise, no action is required.
Starten Sie die virtuelle Maschine neu:
Restart-Computer
Stellen Sie mithilfe von RDP eine Verbindung zum Domaincontroller
ad-dc1
her. Verwenden Sie die Administratoranmeldedaten, die Sie bei der Installation der Active Directory-Gesamtstruktur festgelegt haben. Denken Sie daran, den Domainnamen wie inEXAMPLE-GCP\Administrator
als Präfix hinzuzufügen.Öffnen Sie ein PowerShell-Terminal als Administrator.
Legen Sie die folgenden Variablen fest:
$DNSPrimary = "10.2.0.100" $DNSSecondary = "127.0.0.1" $LocalStaticIp = "10.1.0.100" $DefaultGateway = "10.1.0.1"
Legen Sie die IP-Adresse und das Standardgateway fest:
netsh interface ip set address name=Ethernet static ` $LocalStaticIp 255.255.255.0 $DefaultGateway 1
Konfigurieren Sie den primären DNS-Server:
netsh interface ip set dns Ethernet static $DNSPrimary
Der DNS-Server
ad-dc2
ist erst verfügbar, nachdem der zweite Domaincontroller bereitgestellt wurde. Deshalb können Sie die folgende Fehlermeldung ignorieren:The configured DNS server is incorrect or does not exist.
Konfigurieren Sie den sekundären DNS-Server:
netsh interface ip add dns Ethernet $DNSSecondary index=2
Der DNS-Servereintrag
ad-dc1
für diesen Domaincontroller sollte in der Liste an zweiter Stelle stehen, um eine häufige Verbindungsunterbrechung zwischen Active Directory und dem anderen Controller zu vermeiden. Verwenden Sie den zweiten Domaincontrollerad-dc2
als primären DNS-Server. Den Domaincontrollerad-dc2
erstellen Sie im nächsten Abschnitt. Wenn Sie sich nicht an dieses Vorgehen halten, werden die folgenden Fehler unter Server-Manager > Active Directory Domain Services angezeigt:The DFS Replication service failed to update configuration in Active Directory Domain Services. The service will retry this operation periodically.
Bevor beide Server vollständig konfiguriert sind, werden auf dem Server
ad-dc1
möglicherweise Fehler angezeigt. Sie können diese Fehler ignorieren.
Zweiten Domänencontroller erstellen
Als Nächstes erstellen Sie einen zweiten Domaincontroller in einer anderen Zone, um Fehlertoleranz zu gewährleisten. Der zweite Domänencontroller hat die folgenden Eigenschaften:
- Name:
ad-dc2
- IP-Adresse:
10.2.0.100
Wenn Ihr Cloud Shell-Fenster abgelaufen ist, öffnen Sie eine neue Cloud Shell-Instanz und setzen die zuvor festgelegten Variablen zurück. Dazu bearbeiten Sie das folgende Skript: Geben Sie die Projekt-ID und Region an, die Sie zuvor verwendet haben.
region=us-east1 zone_2=${region}-c zone_1=${region}-b vpc_name=webappnet project_id=your-project-id gcloud config set compute/region ${region} gcloud config set project ${project_id}
Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.
Kopieren Sie das Skript in Ihr Cloud Shell-Fenster und führen Sie es aus.
Verwenden Sie Cloud Shell zum Erstellen der zweiten Domänencontrollerinstanz:
gcloud compute instances create ad-dc2 --machine-type n1-standard-2 \ --boot-disk-size 50GB \ --boot-disk-type pd-ssd \ --image-family windows-2016 --image-project windows-cloud \ --can-ip-forward \ --network ${vpc_name} \ --zone ${zone_2} \ --subnet private-ad-zone-2 \ --private-network-ip=10.2.0.100
Warten Sie etwa eine Minute und erstellen Sie dann ein Passwort für die Windows-Instanz
ad-dc2
:gcloud compute reset-windows-password ad-dc2 --zone ${zone_2} --quiet
Der Nutzername ist der Ihres Google-Kontos. Notieren Sie Nutzernamen und Passwort.
Verwenden Sie RDP, um mit den im vorherigen Schritt erstellten Anmeldedaten eine Verbindung zur Domänencontrollerinstanz herzustellen.
Öffnen Sie ein PowerShell-Terminal als Administrator.
Installieren Sie Active Directory Domain Services, einschließlich Management Tools:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Legen Sie die folgenden Variablen fest:
$DomainName = "example-gcp.com" $DomainPrefix = "EXAMPLE-GCP" $DNSPrimary = "10.1.0.100" $DNSSecondary = "127.0.0.1" $LocalStaticIp = "10.2.0.100" $DefaultGateway = "10.2.0.1" $DatabasePath = "C:\Windows\NTDS" $SysvolPath = "C:\Windows\SYSVOL" $LogPath = "C:\Logs"
Konfigurieren Sie den primären DNS-Server:
netsh interface ip set dns Ethernet static $DNSPrimary
Konfigurieren Sie den zweiten Server so, dass er als eigener sekundärer DNS-Server fungiert:
netsh interface ip add dns Ethernet $DNSSecondary index=2
Der DNS-Server
ad-dc2
ist erst verfügbar, wennad-dc2
der Domain als Domaincontroller hinzugefügt wurde. Da der Server noch nicht hinzugefügt wurde, wird die folgende Meldung angezeigt, die Sie jedoch ignorieren können:The configured DNS server is incorrect or does not exist.
Legen Sie die IP-Adresse und das Standardgateway fest:
netsh interface ip set address name=Ethernet static ` $LocalStaticIp 255.255.255.0 $DefaultGateway 1
Führen Sie das folgende PowerShell-Skript aus, das Sie darüber informiert, wann der erste Domänencontroller betriebsbereit ist. Warten Sie, bis die Meldung
Domain controller is reachable
angezeigt wird.$DomainIsReady=$False For ($i=0; $i -le 30; $i++) { nltest /dsgetdc:$DomainName if($LASTEXITCODE -ne 0) { Write-Host "Domain not ready, wait 1 more minute, then retry" Start-Sleep -s 60 } else { $DomainIsReady=$True Write-Host "Domain controller is reachable" break } } if($DomainIsReady -eq $False) { Write-Host "Domain not ready. Check if it was deployed ok" }
Fügen Sie die virtuelle Maschine als zweiten Domänencontroller zur Gesamtstruktur hinzu:
Install-ADDSDomainController ` -Credential (Get-Credential "$DomainPrefix\Administrator") ` -CreateDnsDelegation:$false ` -DatabasePath $DatabasePath ` -DomainName $DomainName ` -InstallDns:$true ` -LogPath $LogPath ` -SysvolPath $SysvolPath ` -NoGlobalCatalog:$false ` -SiteName 'Default-First-Site-Name' ` -NoRebootOnCompletion:$true ` -Force:$true
Wenn Sie aufgefordert werden, ein Passwort für das Administratorkonto einzugeben, verwenden Sie die Administratoranmeldedaten, die Sie während der Installation der Active Directory-Gesamtstruktur festgelegt haben. Fügen Sie den Domainnamen wie in
EXAMPLE-GCP\Administrator
als Präfix hinzu.Wenn Sie aufgefordert werden, ein Administratorpasswort für den abgesicherten Modus einzugeben, verwenden Sie dasselbe Passwort, das Sie für den ersten Domänencontroller verwendet haben.
Ignorieren Sie die folgenden Warnungen. Jede Warnung wird zweimal angezeigt. Einmal während der Prüfung der Voraussetzungen und ein zweites Mal während des Installationsvorgangs.
WARNING: Windows Server 2016 domain controllers have a default for the security setting named "Allow cryptography algorithms compatible with Windows NT 4.0" that prevents weaker cryptography algorithms when establishing security channel sessions.
For more information about this setting, see Knowledge Base article 942564 (http://go.microsoft.com/fwlink/?LinkId=104751).WARNING: A delegation for this DNS server cannot be created because the authoritative parent zone cannot be found or it does not run Windows DNS server. If you are integrating with an existing DNS infrastructure, you should manually create a delegation to this DNS server in the parent zone to ensure reliable name resolution from outside the domain "example-gcp.com". Otherwise, no action is required.
Starten Sie die virtuelle Maschine neu:
Restart-Computer
Installation testen
Warten Sie 5 bis 10 Minuten, bis beide Domänencontroller funktionsfähig sind und Daten replizieren.
Verwenden Sie RDP, um mit den bei der Installation des ersten Domänencontrollers definierten Administratoranmeldedaten eine Verbindung zu diesem herzustellen. Fügen Sie den Domainnamen wie in
EXAMPLE-GCP\Administrator
als Präfix hinzu.Öffnen Sie ein PowerShell-Terminal als Administrator.
Testen Sie, ob die Replikation funktioniert:
repadmin /replsum
Die Ausgabe sollte ungefähr so aussehen und keine Fehler enthalten:
Wenn der Domaincontroller nicht verfügbar ist, wird eine Meldung wie die folgende angezeigt:
Beginning data collection for replication summary, this may take awhile:
.... Source DSA largest delta fails/total %% error
Destination DSA largest delta fails/total %% errorWenn diese Meldung angezeigt wird, warten Sie ein paar Minuten und wiederholen Sie dann den Befehl.
Bereinigen
Wenn Sie mit der nächsten Anleitung in dieser Reihe (SQL-Server für mehrere Subnetze bereitstellen) fortfahren möchten, behalten Sie die in dieser Anleitung erstellten Ressourcen bei. Wenn Sie jedoch nicht die in dieser Anleitung erstellte Active Directory-Umgebung verwenden möchten, bereinigen Sie die in Google Cloud erstellten Ressourcen, damit Ihnen keine Kosten in Rechnung gestellt werden. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.
So löschen Sie das Projekt:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Instanzen löschen
So löschen Sie eine Compute Engine-Instanz:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
VPC-Netzwerke löschen
So löschen Sie VPC-Netzwerk, Subnetze und Firewallregeln:
Rufen Sie in der Google Cloud Console die Seite "VPC-Netzwerke" auf.
Wählen Sie das von Ihnen erstellte VPC-Netzwerk aus.
Klicken Sie oben auf der Seite auf Löschen.
Nächste Schritte
- Fahren Sie mit den nächsten Anleitungen dieser Reihe fort:
- Muster für die Verwendung von Active Directory in einer Hybridumgebung.
- Best Practices für die Verwaltung von Identität und Zugriff.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center