Configure VMs para instalar pacotes RPM

Esta página descreve a configuração de VMs para instalar pacotes RPM a partir de um repositório Yum do Artifact Registry. Os repositórios Yum do Artifact Registry suportam clientes yum e dnf.

Antes de começar

Se o repositório Yum de destino não existir, crie um novo repositório. Pode criar um repositório privado ou um repositório público que não requer autenticação.

Prepare uma VM para aceder a um repositório Yum

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

Repositório privado

  1. 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.
  2. Conceda autorizações de acesso ao repositório à sua conta de serviço.

  3. Prepare a VM para aceder ao repositório.

    VM do Compute Engine

    1. 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.

    2. Atualize a cache de pacotes através do seguinte comando:

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

      sudo yum install FORMAT-plugin-artifact-registry
      

      Substitua o seguinte:

      • FORMAT com uma das seguintes opções:
        • yum, se o seu sistema operativo for o Enterprise Linux 7 ou anterior
        • dnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior

    Outra VM

    1. Instale a chave de assinatura RPM através do seguinte comando:

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. Crie um ficheiro com o nome /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 o seguinte:

      • FORMAT com uma das seguintes opções:
        • yum, se o seu sistema operativo for o Enterprise Linux 7 ou anterior
        • dnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
      • DISTRO com a versão principal do Red Hat Enterprise Linux no formato elX, em que X é a versão de lançamento. Exemplos de valores DISTRO válidos são el7 e el8.
    3. Atualize o Yum através do seguinte comando:

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

      yum install FORMAT-plugin-artifact-registry
      

      Substitua FORMAT por uma das seguintes opções:

      • yum, se o seu sistema operativo for o Enterprise Linux 7 ou anterior
      • dnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
    5. Encontre a linha #service_account_json = "/path/to/creds.json" no ficheiro artifact-registry.conf, descomente a linha e adicione o caminho da chave da conta de serviço.

      • Para sistemas operativos Enterprise Linux 7 ou anteriores, o caminho para o ficheiro de configuração é /etc/yum/pluginconf.d/artifact-registry.conf.
      • Para sistemas operativos Enterprise Linux 8 ou posteriores, o caminho para o ficheiro de configuração é /etc/dnf/plugins/artifact-registry.conf.

      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.

Configure uma VM para aceder a um repositório Yum padrão

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

  1. Execute o comando gcloud beta artifacts print-settings yum para gerar o comando de configuração da VM:

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

    Substitua o seguinte:

    • REPOSITORY é o nome do repositório do Artifact Registry.
    • LOCATION é a localização regional ou multirregional do repositório.

    O resultado é semelhante ao seguinte:

    # 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 obter pacotes do seu repositório através do comando tee a partir do resultado do comando print-settings.

    Por exemplo, para instalar pacotes do my-repo público no projeto my-project e na localização us-west1, use o seguinte comando:

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

    sudo yum makecache
    

Agora, o Yum pode estabelecer ligação ao repositório.

Se criar repositórios Yum adicionais, crie um ficheiro .repo para cada um deles em /etc/yum.repos.d/. Volte a executar sudo yum update para atualizar as origens do repositório.

Configure uma VM para aceder a um repositório Yum remoto

Para configurar uma VM para usar apenas um repositório Yum remoto em vez de um repositório Yum a montante padrão, substitua o repositório padrão na lista de repositórios da VM pelo repositório remoto.

Se o repositório padrão estiver definido no ficheiro de configuração em vez de num ficheiro de repositório separado (.repo), pode eliminar a entrada no ficheiro de configuração e substituí-la pelo seu repositório remoto ou definir um novo ficheiro de repositório no diretório /etc/yum.repos.d/.

  1. Aceda à página de instâncias de VM.

  2. Na linha com a sua VM, clique em SSH. É aberta uma nova janela com uma sessão de terminal na VM.

  3. Abra a pasta /etc/yum.repos.d/ da MV e encontre o ficheiro do repositório (.repo) adequado que contém o repositório a montante padrão. Por vezes, isto é denominado repositório base. O repositório base pode ser identificado pelo nome do repositório Yum que contém [base] ou [baseos].

  4. Para substituir completamente o repositório base, remova as predefinições em [base] ou [baseos]. Se quiser manter o repositório de upstream padrão e adicionar o repositório remoto como uma opção alternativa, não remova as predefinições.

  5. Adicione as seguintes definições em [base] ou [baseos]:

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

    Substitua o seguinte:

  • YUM_REPOSITORY_NAME com um ID de repositório exclusivo de uma palavra para o seu repositório Yum remoto. Este nome pode corresponder ao nome do repositório a montante se tiver eliminado a configuração do repositório a montante padrão ou, se mantiver o repositório a montante padrão, pode usar um nome diferente para o identificar como um repositório remoto.
  • 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 legível do repositório remoto.

Use um repositório Yum 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 do repositório e criar um novo ficheiro do repositório na pasta /etc/yum.repos.d.

Para criar um novo ficheiro 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 o seguinte:

  • YUM_REPOSITORY_NAME com um ID de repositório exclusivo de uma palavra para o seu repositório Yum remoto.
  • REPOSITORY_NAME com o nome legível do repositório.
  • 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 repositório remoto.

Por exemplo, o comando seguinte configura a VM para obter o repositório my-repo no projeto my-project e na localização us-west1 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-west1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF

O que se segue?