Risoluzione dei problemi di registrazione a Ubuntu Pro


A volte, Compute Engine non riesce a registrare le licenze PAYG Ubuntu Pro automaticamente. Questo documento descrive come risolvere i problemi che potresti riscontrare con la registrazione di istanze di macchine virtuali (VM) Compute Engine che eseguono il pagamento a consumo (PAYG) Licenze Ubuntu Pro.

Verifica lo stato della registrazione

Per verificare se la tua licenza è registrata, connettiti alla VM ed esegui il seguente comando

sudo ua status

Se la registrazione è andata a buon fine, viene visualizzato un output simile al seguente e non sono necessarie ulteriori azioni:

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

Se la registrazione non è andata a buon fine e Ubuntu Pro non è registrato, viene visualizzato un messaggio simile al seguente:

This machine is not attached to an Ubuntu Pro subscription.

Registra la licenza manualmente

Se Compute Engine non riesce a registrare automaticamente la licenza Ubuntu Pro, puoi registrare manualmente la licenza eseguendo questo comando:

sudo pro auto-attach

L'output è simile al seguente:

  • Registrazione riuscita:

    This machine is already attached to PROJECT_ID
    To use a different subscription first run: sudo pro detach.
    
  • Errore di registrazione:

    Internal Server Error
    

Risolvere i problemi di registrazione della licenza

Se non è stato possibile registrare manualmente una licenza Ubuntu Pro, risolvi il problema procedendo nel seguente modo:

  1. Verifica che la VM possa raggiungere il server di metadati eseguendo il seguente comando per controllare il numero di dischi collegati alla VM:

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

    L'output è simile al seguente, che mostra il numero di dischi collegati alla VM:

    0/
    1/
    2/
    

    Se l'output non mostra il numero di dischi collegati alla VM, consulta Risoluzione dei problemi di accesso al server dei metadati.

  2. Verifica che l'agente guest Google sia in esecuzione eseguendo questo comando:

    systemctl status google-guest-agent.service
    

    L'output è simile al seguente:

    ● 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)
    

    Se l'agente guest non è installato o non è riuscito, installa o reinstalla l'ambiente guest.

  3. Verifica che un account di servizio sia collegato alla VM eseguendo il seguente comando dalla tua workstation locale:

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

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM
    • ZONE: la zona in cui si trova la VM

    L'output è simile al seguente:

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

    Prendi nota dell'email dell'account di servizio.

  4. Verifica se l'account di servizio è abilitato eseguendo la seguente query:

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

    Sostituisci SERVICE_ACCOUNT_EMAIL con l'indirizzo email associati all'account di servizio della VM.

    L'output è simile al seguente:

    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'
    

    Se l'account di servizio non è abilitato, riattivalo.

Dopo aver riattivato l'account di servizio, prova a registrare la licenza seguendo le istruzioni riportate nella sezione Registrare manualmente la licenza di questo documento.