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
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.
Conceda autorizações de acesso ao repositório à sua conta de serviço.
Prepare a VM para aceder ao repositório.
VM do Compute Engine
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.Atualize a cache de pacotes através do seguinte comando:
sudo yum makecacheInstale o plug-in do Artifact Registry na VM através do seguinte comando:
sudo yum install FORMAT-plugin-artifact-registrySubstitua o seguinte:
FORMATcom uma das seguintes opções:yum, se o seu sistema operativo for o Enterprise Linux 7 ou anteriordnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
Outra VM
Instale a chave de assinatura RPM através do seguinte comando:
sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgCrie um ficheiro com o nome
/etc/yum.repos.d/artifact-registry-plugin.repocom 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:
FORMATcom uma das seguintes opções:yum, se o seu sistema operativo for o Enterprise Linux 7 ou anteriordnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
DISTROcom a versão principal do Red Hat Enterprise Linux no formatoelX, em queXé a versão de lançamento. Exemplos de valoresDISTROválidos sãoel7eel8.
Atualize o Yum através do seguinte comando:
sudo yum makecacheInstale o plug-in do Artifact Registry na VM através do seguinte comando:
yum install FORMAT-plugin-artifact-registrySubstitua
FORMATpor uma das seguintes opções:yum, se o seu sistema operativo for o Enterprise Linux 7 ou anteriordnf, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
Encontre a linha
#service_account_json = "/path/to/creds.json"no ficheiroartifact-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_KEYpelo caminho para o ficheiro JSON da chave da conta de serviço.- Para sistemas operativos Enterprise Linux 7 ou anteriores, o caminho para o ficheiro de configuraçã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:
Execute o comando
gcloud beta artifacts print-settings yumpara gerar o comando de configuração da VM:gcloud beta artifacts print-settings yum \ --repository=REPOSITORY \ --location=LOCATIONSubstitua 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
Configure a ferramenta de cliente
yumpara obter pacotes do seu repositório através do comandoteea partir do resultado do comandoprint-settings.Por exemplo, para instalar pacotes do
my-repopúblico no projetomy-projecte na localizaçãous-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
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/.
Aceda à página de instâncias de VM.
Na linha com a sua VM, clique em SSH. É aberta uma nova janela com uma sessão de terminal na VM.
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].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.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=1Substitua o seguinte:
YUM_REPOSITORY_NAMEcom 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_IDcom o ID do projeto da VM.REMOTE_REPOSITORY_NAMEcom 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_NAMEcom um ID de repositório exclusivo de uma palavra para o seu repositório Yum remoto.REPOSITORY_NAMEcom o nome legível do repositório.LOCATIONcom a localização regional ou multirregional do repositório remoto.PROJECT_IDcom o ID do projeto da VM.REMOTE_REPOSITORY_NAMEcom 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