Windows-Server für die Verwendung des Instanzmetadatenservice einrichten
Für den Zugriff auf Instanz-Metadaten von 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 Erstkonfiguration führen Sie Aufrufe zum Zugriff auf die Instanzmetadaten durch.
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
Ein Python-Automationsscript kann Code wie den Folgenden enthalten:
command = 'route -p add 169.254.169.254 MASK 255.255.255.255 ()'.format(default_gateway)
Die folgenden Beispiele verwenden den Befehl route
, können aber auch den PowerShell-Befehl New-NetRoute
verwenden und die Route in einem einzigen Befehl zu verketten. Wenn Sie beispielsweise die Schritte 1 und 2 in
einem einzigen Befehl kombinieren möchten, können Sie Folgendes 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: Programmatische Abfrage von Instanz-Metadaten
Nachdem Sie dem Standard-Gateway eine Route hinzugefügt haben, können Sie über die link-local-Adresse auf die Metadaten der Instanz zugreifen. Erstellen Sie Ihr Automatisierungsskript, indem Sie das Tool Ihrer Wahl zur Datenübertragung über
das Netzwerk verwenden, z. B. curl
.
Informationen zum Anzeigen von curl
-Befehlen für das Aufrufen der Metadatenservice-API und für das Abrufen von Daten finden Sie unter Instanzmetadaten aus Ihrer aktiven Virtual Server-Instanz abrufen.