Configurando servidores Windows para usar o serviço de metadados de instância
Para acessar os metadados da instância a partir de servidores Windows, há requisitos adicionais para localizar um gateway padrão e adicionar uma rota.
Visão geral
Para usar o serviço de metadados no Windows, você configura uma rota padrão para um endereço local de link para os metadados. Para fazer isso, você precisa localizar o endereço IP do gateway padrão e adicionar uma rota ao endereço local do link. Após essa configuração inicial, você faz chamadas para acessar os metadados de instância.
As informações neste tópico são apresentadas como etapas separadas. Muito provavelmente, você configuraria um processo de automação cloudbaseinit
que executa todas as etapas em um único processo. Os exemplos apresentados são para
ilustrar o que você precisa, mas é possível usar outros métodos para obter o gateway padrão e incluir a rota.
Etapa 1 - Localizar o IP do gateway padrão
Executando como administrador, localize o IP do gateway padrão. Uma maneira conveniente é usar o comando di Powershell Get-NetRoute
.
Localize o IP do gateway padrão usando o cmdlet PowerShell Get-NetRoute. Esse comando obtém o próximo hop para a rota padrão, também conhecida como gateway padrão. Para obter mais informações, consulte a documentação do Windows Powershell para Get-NetRoute.
No terminal do Windows, o exemplo a seguir invoca o comando Powershell Get-NetRoute
para obter as rotas IP padrão e passar as rotas para o cmdlet SelectObject, que exibe a propriedade NextHop para cada rota padrão.
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop""
O primeiro endereço IP recuperado é a rota padrão. Coloque a saída em uma variável.
Etapa 2: incluir uma rota para o gateway padrão
O serviço de metadados usa um endereço local de link ( 169.254.169.254 ) para configurar o acesso ao serviço e recuperar metadados da instância.
Configure a rota padrão para que o endereço local do link possa chegar ao gateway padrão. No terminal do Windows ou Powershell, você especificaria:
C:> route -p add 169.254.169.254 MASK 255.255.255.255 $DEFAULT_GATEWAY
Um script de automação Python pode conter um código como este:
command = 'route -p add 169.254.169.254 MASK 255.255.255.255 ()'.format(default_gateway)
Estes exemplos usam o comando route
, mas também podem usar o comando do Powershell New-NetRoute
e canalizar a rota em um único comando. Por exemplo, para combinar as etapas 1 e 2 em um único comando, seria possível
especificar:
C:\> powershell "Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop" | New-NetRoute"
Para incluir rotas, deve-se executar como um administrador no servidor Windows.
Etapa 3: Recuperar metadados de instância de forma programática
Depois de adicionar uma rota ao gateway padrão, você pode acessar os metadados da instância usando o endereço local do link. Construa seu script de automação usando a ferramenta de sua escolha para transferir dados pela rede, como curl
.
Para ver os comandos curl
para chamar a API de serviço de metadados e recuperar dados, consulte Recuperar metadados de instância de sua instância de servidor virtual em execução.