Configurar VMs para instalar pacotes do Debian

Nesta página, descrevemos 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. É 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, 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ê 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.
  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 cloud-platform escopos de acesso à API à 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 apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Substitua LOCATION pelo local regional do repositório.

    2. Atribua cloud-platform escopos de acesso à API à 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 apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      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 Trusted Cloud, 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 apt-key add -
    

    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á 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
    
  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 para 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