Esta página descreve como configurar VMs para instalar pacotes Debian de um repositório Apt do Artifact Registry.
Antes de começar
Se o repositório Apt de destino não existir, crie um novo repositório padrão ou remoto. É possível criar um repositório particular ou público que não exija autenticação.
Preparar uma VM para acessar um repositório Apt
Repositório particular
Escolha a conta de serviço que você usará para conceder acesso.
- Para VMs do Compute Engine, essa pode ser a conta de serviço padrão. O Artifact Registry recupera automaticamente as credenciais da conta de serviço da VM do Compute Engine para qualquer VM usando uma conta de serviço.
- Para outras VMs, crie ou escolha uma conta de serviço para agir em nome dela. Você precisará do local do arquivo de chave da conta de serviço para configurar a VM. É possível ver e criar chaves para contas atuais na página Contas de serviço.
Conceda permissões de acesso ao repositório à sua conta de serviço.
Prepare a VM para acessar o repositório.
VM do Compute Engine
VM do Debian
Atribua escopos de acesso da API
cloud-platform
à VM. Para informações sobre como definir escopos de acesso, consulte Como alterar a conta de serviço e os escopos de acesso de uma instância.Atualize o Apt usando 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 do Apt usando o 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
pelo local do repositório.Atribua escopos de acesso da API
cloud-platform
à VM. Para informações sobre como definir escopos de acesso, consulte Como alterar a conta de serviço e os escopos de acesso de uma instância.Configure sua VM para acessar pacotes do Artifact Registry usando o 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 usando 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 do Apt usando o 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
pelo local do repositório.Configure sua VM para acessar pacotes do Artifact Registry usando o 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 usando 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 arquivo/etc/apt/apt.conf.d/90artifact-registry
, remova a marca de comentário e adicione o caminho da chave da conta de serviço.Entrada do arquivo de configuração:
Service-Account-JSON "PATH_TO_SERVICE_ACCOUNT_KEY";
Substitua
PATH_TO_SERVICE_ACCOUNT_KEY
pelo caminho para o arquivo JSON da chave da conta de serviço.
Repositório público
Configure o acesso público ao repositório.
Se você estiver configurando uma VM fora do Google Cloud, prepare sua máquina para acessar o repositório. Se você estiver configurando uma VM do Compute Engine, prossiga para a próxima etapa.
Instale a chave de verificação de assinatura pública com o seguinte comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
Substitua
LOCATION
pelo local do repositório.Atualize o Apt usando o seguinte comando:
sudo apt update
Configure uma VM para acessar um repositório Apt padrão
Configure uma VM para acessar um repositório Apt:
Gere o comando de configuração de VM executando o comando
gcloud beta artifacts print-settings apt
:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATION
Substitua:
- LOCATION é um local regional ou multirregional.
- REPOSITORY é o nome do repositório do Artifact Registry.
O resultado será assim:
# 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 buscar pacotes do seu repositório usando o comando
echo
na saída do comandoprint-settings
.Por exemplo, para instalar pacotes do repositório público
my-repo
no projetomy-project
e no localus-central1
, use o seguinte comando:echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
Atualize as origens do repositório com o seguinte comando:
sudo apt update
Agora o apt pode se conectar ao repositório.
Se você criar outros repositórios do Apt, poderá adicioná-los ao
arquivo artifact-registry.list
e executar sudo apt update
novamente para atualizar
as origens de repositório.
Configure uma VM para acessar um repositório Apt remoto
Para configurar uma VM para usar apenas um repositório Apt remoto em vez de um repositório upstream padrão, substitua o repositório padrão pelo seu repositório remoto no arquivo /etc/apt/sources.list
da VM.
Conceda permissões de gravação do Artifact Registry em todo o projeto à conta de serviço padrão do Compute Engine:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writer
Acesse a página Instâncias de VMs.
Na linha da sua VM, clique em SSH.
Uma nova janela é aberta com uma sessão de terminal na VM.
Abra o arquivo
/etc/apt/sources.list
da VM e localize o repositório padrão que você quer substituir pelo novo repositório remoto.Exclua 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:
LOCATION
pelo local regional ou multirregional do repositório remoto.PROJECT_ID
pelo ID do projeto da VM.REMOTE_REPOSITORY_NAME
pelo nome que você deu ao repositório remoto.UPSTREAM_REPOSITORY_NAME
pelo nome do repositório upstream do controle remoto.COMPONENTS
com uma lista separada por espaços em branco de nomes de componentes.
O exemplo a seguir configura a VM para buscar pacotes do repositório
my-repo
no projetomy-project
no localus-east1
usandobuster
como o repositório upstream 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
Agora o apt pode se conectar ao repositório.
Usar um repositório remoto do Apt como backup
Se você quiser manter o upstream padrão como a primeira opção e adicionar o
repositório remoto como uma opção alternativa, mantenha o upstream padrão no
arquivo sources.list
e anexe o repositório remoto ao final do
arquivo sources.list
ou crie uma nova lista na pasta sources.list.d
.
Para criar um novo arquivo 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:
LOCATION
pelo local regional ou multirregional do repositório remoto.PROJECT_ID
pelo ID do projeto da VM.REMOTE_REPOSITORY_NAME
pelo nome que você deu ao repositório remoto.UPSTREAM_REPOSITORY_NAME
pelo nome do repositório upstream do controle remoto.COMPONENTS
com uma lista separada por espaços em branco de nomes de componentes.
Se você criar mais repositórios Apt, poderá adicioná-los ao
arquivo artifact-registry.list
ou sources.list
e, em seguida, executar sudo apt update
novamente
para atualizar as origens do repositório.
Configurar o acesso HTTP a um repositório Apt
Se estiver usando ferramentas de cliente mais antigas que não são compatíveis com a criptografia SSL, será possível configurar o acesso público ao repositório Apt e acessá-lo via HTTP. As solicitações enviadas para repositórios legíveis públicos usando HTTP serão rejeitadas se um token de autenticação for apresentado com a solicitação.
Configure o acesso público ao repositório.
Para configurar o Apt para buscar pacotes do seu repositório usando HTTP, execute o seguinte comando:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID REPOSITORY main' >> /etc/apt/sources.list.d/artifact-registry.list
Substitua:
- LOCATION pelo local do repositório.
- PROJECT_ID pelo ID do projeto do repositório.
- REPOSITORY pelo nome do repositório.
Por exemplo, para instalar pacotes do repositório público
my-repo
no projetomy-project
e no localus-central1
usando HTTP, use o seguinte comando:echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
Atualize as origens do repositório com o seguinte comando:
sudo apt update
Agora o apt pode se conectar ao repositório.
Se você criar outros repositórios do Apt, poderá adicioná-los ao
arquivo artifact-registry.list
e executar sudo apt update
novamente para atualizar
as origens de repositório.