Azure - Detectar região da máquina virtual na máquina virtual

1

Desejo implantar um conjunto de escala em duas regiões diferentes no Azure a partir de uma imagem de máquina virtual personalizada. Eu trabalhei como fazer isso, mas eu gostaria de mudar as informações de configuração, dependendo da região que o conjunto de escala é implantado. Como posso detectar a região de uma máquina virtual a partir dessa máquina virtual?

A máquina virtual está executando o CentOS.

    
por Anonymous1 13.09.2018 / 00:02

1 resposta

1

Existe uma maneira fácil e fácil de fazer isso, use o serviço de metadados dentro da VM. Você pode executar esse comando de dentro da VM (a URL é a mesma para todas as VMs)

curl -H @{'Metadata'='true'} http://169.254.169.254/metadata/instance?api-version=2017-03-01

e ele retornará um objeto json com dados sobre a VM, incluindo a região:

{
  "compute": {
    "location": "westus",
    "name": "avset2",
    "offer": "UbuntuServer",
    "osType": "Linux",
    "placementGroupId": "",
    "platformFaultDomain": "1",
    "platformUpdateDomain": "1",
    "publisher": "Canonical",
    "resourceGroupName": "myrg",
    "sku": "16.04-LTS",
    "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "tags": "",
    "version": "16.04.201708030",
    "vmId": "13f56399-bd52-4150-9748-7190aae1ff21",
    "vmScaleSetName": "",
    "vmSize": "Standard_D1",
    "zone": "1"
  },
  "network": {
    "interface": [
      {
        "ipv4": {
          "ipAddress": [
            {
              "privateIpAddress": "10.1.2.5",
              "publicIpAddress": "X.X.X.X"
            }
          ],
          "subnet": [
            {
              "address": "10.1.2.0",
              "prefix": "24"
            }
          ]
        },
        "ipv6": {
          "ipAddress": []
        },
        "macAddress": "000D3A36DDED"
      }
    ]
  }
}
    
por 18.09.2018 / 22:27

Tags