Configurar VMs para instalar pacotes RPM

Esta página descreve como configurar VMs para instalar pacotes RPM de um repositório Yum do Artifact Registry. Os repositórios do Artifact Registry Yum oferecem suporte a clientes yum e dnf.

Antes de começar

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

Preparar uma VM para acessar um repositório do Yum

Para preparar uma VM para acessar um repositório Yum, use a ferramenta de cliente yum ou dnf:

Repositório particular

  1. 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 de 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 ver e criar chaves para contas existentes 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

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

    2. Atualize o cache do pacote usando o seguinte comando:

      sudo yum makecache
      
    3. Instale o plug-in do Artifact Registry na VM usando o seguinte comando:

      sudo yum install FORMAT-plugin-artifact-registry
      

      Substitua:

      • FORMAT por um destes procedimentos:
        • yum, se o sistema operacional for Enterprise Linux 7 ou anterior
        • dnf, se o sistema operacional for Enterprise Linux 8 ou mais recente

    Outra VM

    1. Instale a chave de assinatura RPM usando o seguinte comando:

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. Crie um arquivo chamado /etc/yum.repos.d/artifact-registry-plugin.repo com o seguinte conteúdo:

      [ar-plugin]
      name=Artifact Registry Plugin
      baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable
      enabled=1
      gpgcheck=1
      

      Substitua:

      • FORMAT por um destes procedimentos:
        • yum, se o sistema operacional for Enterprise Linux 7 ou anterior
        • dnf, se o sistema operacional for Enterprise Linux 8 ou mais recente
      • DISTRO com a versão principal do Red Hat Enterprise Linux no formato elX, em que X é a versão da versão. Exemplos de valores válidos de DISTRO são el7 e el8.
    3. Atualize o Yum usando o seguinte comando:

      sudo yum makecache
      
    4. Instale o plug-in do Artifact Registry na VM usando o seguinte comando:

      yum install FORMAT-plugin-artifact-registry
      

      Substitua FORMAT por um dos seguintes:

      • yum, se o sistema operacional for Enterprise Linux 7 ou anterior
      • dnf, se o sistema operacional for Enterprise Linux 8 ou mais recente
    5. Localize a linha #service_account_json = "/path/to/creds.json". no arquivo artifact-registry.conf, remova a marca de comentário da linha e adicione o caminho da chave da sua conta de serviço.

      • Para sistemas operacionais Enterprise Linux 7 ou anteriores, o caminho para o arquivo de configuração é /etc/yum/pluginconf.d/artifact-registry.conf.
      • Para sistemas operacionais Enterprise Linux 8 ou mais recentes, o caminho o arquivo de configuração está /etc/dnf/plugins/artifact-registry.conf:

      Entrada do arquivo de configuração:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      Substitua PATH_TO_SERVICE_ACCOUNT_KEY pelo caminho do arquivo JSON da chave da conta de serviço.

Repositório público

  1. Configurar o acesso público no repositório.

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

Para configurar uma VM para acessar um repositório do Yum, use a ferramenta de cliente yum ou dnf:

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

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

    Substitua:

    • LOCATION é uma região regional ou multirregional location.
    • REPOSITORY é o nome do Artifact Registry. repositório de dados.

    O resultado será assim:

    # To configure your package manager with this repository:
    
    # Update Yum:
    sudo yum makecache
    
    # Install the Yum credential helper:
    sudo yum install yum-plugin-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [REPOSITORY]
    name=REPOSITORY
    baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
    # Update Yum:
    sudo yum makecache
    
  2. Configure a ferramenta de cliente yum para buscar pacotes do repositório usando o comando tee da saída do comando print-settings.

    Por exemplo, para instalar pacotes do my-repo público no projeto my-project e, no local us-central1, use o seguinte comando:

    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [my-repo]
    name=My Repository
    baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
  3. Atualize as fontes do repositório com o seguinte comando:

    sudo yum makecache
    

Agora, o Yum pode se conectar ao repositório.

Se você criar outros repositórios do Yum, crie um arquivo .repo para cada um deles. em /etc/yum.repos.d/. Execute sudo yum update novamente para atualizar as origens do repositório.

Configurar uma VM para acessar um repositório do Yum remoto

Configurar uma VM para usar apenas um repositório Yum remoto em vez de um repositório padrão repositório upstream do Yum, substitua o repositório padrão no repositório da VM lista com o repositório remoto.

Se o repositório padrão for definido no arquivo de configuração em vez de um arquivo de repositório separado (.repo), você pode excluir a entrada na configuração e substitua-o pelo controle remoto ou defina um novo arquivo de repositório no /etc/yum.repos.d/.

  1. Acesse a página Instâncias de VMs.

  2. Na linha da VM, clique em SSH. Uma nova janela é aberta com uma sessão do terminal na VM.

  3. Abra a pasta /etc/yum.repos.d/ da VM e encontre o arquivo de repositório adequado (.repo) que contém o repositório upstream padrão. Às vezes, ele é chamado de repositório base. O repositório base pode ser identificado pelo nome do repositório do Yum que contém [base] ou [baseos].

  4. Para substituir completamente o repositório base, remova as configurações padrão em [base]:

  5. Adicione o seguinte abaixo de [base]:

    [base]
    name=YUM_REPOSITORY_NAME
    baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
    enabled=1
    gpgcheck=1
    

    Substitua:

  • YUM_REPOSITORY_NAME com um ID de repositório exclusivo de uma palavra para o repositório remoto do Yum. Esse nome pode corresponder ao nome do repositório upstream se você tiver excluído a configuração dele ou um nome diferente para identificá-lo como um repositório remoto.
  • REPOSITORY_NAME pelo nome legível do repositório de dados.
    • LOCATION com o 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.

Usar um repositório do Yum remoto como backup

Se você quiser manter o upstream padrão como a primeira opção e adicionar o repositório remoto como alternativa, é possível manter o upstream padrão o arquivo de repositório e crie um novo arquivo de repositório no /etc/yum.repos.d do Compute Engine.

Para criar um novo arquivo de repositório na pasta /etc/yum.repos.d, execute o seguinte comando:

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[YUM_REPOSITORY_NAME]
name=REPOSITORY_NAME
baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
enabled=1
gpgcheck=1
EOF

Substitua:

  • YUM_REPOSITORY_NAME com um ID de repositório exclusivo de uma palavra para seu repositório remoto do Yum.
  • REPOSITORY_NAME com o nome legível do repositório.
    • LOCATION com o local regional ou multirregional do repositório remoto.
  • PROJECT_ID com o ID do projeto da VM.
  • REMOTE_REPOSITORY_NAME pelo nome que você deu ao repositório remoto.

Por exemplo, o comando a seguir configura a VM para buscar o repositório my-repo no projeto my-project e no local us-east1 quando o Yum instala o repositório my-repo.

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-east1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF

A seguir