Configuración de servidores virtuales Windows para utilizar el servicio de metadatos
Para acceder a los metadatos desde servidores virtuales Windows, existen requisitos adicionales para localizar una puerta de enlace predeterminada y añadir una ruta.
Visión general
Para utilizar el servicio de metadatos en Windows, se configura una ruta por defecto a una dirección link-local para los metadatos. Para ello, debe localizar la dirección IP de la pasarela por defecto y, a continuación, añadir una ruta a la dirección link-local. Tras esta configuración inicial, puede realizar solicitudes a la API para acceder a los metadatos.
La información de este tema se presenta como pasos separados. Lo más probable es que configure un proceso de automatización de cloudbaseinitque realice todos los pasos en un único proceso. Los ejemplos presentados son para ilustrar
lo que necesita, pero puede utilizar otros métodos para obtener la pasarela predeterminada y añadir la ruta.
Paso 1 - Localizar la IP de la pasarela predeterminada
En ejecución como administrador, localice la IP de la pasarela predeterminada. Una forma cómoda es utilizar el mandato Get-NetRoute de Powershell.
Localice la IP de la puerta de enlace predeterminada utilizando el cmdlet PowerShell Get-NetRoute. Este mandato proporciona el siguiente salto para la ruta predeterminada, también conocida como pasarela predeterminada. Para obtener más información, consulte la documentación de Windows Powershell para Get-NetRoute.
Desde el terminal de Windows, el siguiente ejemplo invoca el comando Powershell Get-NetRoute para obtener las rutas IP por defecto y pasar las rutas al cmdlet SelectObject, que a su vez muestra la propiedad NextHop para cada ruta
por defecto.
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop""
La primera dirección IP que se recupera es la ruta por defecto. Coloque la salida en una variable.
Paso 2: Añadir una ruta a la pasarela predeterminada
El servicio de metadatos utiliza una dirección local de enlace ( 169.254.169.254 ) para configurar el acceso al servicio y recuperar metadatos de la instancia.
Configure la ruta por defecto para que la dirección link-local pueda llegar a la pasarela por defecto. Desde el terminal Windows o Powershell, debe especificar:
C:> route -p add 169.254.169.254 MASK 255.255.255.255 $DEFAULT_GATEWAY
El siguiente ejemplo de código procede de un script de automatización de Python:
command = 'route -p add 169.254.169.254 MASK 255.255.255.255 ()'.format(default_gateway)
Estos ejemplos utilizan el comando route, pero también puede utilizar el comando Powershell New-NetRoute y canalizar la ruta en un único comando. Para combinar los pasos 1 y 2 en un único comando, puedes especificar:
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop" | New-NetRoute"
Para añadir rutas, debe ejecutar como administrador en el servidor Windows.
Paso 3: Recuperar metadatos mediante programación
Después de añadir una ruta a la pasarela por defecto, puede acceder a los metadatos utilizando la dirección link-local. Construya su script de automatización utilizando la herramienta de su elección para transferir datos a través de la red,
como curl.
Para ver comandos curl para invocar la API del servicio de metadatos y recuperar datos, consulte Recuperación de metadatos de una instancia.