Résoudre les problèmes d'enregistrement Ubuntu Pro


Il arrive parfois que Compute Engine ne parvienne pas à enregistrer automatiquement les licences PAYG Ubuntu Pro. Ce document explique comment résoudre les problèmes que vous pouvez rencontrer lors de l'enregistrement d'instances de machines virtuelles (VM) Compute Engine exécutant des licences Ubuntu Pro avec paiement à l'usage (PAYG).

Vérifier l'état de l'enregistrement

Pour vérifier si votre licence est enregistrée, connectez-vous à la VM et exécutez la commande suivante :

sudo ua status

Si l'enregistrement a réussi, un résultat semblable à ce qui suit s'affiche, et aucune autre action n'est requise :

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 l'enregistrement a échoué et qu'Ubuntu Pro n'est pas enregistré, un message semblable à celui-ci s'affiche :

This machine is not attached to an Ubuntu Pro subscription.

Enregistrer manuellement une licence

Si Compute Engine n'a pas réussi à enregistrer automatiquement votre licence Ubuntu Pro, vous pouvez l'enregistrer manuellement en exécutant la commande suivante :

sudo pro auto-attach

Le résultat ressemble à ce qui suit :

  • Enregistrement réussi :

    This machine is already attached to PROJECT_ID
    To use a different subscription first run: sudo pro detach.
    
  • Échec de l'enregistrement :

    Internal Server Error
    

Résoudre les problèmes d'enregistrement des licences

Si vous ne parvenez pas à enregistrer manuellement une licence Ubuntu Pro, résolvez le problème en procédant comme suit :

  1. Vérifiez que la VM peut accéder au serveur de métadonnées en exécutant la commande suivante pour vérifier le nombre de disques associés à la VM :

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

    Le résultat ressemble à ce qui suit, indiquant le nombre de disques associés à la VM :

    0/
    1/
    2/
    

    Si le résultat n'affiche pas le nombre de disques associés à la VM, consultez la section Résoudre les problèmes d'accès au serveur de métadonnées.

  2. Vérifiez que l'agent invité Google est en cours d'exécution en exécutant la commande suivante :

    systemctl status google-guest-agent.service
    

    Le résultat ressemble à ce qui suit :

    ● 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 l'agent invité n'est pas installé ou a échoué, installez ou réinstallez l'environnement invité.

  3. Vérifiez qu'un compte de service est associé à la VM en exécutant la commande suivante à partir de votre poste de travail local :

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

    Remplacez les éléments suivants :

    • VM_NAME : nom de la VM
    • ZONE : zone où se trouve la VM

    Le résultat ressemble à ce qui suit :

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

    Notez l'adresse e-mail du compte de service.

  4. Vérifiez si le compte de service est activé en exécutant la requête suivante :

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

    Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail associée au compte de service de la VM.

    Le résultat ressemble à ce qui suit :

    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 le compte de service n'est pas activé, réactivez-le.

Après avoir réactivé le compte de service, essayez d'enregistrer la licence en suivant les instructions de la section Enregistrer manuellement la licence de ce document.