Configurar VMs para instalar pacotes do Debian

Configurar instâncias de máquina virtual (VM) para se conectar a um repositório Apt do Artifact Registry permite instalar e atualizar pacotes Debian usando ferramentas Apt padrão. É possível configurar a autenticação e as fontes de repositório para VMs do Compute Engine extraírem pacotes de repositórios particulares ou públicos.

Antes de começar

Se o repositório Apt de destino não existir, crie um novo repositório padrão. É possível criar um repositório particular ou um repositório público que não exija autenticação.

Preparar uma VM para acessar um repositório do Apt

Repositório particular

  1. Escolha a conta de serviço que você vai 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 que use uma conta de serviço.
    • Para outras VMs, crie ou escolha uma conta de serviço para agir em nome da VM. Você vai precisar do local do arquivo de chave da conta de serviço para configurar a VM. É possível conferir e criar chaves para contas atuais na página Contas de serviço.
  2. Conceda permissões de acesso ao repositório à sua conta de serviço.

  3. Prepare a VM para acessar o repositório.

    VM do Compute Engine

    VM do Debian

    1. Atribua escopos de acesso da API cloud-platform à VM. Para informações sobre como definir escopos de acesso, consulte Como mudar a conta de serviço e os escopos de acesso de uma instância.

    2. Atualize o Apt usando o seguinte comando:

      sudo apt update
      
    3. Instale o pacote apt-transport-artifact-registry na VM:

      sudo apt install apt-transport-artifact-registry
      

    VM do Ubuntu

    1. Instale as chaves de assinatura do repositório Apt usando o seguinte comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpg
      

      Substitua LOCATION pelo local regional do repositório.

    2. Atribua escopos de acesso da API cloud-platform à VM. Para informações sobre como definir escopos de acesso, consulte Como mudar a conta de serviço e os escopos de acesso de uma instância.

    3. Configure a 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
      
    4. Atualize o Apt usando o seguinte comando:

      sudo apt update
      
    5. Instale o pacote apt-transport-artifact-registry na VM:

      sudo apt install apt-transport-artifact-registry
      

    Outra VM

    1. Instale as chaves de assinatura do repositório Apt usando o seguinte comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpg
      

      Substitua LOCATION pelo local regional do repositório.

    2. Configure a 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
      
    3. Atualize o Apt usando o seguinte comando:

      sudo apt update
      
    4. Instale o pacote apt-transport-artifact-registry na VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Encontre a linha #Service-Account-JSON "/path/to/creds.json"; no arquivo /etc/apt/apt.conf.d/90artifact-registry, remova o comentário da linha 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

  1. Configure o acesso público ao repositório.

  2. Se você estiver configurando uma VM fora do Cloud de Confiance, prepare sua máquina para acessar o repositório. Se você estiver configurando uma VM do Compute Engine, siga para a próxima etapa.

    Instale a chave pública de verificação de assinatura usando o seguinte comando:

    curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg
    

    Substitua LOCATION pelo local regional do repositório.

  3. Atualize o Apt usando o seguinte comando:

    sudo apt update
    

Configurar uma VM para acessar um repositório Apt padrão

Configure uma VM para acessar um repositório do Apt:

  1. Gere o comando de configuração da VM executando o comando gcloud beta artifacts print-settings apt:

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

    Substitua:

    • LOCATION é o local regional do repositório.
    • REPOSITORY é o nome do repositório do Artifact Registry.

    O resultado será o 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 [signed-by=/etc/apt/trusted.gpg.d/artifact-registry.gpg] 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. Configure o Apt para buscar pacotes do seu repositório usando o comando echo na saída do comando print-settings.

    Por exemplo, para instalar pacotes do repositório público my-repo no projeto my-project e no local u-france-east1, use o seguinte comando:

    echo 'deb ar+https://u-france-east1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Atualize as fontes 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, adicione-os ao arquivo artifact-registry.list e execute sudo apt update novamente para atualizar as fontes do repositório.

Configurar o acesso HTTP a um repositório do Apt

Se você estiver usando ferramentas de cliente mais antigas que não oferecem suporte à criptografia SSL, configure o acesso público ao seu repositório do Apt e acesse-o via HTTP. As solicitações enviadas a repositórios legíveis publicamente usando HTTP serão rejeitadas se um token de autenticação for apresentado com a solicitação.

  1. Configure o acesso público ao repositório.

  2. Para configurar o Apt para buscar pacotes do seu repositório usando HTTP, execute o comando a seguir:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \
     REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    

    Substitua:

    • LOCATION é o local regional 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 projeto my-project e no local u-france-east1 usando HTTP, use o seguinte comando:

    echo 'deb http://u-france-east1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  3. Atualize as fontes 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, adicione-os ao arquivo artifact-registry.list e execute sudo apt update novamente para atualizar as fontes do repositório.

A seguir