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 makecache
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 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.gpg
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 anteriordnf
, se o seu sistema operativo for o Enterprise Linux 8 ou posterior
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 através do seguinte comando:
sudo yum makecache
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 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_KEY
pelo 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 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
Configure a ferramenta de cliente
yum
para obter pacotes do seu repositório através do comandotee
a partir do resultado do comandoprint-settings
.Por exemplo, para instalar pacotes do
my-repo
público no projetomy-project
e 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=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