Configurazione delle VM per l'installazione di pacchetti Debian

In questa pagina viene descritta la configurazione delle VM per l'installazione di pacchetti Debian da un repository Artifact Registry Apt.

Prima di iniziare

Se il repository Apt di destinazione non esiste, crea un nuovo repository standard o remoto. Puoi creare un repository privato o pubblico che non richiede l'autenticazione.

Prepara una VM per accedere a un repository Apt

Repository privato

  1. Scegli l'account di servizio che utilizzerai per concedere l'accesso.

    • Per le VM di Compute Engine, potrebbe essere l'account di servizio predefinito. Artifact Registry recupera automaticamente le credenziali dell'account di servizio VM di Compute Engine per qualsiasi VM utilizzando un account di servizio.
    • Per le altre VM, crea o scegli un account di servizio che agisca per conto della tua VM. Avrai bisogno della posizione del file della chiave dell'account di servizio per configurare la VM. Puoi visualizzare e creare chiavi per gli account esistenti nella pagina Account di servizio.
  2. Concedi le autorizzazioni di accesso al repository al tuo account di servizio.

  3. Prepara la VM per accedere al repository.

    VM di Compute Engine

    VM Debian

    1. Assegna cloud-platform ambiti di accesso API alla VM. Per informazioni sull'impostazione degli ambiti di accesso, vedi Modificare l'account di servizio e gli ambiti di accesso per un'istanza.

    2. Aggiorna Apt utilizzando il seguente comando:

      sudo apt update
      
    3. Installa il pacchetto apt-transport-artifact-registry sulla VM:

      sudo apt install apt-transport-artifact-registry
      

    VM Ubuntu

    1. Installa le chiavi di firma del repository Apt utilizzando il seguente comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Sostituisci LOCATION con la località del repository.

    2. Assegna cloud-platform ambiti di accesso API alla VM. Per informazioni sull'impostazione degli ambiti di accesso, vedi Modificare l'account di servizio e gli ambiti di accesso per un'istanza.

    3. Configura la tua VM per accedere ai pacchetti di Artifact Registry utilizzando il seguente comando:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    4. Aggiorna Apt utilizzando il seguente comando:

      sudo apt update
      
    5. Installa il pacchetto apt-transport-artifact-registry sulla VM:

      sudo apt install apt-transport-artifact-registry
      

    Altra VM

    1. Installa le chiavi di firma del repository Apt utilizzando il seguente comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Sostituisci LOCATION con la località del repository.

    2. Configura la tua VM per accedere ai pacchetti di Artifact Registry utilizzando il seguente comando:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    3. Aggiorna Apt utilizzando il seguente comando:

      sudo apt update
      
    4. Installa il pacchetto apt-transport-artifact-registry sulla VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Trova la riga #Service-Account-JSON "/path/to/creds.json"; nel file /etc/apt/apt.conf.d/90artifact-registry, quindi rimuovi il commento dalla riga e aggiungi il percorso della chiave dell'account di servizio.

      Voce del file di configurazione:

      Service-Account-JSON  "PATH_TO_SERVICE_ACCOUNT_KEY";
      

      Sostituisci PATH_TO_SERVICE_ACCOUNT_KEY con il percorso del file JSON della chiave dell'account di servizio.

Repository pubblico

  1. Configura l'accesso pubblico al repository.

  2. Se stai configurando una VM al di fuori di Google Cloud, prepara la macchina per l'accesso al repository. Se stai configurando una VM di Compute Engine, vai al passaggio successivo.

    Installa la chiave di verifica della firma pubblica, utilizzando il seguente comando:

    curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    

    Sostituisci LOCATION con la posizione del repository.

  3. Aggiorna Apt utilizzando il seguente comando:

    sudo apt update
    

Configura una VM per accedere a un repository Apt standard

Configura una VM per accedere a un repository Apt:

  1. Genera il comando di configurazione della VM eseguendo il comando gcloud beta artifacts print-settings apt:

    gcloud beta artifacts print-settings apt \
        --repository=REPOSITORY \
        --location=LOCATION
    

    Sostituisci quanto segue:

    • LOCATION è una località a livello di una o più regioni.
    • REPOSITORY è il nome del repository Artifact Registry.

    L'output è simile al seguente:

    # To configure your package manager with this repository:
    
    # Update Apt:
    sudo apt update
    
    # Install the Apt credential helper:
    sudo apt install apt-transport-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    echo "deb ar+https://LOCATION-apt.pkg.dev/projects/PROJECT REPOSITORY main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
    # Update Apt:
    sudo apt update
    
  2. Configura Apt per recuperare i pacchetti dal tuo repository utilizzando il comando echo dall'output del comando print-settings.

    Ad esempio, per installare pacchetti dal repository pubblico my-repo nel progetto my-project e nella posizione us-central1, utilizza il seguente comando:

    echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Aggiorna le origini del repository con il seguente comando:

    sudo apt update
    

