Questa pagina descrive la configurazione delle VM per l'installazione di pacchetti Debian in 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 autenticazione.
Prepara una VM per accedere a un repository Apt
Repository privato
Scegli l'account di servizio da utilizzare per concedere l'accesso.
- Per le VM Compute Engine, potrebbe trattarsi dell'account di servizio predefinito. Artifact Registry recupera automaticamente le credenziali dell'account di servizio della VM Compute Engine per qualsiasi VM che utilizza un account di servizio.
- Per le altre VM, crea o scegli un account di servizio che agisca per conto della VM. Per configurare la VM, dovrai conoscere la posizione del file della chiave dell'account di servizio. Tu può visualizzare e creare chiavi per gli account esistenti sul 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
cloud-platform
ambiti di accesso API alla VM. Per informazioni sull'impostazione degli ambiti di accesso, consulta Modifica dell'account di servizio e degli ambiti di accesso per un'istanza.Aggiorna Apt utilizzando il seguente comando:
sudo apt update
Installa il pacchetto
apt-transport-artifact-registry
sulla VM:sudo apt install apt-transport-artifact-registry
VM Ubuntu
Installa le chiavi di firma del repository Apt utilizzando quanto segue :
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 posizione del repository.Assegna
cloud-platform
ambiti di accesso API alla VM. Per informazioni su come impostare gli ambiti di accesso, consulta Modificare l'account di servizio e gli ambiti di accesso di un'istanza.Configura la tua 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.list
Aggiorna Apt utilizzando il seguente comando:
sudo apt update
Installa il pacchetto
apt-transport-artifact-registry
sulla 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
LOCATION
con la posizione del repository.Configura la tua 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.list
Aggiorna Apt utilizzando il seguente comando:
sudo apt update
Installa il pacchetto
apt-transport-artifact-registry
sulla VM:sudo apt install apt-transport-artifact-registry
Individua la riga
#Service-Account-JSON "/path/to/creds.json";
nel file/etc/apt/apt.conf.d/90artifact-registry
, poi annullarne il commento 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 con le chiavi per l'account di servizio.
Repository pubblico
Configurare l'accesso pubblico nel repository.
Se stai configurando una VM al di fuori di Google Cloud, prepara la macchina per accedere al repository. Se stai configurando una VM 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
LOCATION
con la posizione del repository.Aggiorna Apt utilizzando il seguente comando:
sudo apt update
Configurare 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 Comando
gcloud beta artifacts print-settings apt
:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATION
Sostituisci quanto segue:
- LOCATION è una o più regioni località.
- REPOSITORY è il nome di Artifact Registry repository Git.
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 per recuperare i pacchetti dal tuo repository utilizzando l'
echo
dall'output del comandoprint-settings
.Ad esempio, per installare i pacchetti dal repository pubblico
my-repo
nel progettomy-project
e nella posizioneus-central1
, utilizza il seguente comando:echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
Aggiorna le origini del repository con il seguente comando:
sudo apt update
Apt ora può connettersi al repository.
Se crei altri repository Apt, puoi aggiungerli
artifact-registry.list
file, quindi esegui nuovamente sudo apt update
per aggiornarlo
delle origini del repository.
Configurare una VM per accedere a un repository Apt remoto
Configurare una VM in modo che utilizzi solo un repository Apt remoto anziché un repository Apt
il repository Apt a monte, sostituisci il repository standard con il repository
nel file /etc/apt/sources.list
della VM.
Concedi le autorizzazioni di scrittura di 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
Vai alla sezione Pagina Istanze VM.
Nella riga della VM, fai clic su SSH.
Si apre una nuova finestra con una sessione del terminale sulla VM.
Apri il file
/etc/apt/sources.list
della VM e individua il repository standard che vuoi sostituire con il nuovo repository remoto.Elimina la riga del repository standard e sostituiscila con quanto segue:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
Sostituisci quanto segue:
LOCATION
con la località regionale o multiregionale del repository remoto.PROJECT_ID
con l'ID progetto della VM.REMOTE_REPOSITORY_NAME
con il nome che hai assegnato al tuo telecomando repository Git.UPSTREAM_REPOSITORY_NAME
con il nome dell'upstream repository Git per il telecomando.COMPONENTS
con un elenco separato da spazi vuoti di i nomi dei componenti.
Ad esempio, quanto segue configura la VM per il recupero di pacchetti dal repository
my-repo
nel progettomy-project
in localitàus-east1
utilizzandobuster
come repository upstream per i componentimain
,contrib
enon-free
.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
Aggiorna le origini del repository con il seguente comando:
sudo apt update
Apt ora 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 il seguente 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 una o più regioni località del repository remoto.PROJECT_ID
con l'ID progetto della VM.REMOTE_REPOSITORY_NAME
con il nome che hai assegnato al repository remoto.UPSTREAM_REPOSITORY_NAME
con il nome del repository upstream per il tuo computer remoto.COMPONENTS
con un elenco separato da spazi di nomi di componenti.
Se crei altri repository Apt, puoi aggiungerli
artifact-registry.list
o sources.list
file ed esegui nuovamente sudo apt update
per aggiornare le origini del 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 l'accesso tramite HTTP. Le richieste inviate ai repository di dominio pubblico leggibili 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 tuo repository utilizzando HTTP, esegui il seguente 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 posizione del repository.
- PROJECT_ID con l'ID progetto del repository.
- REPOSITORY con il nome del repository.
Ad esempio, per installare i pacchetti dal repository pubblico
my-repo
nel progettomy-project
e nella posizioneus-central1
utilizzando HTTP, utilizza il seguente comando:echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
Aggiorna le origini del repository con il seguente comando:
sudo apt update
Apt ora può connettersi al repository.
Se crei altri repository Apt, puoi aggiungerli
artifact-registry.list
file, quindi esegui nuovamente sudo apt update
per aggiornarlo
delle origini del repository.