Esta página descreve a configuração de VMs para instalar pacotes Debian a partir de um repositório Apt do Artifact Registry.
Antes de começar
Se o repositório Apt de destino não existir, crie um repositório padrão ou remoto. Pode criar um repositório privado ou um repositório público que não exija autenticação.Prepare uma VM para aceder a um repositório Apt
Repositório privado
Escolha a conta de serviço que vai usar para conceder acesso.
- Para VMs do Compute Engine, pode ser a conta de serviço predefinida. O Artifact Registry obtém automaticamente as credenciais da conta de serviço da VM do Compute Engine para qualquer VM que use uma conta de serviço.
- Para outras VMs, crie ou escolha uma conta de serviço para agir em nome da sua VM. Precisa da localização do ficheiro de chave da conta de serviço para configurar a VM. Pode ver e criar chaves para contas existentes na página Contas de serviço.
Conceda autorizações de acesso ao repositório à sua conta de serviço.
Prepare a VM para aceder ao repositório.
VM do Compute Engine
VM do Debian
Atribua
cloud-platform
âmbitos de acesso à API à VM. Para ver informações sobre a definição de âmbitos de acesso, consulte o artigo Alterar a conta de serviço e os âmbitos de acesso de uma instância.Atualize o Apt com o seguinte comando:
sudo apt update
Instale o pacote
apt-transport-artifact-registry
na VM:sudo apt install apt-transport-artifact-registry
VM do Ubuntu
Instale as chaves de assinatura do repositório Apt através do seguinte 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 -
Substitua
LOCATION
pela localização regional ou multirregional do repositório.Atribua
cloud-platform
âmbitos de acesso à API à VM. Para ver informações sobre a definição de âmbitos de acesso, consulte o artigo Alterar a conta de serviço e os âmbitos de acesso de uma instância.Configure a sua VM para aceder a pacotes do Artifact Registry através do seguinte 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
Atualize o Apt com o seguinte comando:
sudo apt update
Instale o pacote
apt-transport-artifact-registry
na VM:sudo apt install apt-transport-artifact-registry
Outra VM
Instale as chaves de assinatura do repositório Apt através do seguinte 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 -
Substitua
LOCATION
pela localização regional ou multirregional do repositório.Configure a sua VM para aceder a pacotes do Artifact Registry através do seguinte 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
Atualize o Apt com o seguinte comando:
sudo apt update
Instale o pacote
apt-transport-artifact-registry
na VM:sudo apt install apt-transport-artifact-registry
Encontre a linha
#Service-Account-JSON "/path/to/creds.json";
no ficheiro/etc/apt/apt.conf.d/90artifact-registry
e, de seguida, remova o comentário da linha e adicione o caminho da chave da conta de serviço.Entrada do ficheiro de configuração:
Service-Account-JSON "PATH_TO_SERVICE_ACCOUNT_KEY";
Substitua
PATH_TO_SERVICE_ACCOUNT_KEY
pelo caminho para o ficheiro JSON da chave da conta de serviço.
Repositório público
Configure o acesso público ao repositório.
Se estiver a configurar uma VM fora do Google Cloud, prepare o seu computador para aceder ao repositório. Se estiver a configurar uma VM do Compute Engine, avance para o passo seguinte.
Instale a chave de validação de assinatura pública através do seguinte comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
Substitua
LOCATION
pela localização regional ou multirregional do repositório.Atualize o Apt com o seguinte comando:
sudo apt update
Configure uma VM para aceder a um repositório Apt padrão
Configure uma VM para aceder a um repositório Apt:
Execute o comando
gcloud beta artifacts print-settings apt
para gerar o comando de configuração da VM:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATION
Substitua o seguinte:
-
LOCATION
é a localização regional ou multirregional do repositório. REPOSITORY
é o nome do repositório do Artifact Registry.
O resultado é semelhante ao seguinte:
# 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
-
Configure o Apt para obter pacotes do seu repositório através do comando
echo
a partir do resultado do comandoprint-settings
.Por exemplo, para instalar pacotes do repositório público
my-repo
no projetomy-project
e na localizaçãous-west1
, use o seguinte comando:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
Atualize as origens do repositório com o seguinte comando:
sudo apt update
O Apt já pode estabelecer ligação ao repositório.
Se criar repositórios Apt adicionais, pode adicioná-los ao ficheiro artifact-registry.list
e, em seguida, executar novamente sudo apt update
para atualizar as origens dos repositórios.
Configure uma VM para aceder a um repositório Apt remoto
Para configurar uma VM para usar apenas um repositório Apt remoto em vez de um repositório Apt upstream padrão, substitua o repositório padrão pelo seu repositório remoto no ficheiro /etc/apt/sources.list
da VM.
Conceda autorizações de escrita do Artifact Registry ao nível do projeto à conta de serviço do Compute Engine predefinida:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writer
Aceda à página de instâncias de VM.
Na linha com a sua VM, clique em SSH.
É aberta uma nova janela com uma sessão de terminal na VM.
Abra o ficheiro
/etc/apt/sources.list
da VM e localize o repositório padrão que quer substituir pelo novo repositório remoto.Elimine a linha do repositório padrão e substitua-a pelo seguinte:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
Substitua o seguinte:
LOCATION
com a localização regional ou multirregional do repositório remoto.PROJECT_ID
com o ID do projeto da VM.REMOTE_REPOSITORY_NAME
com o nome que atribuiu ao seu repositório remoto.UPSTREAM_REPOSITORY_NAME
com o nome do repositório a montante do seu repositório remoto.COMPONENTS
com uma lista de nomes de componentes separados por espaços em branco.
Por exemplo, a seguinte configuração configura a VM para obter pacotes do repositório
my-repo
no projetomy-project
na localizaçãous-east1
usandobuster
como o repositório a montante para os componentesmain
,contrib
enon-free
.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
Atualize as origens do repositório com o seguinte comando:
sudo apt update
O Apt já pode estabelecer ligação ao repositório.
Use um repositório Apt remoto como alternativa
Se quiser manter o upstream padrão como a primeira opção e adicionar o repositório remoto como uma opção alternativa, pode manter o upstream padrão no ficheiro sources.list
e anexar o repositório remoto ao final do ficheiro sources.list
ou criar uma nova lista na pasta sources.list.d
.
Para criar um novo ficheiro artifact-registry.list
na pasta sources.list.d
, execute o seguinte 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
Substitua o seguinte:
-
LOCATION
é a localização regional ou multirregional do repositório. PROJECT_ID
com o ID do projeto da VM.REMOTE_REPOSITORY_NAME
com o nome que deu ao seu repositório remoto.UPSTREAM_REPOSITORY_NAME
com o nome do repositório a montante para o seu comando.COMPONENTS
com uma lista de nomes de componentes separados por espaços em branco.
Se criar repositórios Apt adicionais, pode adicioná-los ao ficheiro artifact-registry.list
ou sources.list
e, em seguida, executar novamente sudo apt update
para atualizar as origens do repositório.
Configure o acesso HTTP a um repositório Apt
Se usar ferramentas de cliente mais antigas que não suportam a encriptação SSL, pode configurar o acesso público ao seu repositório Apt e aceder ao mesmo através de HTTP. Os pedidos enviados para repositórios legíveis publicamente através de HTTP são rejeitados se for apresentado um token de autenticação com o pedido.
Configure o acesso público ao repositório.
Para configurar o Apt para obter pacotes do seu repositório através de HTTP, execute o seguinte comando:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \ REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
Substitua o seguinte:
-
LOCATION
é a localização regional ou multirregional do repositório. PROJECT_ID
é o ID do projeto do repositório.REPOSITORY
é o nome do repositório.
Por exemplo, para instalar pacotes do repositório público
my-repo
no projetomy-project
e na localizaçãous-west1
através de HTTP, use o seguinte 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
-
Atualize as origens do repositório com o seguinte comando:
sudo apt update
O Apt já pode estabelecer ligação ao repositório.
Se criar repositórios Apt adicionais, pode adicioná-los ao ficheiro artifact-registry.list
e, em seguida, executar novamente sudo apt update
para atualizar as origens dos repositórios.