Ora Apt può connettersi al repository.

Se crei altri repository Apt, puoi aggiungerli al file artifact-registry.list ed eseguire nuovamente sudo apt update per aggiornare le origini repository.

Configura una VM per accedere a un repository Apt remoto

Per configurare una VM in modo che utilizzi solo un repository Apt remoto anziché un repository Apt upstream standard, sostituisci il repository standard con il tuo repository remoto nel file /etc/apt/sources.list della VM.

  1. Concedi le autorizzazioni di scrittura ad Artifact Registry a livello di progetto all'account di servizio Compute Engine predefinito:

     gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
       --role=roles/artifactregistry.writer
    
  2. Vai alla pagina Istanze VM.

  3. Nella riga con la tua VM, fai clic su SSH.

    Si apre una nuova finestra con una sessione del terminale sulla VM.

  4. Apri il file /etc/apt/sources.list della VM e individua il repository standard che vuoi sostituire con il nuovo repository remoto.

  5. Elimina la riga del repository standard e sostituiscila con la seguente:

    deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
    

    Sostituisci quanto segue:

    • LOCATION con la località a livello di una o più regioni del repository remoto.
    • PROJECT_ID con l'ID progetto della VM.
    • REMOTE_REPOSITORY_NAME con il nome che hai assegnato al tuo repository remoto.
    • UPSTREAM_REPOSITORY_NAME con il nome del repository upstream del tuo telecomando.
    • COMPONENTS con un elenco di nomi di componenti separati da spazi vuoti.

    Ad esempio, quanto segue configura la VM in modo che recuperi i pacchetti dal repository my-repo nel progetto my-project nella località us-east1 utilizzando buster come repository a monte per i componenti main, contrib e non-free.

    deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
    
  6. Aggiorna le origini del repository con il seguente comando:

    sudo apt update
    

    Ora Apt può connettersi al repository.

Usa un repository Apt remoto come backup

Se vuoi mantenere l'upstream standard come prima opzione e aggiungere il repository remoto come opzione di riserva, puoi mantenere l'upstream standard nel file sources.list e aggiungere il repository remoto alla fine del file sources.list oppure creare un nuovo elenco nella cartella sources.list.d.

Per creare un nuovo file artifact-registry.list nella cartella sources.list.d, esegui questo comando:

echo 'deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS' | sudo tee -a  /etc/apt/sources.list.d/artifact-registry.list

Sostituisci quanto segue:

  • LOCATION con la località a livello di una o più regioni del repository remoto.
  • PROJECT_ID con l'ID progetto della VM.
  • REMOTE_REPOSITORY_NAME con il nome che hai assegnato al tuo repository remoto.
  • UPSTREAM_REPOSITORY_NAME con il nome del repository upstream per il telecomando.
  • COMPONENTS con un elenco di nomi dei componenti separati da spazi vuoti.

Se crei repository Apt aggiuntivi, puoi aggiungerli al file artifact-registry.list o sources.list ed eseguire nuovamente sudo apt update per aggiornare le origini dei repository.

Configurazione dell'accesso HTTP a un repository Apt

Se utilizzi strumenti client meno recenti che non supportano la crittografia SSL, puoi configurare l'accesso pubblico al repository Apt e accedervi tramite HTTP. Le richieste inviate a repository leggibili pubblici utilizzando HTTP verranno rifiutate se insieme alla richiesta viene presentato un token di autenticazione.

  1. Configura l'accesso pubblico al repository.

  2. Per configurare Apt in modo che recuperi i pacchetti dal tuo repository utilizzando HTTP, esegui questo comando:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID REPOSITORY main' >> /etc/apt/sources.list.d/artifact-registry.list
    

    Sostituisci quanto segue:

    • LOCATION con la località del repository.
    • PROJECT_ID con l'ID progetto del repository.
    • REPOSITORY con il nome del repository.

    Ad esempio, per installare pacchetti dal repository pubblico my-repo nel progetto my-project e nella località us-central1 utilizzando HTTP, utilizza il comando seguente:

    echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
    
  3. Aggiorna le origini del repository con il seguente comando:

    sudo apt update
    

Ora Apt può connettersi al repository.

Se crei altri repository Apt, puoi aggiungerli al file artifact-registry.list ed eseguire nuovamente sudo apt update per aggiornare le origini repository.

Passaggi successivi