Recuperação de metadados
Introdução
Os metadados do BMS incluem informações básicas do BMS na plataforma em nuvem, como o ID do BMS, o nome do host e as informações da rede. Os metadados do BMS podem ser recuperados usando as APIs compatíveis do OpenStack e do EC2 listadas em Tabela 1.
Tipo de metadados |
Item de metadados |
Descrição |
---|---|---|
Tipo de OpenStack |
/meta_data.json |
Essa interface é usada para consultar metadados do BMS. Para os campos chave nos metadados do BMS, consulte Tabela 2. |
/password |
Essa interface é usada para consultar a senha do BMS. Se um par de chaves for selecionado durante a criação de um BMS do Windows, o Cloudbase-Init será usado para salvar a senha de texto cifrado quando o BMS for inicializado. |
|
/user_data |
Essa interface é usada para consultar dados do usuário do BMS. Esses metadados permitem especificar scripts e arquivos de configuração para inicializar BMSs. Para mais detalhes, consulte Injetação de dados do usuário. Para BMSs de Linux autenticados por senha, salve o script de injeção de senha. |
|
/network_data.json |
Essa interface é usada para consultar informações de rede de um BMS. |
|
/securitykey |
Esta interface é usada para obter credenciais de segurança temporárias: ID da Chave de Acesso (AK) e Chave de Acesso Secreta (SK). Antes de obter AK/SK temporária em um BMS, você precisa criar uma agência para o BMS no IAM e atribuir as permissões de recursos necessárias ao BMS. |
|
Tipo EC2 |
/meta-data/hostname |
Essa interface é usada para consultar o nome do host de um BMS. Para remover o sufixo .novalocal de um BMS, consulte: |
/meta-data/instance-type |
Essa interface é usada para consultar o nome de flavor de um BMS. |
|
/meta-data/local-ipv4 |
Essa interface é usada para consultar o endereço IP fixo de um BMS. Se houver as várias NIC, somente o endereço IP da NIC primária será exibido. |
|
/meta-data/placement/availability-zone |
Esta interface é usada para consultar informações da AZ sobre um BMS. |
|
/meta-data/public-ipv4 |
Esta interface é usada para consultar o EIP de um BMS. Se houver as várias NIC, somente o EIP da NIC principal será exibido. |
|
/meta-data/public-keys/0/openssh-key |
Essa interface é usada para consultar a chave pública de um BMS. |
|
/user-data |
Essa interface é usada para consultar dados do usuário do BMS. |
|
/meta-data/security-groups |
Essa interface é usada para consultar o nome do grupo de segurança do BMS. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
uuid |
String |
Especifica o ID do BMS. |
availability_zone |
String |
Especifica a AZ onde o BMS está localizado. |
meta |
Dict |
Especifica as informações de metadados, incluindo o nome da imagem, o ID da imagem e o ID da VPC. |
hostname |
String |
Especifica o nome do host do BMS. Para remover o sufixo .novalocal de um BMS, consulte: |
vpc_id |
String |
Especifica o ID da VPC onde o BMS está localizado. |
O seguinte descreve o URI e os métodos de uso dos metadados do BMS suportados.
Pré-requisitos
- Você fez logon no BMS.
- As regras de grupo de segurança na direção de saída atendem aos seguintes requisitos:
- Protocolo: TCP
- Intervalo de portas: 80
- Extremidade remota: 169.254.0.0/16
Se você usar as regras de grupo de segurança padrão na direção de saída, os requisitos anteriores serão atendidos e os metadados poderão ser acessados. A regra de grupo de segurança de saída padrão é a seguinte:
- Protocolo: qualquer
- Intervalo de portas: qualquer
- Extremidade remota: 0.0.0.0/16
Metadados (API de metadados do OpenStack)
Essa interface é usada para consultar metadados do BMS.
- URI
- Método
- Exemplo
Veja a seguir como usar a ferramenta cURL para consultar os metadados do BMS:
curl http://169.254.169.254/openstack/latest/meta_data.json
{ "random_seed": "rEocCViRS+dNwlYdGIxJHUp+00poeUsAdBFkbPbYQTmpNwpoEb43k9z+96TyrekNKS+iLYDdRNy4kKGoNPEVBCc05Hg1TcDblAPfJwgJS1okqEtlcofUhKmL3K0fto+5KXEDU3GNuGwyZXjdVb9HQWU+E1jztAJjjqsahnU+g/tawABTVySLBKlAT8fMGax1mTGgArucn/WzDcy19DGioKPE7F8ILtSQ4Ww3VClK5VYB/h0x+4r7IVHrPmYX/bi1Yhm3Dc4rRYNaTjdOV5gUOsbO3oAeQkmKwQ/NO0N8qw5Ya4l8ZUW4tMav4mOsRySOOB35v0bvaJc6p+50DTbWNeX5A2MLiEhTP3vsPrmvk4LRF7CLz2J2TGIM14OoVBw7LARwmv9cz532zHki/c8tlhRzLmOTXh/wL36zFW10DeuReUGmxth7IGNmRMQKV6+miI78jm/KMPpgAdK3vwYF/GcelOFJD2HghMUUCeMbwYnvijLTejuBpwhJMNiHA/NvlEsxJDxqBCoss/Jfe+yCmUFyxovJ+L8oNkTzkmtCNzw3Ra0hiKchGhqK3BIeToV/kVx5DdF081xrEA+qyoM6CVyfJtEoz1zlRRyoo9bJ65Eg6JJd8dj1UCVsDqRY1pIjgzE/Mzsw6AaaCVhaMJL7u7YMVdyKzA6z65Xtvujz0Vo=", "uuid": "ca9e8b7c-f2be-4b6d-a639-f10b4d994d04", "availability_zone": "lt-test-1c", "hostname": "bms-ddd4-l00349281.novalocal", "launch_index": 0, "meta": { "metering.image_id": "3a64bd37-955e-40cd-ab9e-129db56bc05d", "metering.imagetype": "gold", "metering.resourcespeccode": "physical.s3.small", "metering.cloudServiceType": "service.type.ec2", "image_name": "CentOS 7.6 64bit", "os_bit": "64", "vpc_id": "3b6c201f-aeb3-4bce-b841-64756e66cb49", "metering.resourcetype": "1", "cascaded.instance_extrainfo": "pcibridge:2", "os_type": "Linux", "charging_mode": "0" }, "project_id": "6e8b0c94265645f39c5abbe63c4113c6", "name": "ecs-ddd4-l00349281" }
Dados do usuário (API de metadados do OpenStack)
Essa interface é usada para consultar dados do usuário do BMS. O valor é configurado quando você cria um BMS. Não pode ser alterado após a configuração.
- URI
- Método
- Exemplo
curl http://169.254.169.254/openstack/latest/user_data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Se os dados do usuário não forem injetados durante a criação do BMS, o resultado da consulta será 404.Figura 1 404 Not Found
Dados de rede (API de metadados do OpenStack)
Essa interface é usada para consultar informações de rede de um BMS.
- URI
- Método
- Exemplo
curl http://169.254.169.254/openstack/latest/network_data.json
{ "services": [{ "type": "dns", "address": "100.125.1.250" }, { "type": "dns", "address": "100.125.21.250" }], "networks": [{ "network_id": "67dc10ce-441f-4592-9a80-cc709f6436e7", "type": "ipv4_dhcp", "link": "tap68a9272d-71", "id": "network0" }], "links": [{ "type": "cascading", "vif_id": "68a9272d-7152-4ae7-a138-3ef53af669e7", "ethernet_mac_address": "fa:16:3e:f7:c1:47", "id": "tap68a9272d-71", "mtu": null }] }
Chave de segurança (API de metadados do OpenStack)
Esta interface é usada para obter credenciais de segurança temporárias: ID da Chave de Acesso (AK) e Chave de Acesso Secreta (SK).
- Para obter AK/SK temporária em um BMS, você precisa criar uma agência para o BMS no IAM e atribuir as permissões de recursos necessárias ao BMS. Para obter detalhes, consulte Guia de usuário do Identity and Access Management.
- O par temporário de AK/SK expira uma hora depois, mas é atualizado 10 minutos antes do tempo de expiração. Durante os 10 minutos, os pares de AK/SK temporários novos e antigos podem ser usados.
- Ao usar AK/SK temporária, adicione 'X-Security-Token':securitytoken no cabeçalho da mensagem. O securitytoken é o valor retornado quando uma chamada é feita para a API.
Dados do usuário (API compatível com EC2)
Essa interface é usada para consultar dados do usuário do BMS. O valor é configurado quando você cria um BMS. Não pode ser alterado após a configuração.
- URI
- Método
- Exemplo
curl http://169.254.169.254/latest/user-data
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
Nome do host (API compatível com EC2)
Essa interface é usada para consultar o nome do host que acomoda um BMS. O sufixo .novalocal será adicionado posteriormente.
Tipo de instância (API compatível com EC2)
Essa interface é usada para consultar o nome de flavor de um BMS.
IPv4 local (API compatível com EC2)
Essa interface é usada para consultar o endereço IP fixo de um BMS. Se houver as várias NIC, somente o endereço IP da NIC primária será exibido.
Zona de disponibilidade (API compatível com EC2)
Esta interface é usada para consultar informações da AZ sobre um BMS.
IPv4 público (API compatível com EC2)
Esta interface é usada para consultar o EIP de um BMS. Se houver as várias NIC, somente o EIP da NIC principal será exibido.
Chaves públicas (API compatível com EC2)
Essa interface é usada para consultar a chave pública de um BMS.
- URI
- Método
- Exemplo
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI5Fw5k8Fgzajn1zJwLoV3+wMP+6CyvsSiIc/hioggSnYu/AD0Yqm8vVO0kWlun1rFbdO+QUZKyVr/OPUjQSw4SRh4qsTKf/+eFoWTjplFvd1WCBZzS/WRenxIwR00KkczHSJro763+wYcwKieb4eKRxaQoQvoFgVjLBULXAjH4eKoKTVNtMXAvPP9aMy2SLgsJNtMb9ArfziAiblQynq7UIfLnN3VclzPeiWrqtzjyOp6CPUXnL0lVPTvbLe8sUteBsJZwlL6K4i+Y0lf3ryqnmQgC21yW4Dzu+kwk8FVT2MgWkCwiZd8gQ/+uJzrJFyMfUOBIklOBfuUENIJUhAB Generated-by-Nova