Nesta página, descrevemos como configurar VMs para instalar pacotes RPM de
um repositório Yum do Artifact Registry. Os repositórios Yum do Artifact Registry são compatíveis com clientes yum
e dnf
.
Antes de começar
Se o repositório Yum de destino não existir, crie um novo repositório. É possível criar um repositório privado ou um repositório 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
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.
Conceda permissões de acesso ao repositório à sua conta de serviço.
Prepare a VM para acessar o repositório.
VM do Compute Engine
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.Atualize o cache de pacotes usando o seguinte comando:
sudo yum makecache
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 anteriordnf
, se o sistema operacional for Enterprise Linux 8 ou mais recente
Outra VM
Instale a chave de assinatura do RPM usando o seguinte comando:
sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
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 anteriordnf
, se o sistema operacional for Enterprise Linux 8 ou mais recente
DISTRO
com a versão principal do Red Hat Enterprise Linux no formatoelX
, em queX
é a versão de lançamento. Exemplos de valoresDISTRO
válidos sãoel7
eel8
.
Atualize o Yum usando o seguinte comando:
sudo yum makecache
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 anteriordnf
, se o sistema operacional for Enterprise Linux 8 ou mais recente
Encontre a linha
#service_account_json = "/path/to/creds.json"
no arquivoartifact-registry.conf
, remova o 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 para o arquivo de configuração é
/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 para o arquivo JSON da chave da conta de serviço.- Para sistemas operacionais Enterprise Linux 7 ou anteriores, o caminho
para o arquivo de configuração é
Repositório público
Configure o acesso público ao repositório.
Configurar uma VM para acessar um repositório Yum padrão
Para configurar uma VM para acessar um repositório Yum, use a ferramenta de cliente yum
ou dnf
:
Gere o comando de configuração da VM executando o comando
gcloud beta artifacts print-settings yum
:gcloud beta artifacts print-settings yum \ --repository=REPOSITORY \ --location=LOCATION
Substitua:
REPOSITORY
é o nome do repositório do Artifact Registry.-
LOCATION
é o local regional ou multirregional do repositório.
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
Configure a ferramenta de cliente
yum
para buscar pacotes do seu repositório usando o comandotee
na saída do comandoprint-settings
.Por exemplo, para instalar pacotes do
my-repo
público no projetomy-project
e no localus-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 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
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 Yum remoto
Para configurar uma VM para usar apenas um repositório Yum remoto em vez de um repositório Yum upstream 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 arquivo de configuração em vez de um arquivo de repositório separado (.repo
), exclua a entrada no arquivo de configuração e substitua pelo seu repositório remoto ou defina um novo arquivo de repositório no diretório /etc/yum.repos.d/
.
Acesse a página Instâncias de VMs.
Na linha com sua VM, clique em SSH. Uma nova janela será aberta com uma sessão de terminal na VM.
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 de 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 de base, remova as configurações padrão em
[base]
ou[baseos]
. Se você quiser manter o repositório upstream padrão e adicionar o repositório remoto como uma opção de substituição, não remova as configurações padrão.Adicione as seguintes configuraçõ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:
YUM_REPOSITORY_NAME
com um ID de repositório exclusivo de uma palavra para seu repositório Yum remoto. Esse nome pode corresponder ao nome do repositório upstream se você tiver excluído a configuração padrão do repositório upstream. Se você estiver mantendo o repositório upstream padrão, use um nome diferente para identificá-lo como um repositório remoto.-
LOCATION
é o local 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.
Usar um repositório Yum remoto como backup
Se você quiser manter o upstream padrão como a primeira opção e adicionar o repositório remoto como uma opção de substituição, mantenha o upstream padrão no arquivo do repositório e crie um novo arquivo na pasta /etc/yum.repos.d
.
Para criar um 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 Yum remoto.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
com o 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-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