IBM Cloud Docs
Recuperar metadatos de una instancia

Recuperar metadatos de una instancia

Lo más habitual es recopilar metadatos de una instancia en ejecución y utilizarlos para arrancar otra instancia de servidor virtual. En otras ocasiones, es posible que necesite recopilar información sobre anexos de red o anexos de volumen. Revise el procedimiento general y las instrucciones paso a paso para habilitar el servicio de metadatos, crear un token de acceso a la identidad de instancia y recuperar los metadatos.

Procedimiento general para acceder a los metadatos de la instancia

El Cuadro 1 describe los pasos necesarios para acceder a los metadatos. La información proporciona el contexto para cada paso y enlaza con información específica para completar el paso. En un entorno real, es más probable que los pasos 3 - 5 los inicie el software de inicialización de su instancia al arrancar o mediante cloud-init.

Procedimiento general de acceso a los metadatos
Paso Contexto Servicio llamado Acción del usuario
1 IBM Cloud IU, CLI y API de VPC El servicio de metadatos está inhabilitado de forma predeterminada. Puede activar el servicio de metadatos en una instancia existente en la consola, desde la CLI o con la API. Los datos de usuario de cliente se especifican en la creación de instancias.
2 IBM Cloud
Inicie sesión en la instancia mediante las operaciones de arranque normales.
3 Instancia de VPC Servicio de metadatos Ejecute un comando curl para llamar al servicio de token de metadatos para adquirir un token de acceso de identidad de instancia.
4 Instancia de VPC Servicio de metadatos Ejecute un comando curl para llamar al servicio de metadatos y recuperar la información de la instancia. Se pasa la señal del paso anterior y se devuelven los metadatos.
5 Instancia de VPC
Analice el JSON devuelto en el paso anterior para adquirir los datos de usuario.

Procedimiento completo para acceder a los metadatos de una instancia

Localización de la instancia en ejecución y habilitación del servicio de metadatos en la consola

  1. En la consola IBM Cloud, haga clic en el ícono del menú de navegación > ícono de Infraestructura VPC > Computación > Instancias de servidor virtual.

  2. Localice la instancia en ejecución en la lista. Haga clic en el nombre de la instancia para mostrar sus detalles. En la pestaña Visión general, desplácese hasta Detalles de configuración avanzada y haga clic en el conmutador para activar el servicio de metadatos.

  3. Si la instancia ya tiene una dirección IP flotante (mostrada en la pestaña Redes), utilice esa dirección para establecer una conexión segura con el servidor. Si no tiene una dirección IP flotante, asígnele una. Para más información, consulte los Pasos siguientes en el tema Creación de instancias de servidor virtual.

Localización de la instancia en ejecución y habilitación del servicio de metadatos desde la CLI

  1. Inicie sesión en IBM Cloud CLI.

  2. Localice la instancia en ejecución utilizando el comando ibmcloud is instances, que enumera las instancias disponibles en la región.

    $ 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         -                  -                    -                      -   
    

    El servicio de metadatos está soportado en todas las imágenes de stock y personalizadas y en los perfiles de CPU.

  3. Ejecute el comando ibmcloud is instance para confirmar si el servicio de metadatos está activado. El siguiente ejemplo muestra el valor false.

    $ 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   
    
  4. Habilite el servicio de metadatos ejecutando el comando ibmcloud is instance-update con la opción --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
    
  5. Si la instancia ya tiene una dirección IP flotante, utilice esa dirección para establecer una conexión segura con el servidor. Si no tiene una dirección IP flotante, asígnele una. Para más información, consulte los Pasos siguientes en el tema Creación de instancias de servidor virtual.

