Einrichten von virtuellen Windows-Servern für die Nutzung des Metadatendienstes
Für den Zugriff auf Metadaten von virtuellen Windows-Servern aus sind zusätzliche Anforderungen erforderlich, um ein Standard-Gateway zu finden und eine Route hinzuzufügen.
Übersicht
Um den Metadatendienst unter Windows zu nutzen, richten Sie eine Standardroute zu einer link-lokalen Adresse für die Metadaten ein. Dazu müssen Sie die IP-Adresse des Standard-Gateways ausfindig machen und dann eine Route zur link-local-Adresse hinzufügen. Nach dieser Ersteinrichtung können Sie API-Anfragen stellen, um auf die Metadaten zuzugreifen.
Die Informationen in diesem Thema sind als separate Schritte dargestellt. Sie würden jedoch eher einen Prozess für die Automatisierung von cloudbaseinit konfigurieren, der alle Schritte in einem einzigen Prozess ausführt. Die dargestellten
Beispiele sollen veranschaulichen, was erforderlich ist; Sie können jedoch andere Methoden verwenden, um das Standardgateway abzurufen und die Route hinzuzufügen.
Schritt 1 - IP-Adresse des Standardgateways suchen
Suchen Sie als Administrator nach der IP-Adresse des Standardgateways. Ein komfortables Verfahren hierfür ist der PowerShell-Befehl Get-NetRoute.
Ermitteln Sie die IP des Standard-Gateways mit dem Cmdlet PowerShell Get-NetRoute. Dieser Befehl ruft den nächsten Hop für die Standardroute ab, der auch als Standardgateway bezeichnet wird. Weitere Informationen finden Sie in der Windows Powershell-Dokumentation für Get-NetRoute.
Im Windows-Terminal ruft das folgende Beispiel den Powershell-Befehl Get-NetRoute auf, um die Standard-IP-Routen abzurufen und die Routen an das Cmdlet SelectObject zu übergeben, das dann die Eigenschaft NextHop für jede Standardroute
anzeigt.
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop""
Die erste IP-Adresse, die abgerufen wird, ist die Standardroute. Legen Sie die Ausgabe in einer Variablen ab.
Schritt 2: Route zum Standardgateway hinzufügen
Der Metadatendienst verwendet eine link-local-Adresse ( 169.254.169.254 ), um den Zugang zum Dienst einzurichten und Metadaten von der Instanz abzurufen.
Richten Sie die Standardroute so ein, dass die link-lokale Adresse zum Standard-Gateway gelangen kann. Am Windows- oder PowerShell-Terminal würden Sie Folgendes angeben:
C:> route -p add 169.254.169.254 MASK 255.255.255.255 $DEFAULT_GATEWAY
Das folgende Codebeispiel stammt aus einem Python Automatisierungsskript:
command = 'route -p add 169.254.169.254 MASK 255.255.255.255 ()'.format(default_gateway)
In diesen Beispielen wird der Befehl route verwendet, aber Sie können auch den Powershell-Befehl New-NetRoute verwenden und die Route in einem einzigen Befehl über die Pipeline übertragen. Um die Schritte 1 und 2 in
einem einzigen Befehl zu kombinieren, könnten Sie angeben:
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop" | New-NetRoute"
Um Routen hinzufügen zu können, müssen Sie auf dem Windows-Server die Berechtigung eines Administrators besitzen.
Schritt 3: Programmgesteuertes Abrufen von Metadaten
Nachdem Sie dem Standard-Gateway eine Route hinzugefügt haben, können Sie über die link-local-Adresse auf die Metadaten zugreifen. Erstellen Sie Ihr Automatisierungsskript, indem Sie das Tool Ihrer Wahl zur Datenübertragung über das Netzwerk
verwenden, z. B. curl.
Unter curl finden Sie Befehle zum Aufrufen der API des Metadatendienstes und zum Abrufen von Daten, siehe Abrufen von Metadaten aus einer Instanz.