Solucionar problemas del registro de Ubuntu Pro


En ocasiones, Compute Engine no registra automáticamente las licencias de Ubuntu Pro de pago por uso. En este documento, se describe cómo resolver problemas que puedes encontrar cuando registras instancias de máquina virtual (VM) de Compute Engine que ejecutan licencias de Ubuntu de pago por uso (PAYG).

Comprobar el estado del registro

Para verificar si tu licencia está registrada, conéctate a la VM y ejecuta el siguiente comando:

sudo ua status

Si el registro se realizó correctamente, verás un resultado similar al siguiente y no se requiere ninguna acción adicional:

SERVICE          ENTITLED  STATUS    DESCRIPTION
cc-eal           yes       disabled  Common Criteria EAL2 Provisioning Packages
cis              yes       disabled  Security compliance and audit tools
esm-apps         yes       enabled   Expanded Security Maintenance for Applications
esm-infra        yes       enabled   Expanded Security Maintenance for Infrastructure
fips             yes       disabled  NIST-certified core packages
fips-updates     yes       disabled  NIST-certified core packages with priority security updates
livepatch        yes       enabled   Canonical Livepatch service

Si el registro falló y Ubuntu Pro no está registrado, verás un mensaje similar al siguiente:

This machine is not attached to an Ubuntu Pro subscription.

Registra la licencia de forma manual

Si Compute Engine no pudo registrar automáticamente tu licencia de Ubuntu Pro, puedes ejecutar el siguiente comando para registrarla de forma manual:

sudo pro auto-attach

El resultado es similar a este:

  • Registro exitoso:

    This machine is already attached to PROJECT_ID
    To use a different subscription first run: sudo pro detach.
    
  • Error de registro:

    Internal Server Error
    

Soluciona problemas de registro de licencias

Si no pudiste registrar una licencia de Ubuntu Pro de forma manual, haz lo siguiente para resolver el problema:

  1. Ejecuta el siguiente comando para verificar que la VM pueda conectarse al servidor de metadatos y comprobar la cantidad de discos conectados a la VM:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
    

    El resultado es similar al siguiente, que muestra la cantidad de discos conectados a la VM:

    0/
    1/
    2/
    

    Si el resultado no muestra la cantidad de discos conectados a la VM, consulta Soluciona problemas de acceso al servidor de metadatos.

  2. Ejecuta el siguiente comando para verificar que el agente invitado de Google se esté ejecutando:

    systemctl status google-guest-agent.service
    

    El resultado es similar a este:

    ● google-guest-agent.service - Google Compute Engine Guest Agent
    Loaded: loaded (/lib/systemd/system/google-guest-agent.service; enabled;
    vendor preset: enabled)
    Active: active (running) since Thu 2023-04-20 16:35:11 PDT; 2h 12min ago
    Main PID: 4582 (google_guest_ag)
    Tasks: 10 (limit: 9525)
    

    Si el agente de invitado no está instalado o falla, instala o reinstala el entorno de invitado.

  3. Ejecuta el siguiente comando desde tu estación de trabajo local para verificar que una cuenta de servicio esté conectada a la VM:

    gcloud compute instances describe VM_NAME \
       --zone ZONE --format="table(serviceAccounts.email)"
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la VM
    • ZONE: La zona donde se ubica la VM.

    El resultado es similar a este:

    EMAIL: ['XXXXXXXX-compute@developer.gserviceaccount.com']
    

    Anota el correo electrónico de la cuenta de servicio.

  4. Ejecuta la siguiente consulta para verificar si la cuenta de servicio está habilitada:

    gcloud logging read --freshness=90d "SERVICE_ACCOUNT_EMAIL protoPayload.methodName=google.iam.admin.v1.DisableServiceAccount"
    

    Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico asociada con la cuenta de servicio de la VM.

    El resultado es similar a este:

    insertId: 1ne5thkf13sxec
    logName: projects/testproject/logs/cloudaudit.googleapis.com%2Factivity
    protoPayload:
     '@type': type.googleapis.com/google.cloud.audit.AuditLog
    authenticationInfo:
    principalEmail: principalemail@google.com
    principalSubject: user:pricipalemail@google.com
    authorizationInfo:
     granted: true
    permission: iam.serviceAccounts.disable
    resource: projects/-/serviceAccounts/XXXXXXXXXXXXXX
    resourceAttributes:
      name: projects/-/serviceAccounts/XXXXXXXXXXXXXXXX
    methodName: google.iam.admin.v1.DisableServiceAccount
    request:
    '@type': type.googleapis.com/google.iam.admin.v1.DisableServiceAccountRequest
    name: projects/testproject/serviceAccounts/-compute@developer.gserviceaccount.com
    requestMetadata:
     destinationAttributes: {}
     requestAttributes:
       auth: {}
       time: '2024-01-25T21:37:55.748811275Z'
    resourceName: projects/-/serviceAccounts/XXXXXXXXXX
    response:
     '@type': type.googleapis.com/google.protobuf.Empty
     serviceName: iam.googleapis.com
     status: {}
    receiveTimestamp: '2024-01-25T21:37:56.409675900Z'
    resource:
    labels:
     email_id: -compute@developer.gserviceaccount.com
     project_id: testproject
     unique_id: 'XXXXXXXXXXXXXXXX'
    type: service_account
    severity: NOTICE
    timestamp: '2024-01-25T21:37:55.721215307Z'
    

    Si la cuenta de servicio no está habilitada, vuelve a habilitarla.

Después de volver a habilitar la cuenta de servicio, intenta registrar la licencia siguiendo las instrucciones de la sección Cómo registrar una licencia de forma manual de este documento.