Questa pagina descrive la configurazione delle VM per installare pacchetti Debian da un repository Apt di Artifact Registry.
Prima di iniziare
Se il repository Apt di destinazione non esiste, crea un repository standard o remoto. Puoi creare un repository privato o un repository pubblico che non richiede l'autenticazione.Prepara una VM per accedere a un repository Apt
Repository privato
Scegli il account di servizio che utilizzerai per concedere l'accesso.
- Per le VM Compute Engine, potrebbe trattarsi dell'account di servizio predefinito. Artifact Registry recupera automaticamente le credenziali del account di servizio VM di Compute Engine per qualsiasi VM che utilizza un account di servizio.
- Per le altre VM, crea o scegli unaccount di serviziot che agisca per conto della VM. Per configurare la VM, avrai bisogno del percorso del file della chiave delaccount di serviziot. Puoi visualizzare e creare chiavi per gli account esistenti nella pagina Account di servizio.
Concedi le autorizzazioni di accesso al repository al tuo account di servizio.
Prepara la VM per accedere al repository.
VM di Compute Engine
VM Debian
Assegna ambiti di accesso API
cloud-platformalla VM. Per informazioni sulla configurazione degli ambiti di accesso, consulta Modifica del account di servizio e degli ambiti di accesso per un'istanza.Aggiorna Apt utilizzando il seguente comando:
sudo apt updateInstalla il pacchetto
apt-transport-artifact-registrysulla VM:sudo apt install apt-transport-artifact-registry
VM Ubuntu
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
LOCATIONcon la posizione regionale o multi-regione del repository.Assegna ambiti di accesso API
cloud-platformalla VM. Per informazioni sulla configurazione degli ambiti di accesso, consulta Modifica del account di servizio e degli ambiti di accesso per un'istanza.Configura la VM per accedere ai pacchetti 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.listAggiorna Apt utilizzando il seguente comando:
sudo apt updateInstalla il pacchetto
apt-transport-artifact-registrysulla VM:sudo apt install apt-transport-artifact-registry
Altra VM
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
LOCATIONcon la posizione regionale o multi-regione del repository.Configura la VM per accedere ai pacchetti 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.listAggiorna Apt utilizzando il seguente comando:
sudo apt updateInstalla il pacchetto
apt-transport-artifact-registrysulla VM:sudo apt install apt-transport-artifact-registryTrova 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 del account di servizio.Voce del file di configurazione:
Service-Account-JSON "PATH_TO_SERVICE_ACCOUNT_KEY";
Sostituisci
PATH_TO_SERVICE_ACCOUNT_KEYcon il percorso del file JSON della chiave dell'account di servizio.
Repository pubblico
Configura l'accesso pubblico al repository.
Se stai configurando una VM al di fuori di Google Cloud, prepara la macchina per accedere al repository. Se stai configurando una VM di Compute Engine, vai al passaggio successivo.
Installa la chiave pubblica di verifica della firma utilizzando il seguente comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -Sostituisci
LOCATIONcon la posizione regionale o multi-regione del repository.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:
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=LOCATIONSostituisci quanto segue:
-
LOCATIONè la posizione regionale o multiregionale del repository. 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
-
Configura Apt in modo che recuperi i pacchetti dal repository utilizzando il comando
echodall'output del comandoprint-settings.Ad esempio, per installare pacchetti dal repository pubblico
my-reponel progettomy-projecte nella localitàus-west1, utilizza il seguente comando:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
Aggiorna le origini del repository con il seguente comando:
sudo apt update
Ora Apt può connettersi al repository.
Se crei repository Apt aggiuntivi, puoi aggiungerli al file
artifact-registry.list e poi eseguire di nuovo sudo apt update per aggiornare
le origini dei repository.
Configurare 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 repository remoto nel file /etc/apt/sources.list della VM.
Concedi le autorizzazioni di scrittura Artifact Registry a livello di progetto al 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.writerVai alla pagina Istanze VM.
Nella riga della tua VM, fai clic su SSH.
Si apre una nuova finestra con una sessione del terminale sulla VM.
Apri il file
/etc/apt/sources.listdella VM e individua il repository standard che vuoi sostituire con il nuovo repository remoto.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 COMPONENTSSostituisci quanto segue:
LOCATIONcon la posizione regionale o multiregionale del repository remoto.PROJECT_IDcon l'ID progetto della VM.REMOTE_REPOSITORY_NAMEcon il nome che hai dato al repository remoto.UPSTREAM_REPOSITORY_NAMEcon il nome del repository upstream per il tuo remote.COMPONENTScon un elenco separato da spazi vuoti di nomi dei componenti.
Ad esempio, la seguente configurazione della VM per recuperare i pacchetti dal repository
my-reponel progettomy-projectnella posizioneus-east1utilizzandobustercome repository upstream per i componentimain,contribenon-free.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-freeAggiorna le origini del repository con il seguente comando:
sudo apt updateOra Apt può connettersi al repository.
Utilizzare 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 o 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è la posizione regionale o multiregionale del repository. PROJECT_IDcon l'ID progetto della VM.REMOTE_REPOSITORY_NAMEcon il nome che hai dato al repository remoto.UPSTREAM_REPOSITORY_NAMEcon il nome del repository upstream per il tuo repository remoto.COMPONENTScon un elenco separato da spazi di nomi dei componenti.
Se crei repository Apt aggiuntivi, puoi aggiungerli al file
artifact-registry.list o sources.list e poi eseguire di nuovo sudo apt update
per aggiornare le origini dei repository.
Configurare l'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 pubblicamente tramite HTTP verranno rifiutate se viene presentato un token di autenticazione con la richiesta.
Configura l'accesso pubblico al repository.
Per configurare Apt in modo che recuperi i pacchetti dal repository utilizzando HTTP, esegui il seguente comando:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \ REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listSostituisci quanto segue:
-
LOCATIONè la posizione regionale o multiregionale del repository. PROJECT_IDè l'ID progetto del repository.REPOSITORYè il nome del repository.
Ad esempio, per installare pacchetti dal repository pubblico
my-reponel progettomy-projecte nella localitàus-west1utilizzando HTTP, utilizza il seguente comando:echo 'deb http://us-west1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
-
Aggiorna le origini del repository con il seguente comando:
sudo apt update
Ora Apt può connettersi al repository.
Se crei repository Apt aggiuntivi, puoi aggiungerli al file
artifact-registry.list e poi eseguire di nuovo sudo apt update per aggiornare
le origini dei repository.