Recuperação de metadados de uma instância
Na maioria das vezes, você deseja coletar metadados de uma instância em execução e usá-los para inicializar outra instância de servidor virtual. Em outras ocasiões, talvez seja necessário coletar informações sobre anexos de rede ou anexos de volume. Revise o procedimento geral e as instruções passo a passo para habilitar o acesso ao serviço de metadados, criar um token de acesso de identidade e recuperar os metadados.
Procedimento geral para acessar os metadados da instância
A Tabela 1 descreve as etapas envolvidas no acesso aos metadados. As informações fornecem o contexto de cada etapa e os links para informações específicas para conclusão da etapa. Em um ambiente real, é mais provável que as etapas 3 a 5 sejam iniciadas pelo software de inicialização da sua instância no momento da inicialização ou por meio do cloud-init.
| Salto | Contexto | Chamado pelo serviço | Ação do usuário |
|---|---|---|---|
| 1 | IBM Cloud | VPC IU, CLI, API | O acesso ao serviço de metadados está desativado por padrão. É possível habilitar o acesso ao serviço de metadados em uma instância existente no console, na CLI ou com a API. |
| 2 | IBM Cloud |
|
Faça login na instância seguindo os procedimentos normais de inicialização. |
| 3 | Instância da VPC | Serviço de metadados | Execute o comando curl para chamar o serviço de tokens de metadados e obter um token de acesso de identidade. |
| 4 | Instância da VPC | Serviço de metadados | Execute um comando curl para chamar o serviço de metadados e recuperar as informações da instância. O token da etapa anterior é passado e os metadados são retornados. |
| 5 | Instância da VPC |
|
Analise o JSON retornado na etapa anterior para adquirir os dados do usuário. |
Procedimento de ponta a ponta para acessar metadados de uma instância
Localizar a instância em execução e habilitar o acesso ao serviço de metadados no console
-
No console IBM Cloud, clique no
do menu Navegação >
de infraestrutura > Computação > Instâncias do servidor virtual.
-
Localize a instância em execução na lista. Clique no nome da instância para exibir seus detalhes. Na guia Overview (Visão geral), role até os detalhes da configuração Advanced (Avançada ) e clique no botão de alternância para permitir o acesso ao serviço de metadados.
-
Se a instância já tiver um endereço IP flutuante (mostrado na guia Rede), use esse endereço para estabelecer uma conexão segura com o servidor. Se ele não tiver um endereço IP flutuante, atribua um a ele. Para obter mais informações, consulte as Próximas etapas no tópico Criação de instâncias de servidor virtual.
Localizar a instância em execução e habilitar o acesso ao serviço de metadados a partir da CLI
-
Faça login na CLI do IBM Cloud.
-
Localize a instância em execução usando o comando
ibmcloud is instances, que lista as instâncias disponíveis na região.$ ibmcloud is instances Listing instances in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Status Reserved IP Floating IP Profile Image VPC Zone Confidential Compute Mode Enable Secure Boot Resource group Reservation Name Cluster Network ID Cluster Network Name Cluster Network Attachments 0717_9c55d9d2-0685-4300-b475-49eb1b8c1faf my-virtual-server-1 running 10.240.0.6 - bx2-2x8 ibm-ubuntu-24-04-2-minimal-amd64-1 my-test-vpc us-south-1 disabled false defaults - - - - 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 my-virtual-server-2 running 10.240.64.11 169.47.94.48 bx2-2x8 ibm-ubuntu-24-04-6-minimal-amd64-3 my-test-vpc us-south-2 disabled false defaults - - - - 0727_d7ff31ef-75ed-42c6-b0fb-a5837a63d722 my-virtual-server-3 running 10.240.64.12 52.116.204.232 bx2-2x8 ibm-redhat-9-2-minimal-amd64-5 my-test-vpc us-south-2 disabled false defaults - - - -O serviço de metadados é suportado em todas as imagens customizadas e do banco de imagens, bem como nos perfis de CPU.
-
Execute o comando
ibmcloud is instancepara confirmar se o acesso ao serviço de metadados está ativado. O exemplo a seguir mostra o valorfalse.$ ibmcloud is instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Getting instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit false http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
Habilite o acesso ao serviço de metadados executando o comando
ibmcloud is instance-updatecom a opção--metadata-service true.$ ibmcloud is instance-update 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 --metadata-service true Updating instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit true http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
Se a instância já tiver um endereço IP flutuante, use esse endereço para estabelecer uma conexão segura com o servidor. Se ele não tiver um endereço IP flutuante, atribua um a ele. Para obter mais informações, consulte as Próximas etapas no tópico Criação de instâncias de servidor virtual.
Localizar a instância em execução e habilitar o acesso ao serviço de metadados com a API
-
Localize a instância em execução listando as instâncias disponíveis na região. Selecione o ID da instância na resposta.
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token" -
Recupere as informações da instância selecionada para confirmar se o acesso ao serviço de metadados está ativado.
curl -X GET "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"A resposta da API mostra
"enabled": falsena seçãometadata_service.{ "availability_policy": { "host_failure": "restart", "host_maintenance": null }, "bandwidth": 4000, "boot_volume_attachment": { "device": { "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9-mzpzd" }, "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6/volume_attachments/0727-241f39a8-3573-4ebc-b512-33508eb970c9", "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9", "name": "undaunted-starved-slander-galleria", "volume": { "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::volume:r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "id": "r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "name": "eat-client-poc-boot-1741289020000", "resource_type": "volume" } }, "confidential_compute_mode": "disabled", "created_at": "2025-03-06T19:24:02.000Z", "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "disks": [], "enable_secure_boot": false, "health_reasons": [], "health_state": "ok", "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "id": "0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "image": { "crn": "crn:v1:bluemix:public:is:us-south:a/a1234567::image:r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "href": "https://us-south.iaas.cloud.ibm.com/v1/images/r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "id": "r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "name": "ibm-ubuntu-24-04-6-minimal-amd64-3", "resource_type": "image" }, "lifecycle_reasons": [], "lifecycle_state": "stable", "memory": 8, "metadata_service": { "enabled": false, "protocol": "http", "response_hop_limit": 1 } . . . } -
Habilite o acesso ao serviço de metadados fazendo uma
PATCH /instancessolicitação para a instância.curl -X PATCH "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "metadata_service": { "enabled": true, "protocol": "http", "response_hop_limit": 1 } }` -
Se a instância já tiver um endereço IP flutuante, use esse endereço para estabelecer uma conexão segura com o servidor. Se ele não tiver um endereço IP flutuante, atribua um a ele. Para obter mais informações, consulte Login na sua instância.
Estabelecimento de uma conexão segura com a instância do servidor virtual
Linux
O exemplo a seguir mostra a sintaxe de comando a ser usada para se conectar a uma instância de servidor baseada em Linux.
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
Windows
Os usuários do Windows têm requisitos adicionais para acessar e utilizar o serviço de metadados. Para obter mais informações, consulte “Configurando servidores Windows para usar o serviço de metadados ”.
Se o servidor estiver executando um sistema operacional Windows, use um cliente RDP para se conectar a ele.
Para obter mais informações, consulte Conectando-se à sua instância do Linux ou Conectando-se à sua instância do Windows.
Coleta de informações do serviço de metadados
Na instância do servidor virtual, faça uma solicitação à API de identidade para recuperar um token de identidade. Especifique por quanto tempo você deseja que o token permaneça válido. Por exemplo, você pode especificar 3600 segundos (1 hora).
export identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/identity/v1/token?version=2022-03-01"\
-H "Metadata-Flavor: ibm"\
-H "Accept: application/json"\
-d '{
"expires_in": 3600
}' | jq -r '(.access_token)'`
A resposta fornece o token de acesso à identidade. O analisador o salva no arquivo .access_token.
O exemplo usa jq como um analisador sintático, uma ferramenta de terceiros licenciada sob a Licença MIT. Alguns sistemas operacionais não incluem o jq por padrão. Instale o jq antes de usar ou substitua-o por outro analisador JSON.
Recuperação das informações de inicialização
Depois de obter o token de identidade, você pode fazer uma solicitação de API ao serviço de metadados para coletar as informações de inicialização:
curl -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance/initialization?version=2024-11-12"\
-H "Accept: application/json"\
-H "Authorization: Bearer $identity_token"\
| jq -r
A resposta da API contém informações como a chave SSH e os dados do usuário que foram especificados quando o servidor virtual foi provisionado. Se você tiver configurado senhas, essas informações também serão retornadas. Você pode usar essas informações para inicializar uma nova instância de servidor virtual.
Recuperação de informações da instância
Faça uma solicitação GET "/metadata/v1/instance" para obter informações detalhadas sobre a instância.
curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"
A resposta lista todos os detalhes de uma instância, incluindo interfaces de rede, perfil de cálculo e anexos de volume.
{
"boot_volume_attachment": {
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
"created_at": "2021-10-19T16:11:57Z",
"crn": "crn:[...]",
"disks": [],
"id": "eb1b7391-2ca2-4ab5-84a8-b92157a633b0",
"image": {
"crn": "crn:[...]",
"id": "9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366",
"name": "my-image"
},
"memory": 8,
"name": "my-instance",
"network_interfaces": [
{
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
}
],
"primary_network_interface": {
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
},
"profile": {
"name": "bx2-2x8"
},
"resource_type": "instance",
"vcpu": {
"architecture": "amd64",
"count": 2
},
"volume_attachments": [
{
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
{
"id": "e77125cb-4df0-4988-a878-531ae0ae0b70",
"name": "my-volume-attachment-1",
"volume": {
"crn": "crn:[...]",
"id": "2cc091f5-4d46-48f3-99b7-3527ae3f4392",
"name": "my-data-volume"
}
}
],
"volume_bandwidth_qos_mode": "weighted",
"vpc": {
"crn": "crn:[...]",
"id": "f0aae929-7047-46d1-92e1-9102b07a7f6f",
"name": "my-vpc",
"resource_type": "vpc"
},
"zone": {
"name": "us-south-1"
}
}
- Use outros métodos de API para recuperar mais informações sobre a instância, como anexos de volume e de rede, ou coletar informações sobre chaves SSH, grupos de posicionamento ou interfaces de rede virtual. Para obter mais informações, consulte a Referência da API do serviço de metadados e o Resumo das informações do serviço de metadados.
A tabela a seguir mostra mais métodos para solicitações GET da API que você pode fazer para obter informações específicas sobre a instância.
| Terminal de API | Descrição |
|---|---|
/metadata/v1/instance/cluster_network_attachments |
Lista de anexos de rede do cluster |
/metadata/v1/instance/cluster_network_attachments/{id} |
Recuperar uma conexão de rede do cluster |
/metadata/v1/instance/network_attachments |
Listar anexos de rede |
/metadata/v1/instance/network_attachments/{id} |
Recuperar um anexo de rede |
/metadata/v1/instance/network_interfaces |
Listar metadados para todas as interfaces de rede de uma instância. |
/metadata/v1/instance/network_interfaces/{id} |
Recuperar metadados para uma interface de rede por ID. |
/metadata/v1/instance/software_attachments |
Listar os metadados de todos os anexos de software de uma instância. |
/metadata/v1/instance/software_attachments/{id} |
Recuperar metadados de um anexo de software por ID. |
/metadata/v1/instance/volume_attachments |
Listar metadados para todos os anexos de volume de uma instância. |
/metadata/v1/instance/volume_attachment/{id} |
Recuperar metadados de um anexo de volume por ID. |
Próximas etapas
Utilize o perfil confiável da instância e gere um token do IAM a partir do token de identidade e acesso para outros serviços compatíveis com o IAM. Consulte Usando um perfil confiável para chamar os serviços ativados pelo IAM.