Localización de la instancia en ejecución y habilitación del servicio de metadatos con la API

  1. Localice la instancia en ejecución listando las instancias disponibles en la región. Seleccione el ID de instancia de la respuesta.

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. Recupera la información de la instancia seleccionada para confirmar si el servicio de metadatos está habilitado.

    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"
    

    La respuesta de la API muestra "enabled": false en la sección metadata_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
     }
     .
     .
     .
    }
    
  3. Habilite el servicio de metadatos realizando una PATCH /instances solicitud para la instancia.

    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
            }
        }`    
    
  4. Si la instancia ya tiene una dirección IP flotante, utilice esa dirección para establecer una conexión segura con el servidor. Si no tiene una dirección IP flotante, asígnele una. Para más información, consulte Iniciar sesión en su instancia.

Establecimiento de una conexión segura con la instancia del servidor virtual

Linux

El siguiente ejemplo muestra la sintaxis de comandos que se debe utilizar para conectarse a una instancia de servidor basada en Linux.

ssh -i <path to your private key file> <default-user-account>@<floating ip address>

Windows

Los usuarios de Windows tienen requisitos adicionales para acceder y utilizar el servicio de metadatos. Para obtener más información, consulte Configuración de servidores Windows para utilizar el servicio de metadatos.

Si su servidor ejecuta un sistema operativo Windows, utilice un cliente RDP para conectarse a él.

Para obtener más información, consulte Conexión con la instancia de Linux o Conexión con la instancia de Windows.

Recopilación de información del servicio de metadatos

Desde la instancia de servidor virtual, realice una solicitud a la API de identidad para recuperar un token de identidad de instancia. Especifique cuánto tiempo desea que el token siga siendo válido. Por ejemplo, puede especificar 3600 segundos (1 hora).

export instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2022-03-01"\
  -H "Metadata-Flavor: ibm"\
  -H "Accept: application/json"\
  -d '{
        "expires_in": 3600
      }' | jq -r '(.access_token)'`

La respuesta proporciona el token de acceso a la identidad de la instancia. El analizador lo guarda en el archivo .access_token.

El ejemplo utiliza jq como analizador sintáctico, una herramienta de terceros con licencia MIT. Es posible que jq no venga preinstalada en todas las imágenes de VPC disponibles al crear una instancia. Es posible que tenga que instalar jq antes de utilizarlo o utilizar otro analizador sintáctico de su elección.

Recuperación de la información de inicialización

Una vez obtenido el token de identidad, ya puede realizar una solicitud de API al servicio de metadatos para recopilar la información de inicialización:

curl -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance/initialization?version=2024-11-12"\
   -H "Accept: application/json"\
   -H "Authorization: Bearer $instance_identity_token"\
   | jq -r

La respuesta de la API contiene información como la clave SSH y los datos de usuario que se especificaron cuando se aprovisionó el servidor virtual. Si ha configurado contraseñas, dicha información también se devuelve. Puede utilizar esta información para arrancar una nueva instancia de servidor virtual.

Recuperación de información sobre instancias

Realice una solicitud a GET "/metadata/v1/instance" para recuperar información detallada sobre la instancia.

curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $instance_identity_token"

La respuesta lista todos los detalles de una instancia, incluidas las interfaces de red, el perfil de cálculo y los archivos adjuntos de volumen.

{
  "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"
      }
    }
  ],
  "vpc": {
    "crn": "crn:[...]",
    "id": "f0aae929-7047-46d1-92e1-9102b07a7f6f",
    "name": "my-vpc",
    "resource_type": "vpc"
  },
  "zone": {
    "name": "us-south-1"
  }
}
  1. Utilice otros métodos de la API para recuperar más información sobre la instancia, como los anexos de volumen y red, o recopilar información sobre claves SSH, grupos de colocación o interfaces de red virtuales. Para obtener más información, consulte la Referencia de la API del servicio de metadatos y el Resumen de la información del servicio de metadatos.

La siguiente tabla muestra más métodos para solicitudes GET de API que puede realizar para obtener información específica sobre la instancia.

URI de metadatos
Punto final de API Descripción
/metadata/v1/instance/cluster_network_attachments Lista de archivos adjuntos de la red de clústeres
/metadata/v1/instance/cluster_network_attachments/{id} Recuperar un archivo adjunto de red de clúster
/metadata/v1/instance/network_attachments Lista de archivos adjuntos de red
/metadata/v1/instance/network_attachments/{id} Recuperar un archivo adjunto de red
/metadata/v1/instance/network_interfaces Listar metadatos para todas las interfaces de red para una instancia.
/metadata/v1/instance/network_interfaces/{id} Recuperar metadatos para una interfaz de red por ID.
/metadata/v1/instance/volume_attachments Listar metadatos para todos los archivos adjuntos de volumen para una instancia.
/metadata/v1/instance/volume_attachment/{id} Recuperar metadatos para una conexión de volumen por ID.

Próximos pasos

Utilice el perfil de confianza para la instancia y genere una señal de IAM a partir de la señal de acceso de identidad de instancia para otros servicios habilitados para IAM. Consulte Utilización de un perfil de confianza para llamar a servicios habilitados para IAM.