Archivia i pacchetti RPM in Artifact Registry

Questa guida rapida mostra come configurare un repository Yum privato di Artifact Registry, aggiungere un pacchetto RPM al repository e installare il pacchetto su una VM Compute Engine che esegue il sistema operativo CentOS 7. Per scoprire come configurare i repository Yum che utilizzano DNF, consulta Configurazione delle VM per l'installazione di pacchetti RPM.

Per scoprire di più sulla gestione dei pacchetti RPM, consulta Utilizzo dei pacchetti RPM.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Avvia Cloud Shell

    Cloud Shell include Google Cloud CLI preinstallato. gcloud CLI fornisce l'interfaccia a riga di comando principale per Google Cloud.

    Avvia Cloud Shell:

    1. Vai alla Google Cloud console.

      Google Cloud console

    2. Nella console Google Cloud , fai clic su Attiva Cloud Shell Pulsante Attiva Cloud Shell.

    Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console. Utilizzerai questa shell per eseguire i comandi gcloud per creare una VM e un repository.

    Crea un repository

    Crea il repository per gli artefatti.

    1. Crea il repository:

      Console

      1. Apri la pagina Repository nella console Google Cloud .

        Apri la pagina Repositori

      2. Fai clic su Crea repository.

      3. Specifica quickstart-yum-repo come nome del repository.

      4. Seleziona Yum come formato.

      5. In Tipo di località, seleziona Regione, quindi scegli la località us-west1.

      6. Fai clic su Crea.

      Il repository viene aggiunto all'elenco dei repository.

      gcloud

      1. In Cloud Shell, esegui questo comando per creare un nuovo repository Yum nel progetto corrente denominato quickstart-yum-repo nella località us-west1.

        gcloud artifacts repositories create quickstart-yum-repo \
            --repository-format=yum \
            --location=us-west1 \
            --description="Yum repository"
        
      2. Esegui questo comando per verificare che il repository sia stato creato:

        gcloud artifacts repositories list
        

    Ora puoi aggiungere un pacchetto al repository.

    Aggiungere un pacchetto al repository

    Puoi caricare un pacchetto in un repository utilizzando Google Cloud CLI oppure puoi importare un pacchetto archiviato in Cloud Storage. Se crei pacchetti utilizzando Cloud Build, la build può archiviarli in Cloud Storage per l'importazione.

    Per questa guida rapida, carichi un file di esempio utilizzando il comando gcloud artifacts yum upload.

    1. In Cloud Shell, scarica l'editor di testo nano con il comando:

      sudo yum install --downloaddir=. --downloadonly nano
      

      Yum scarica l'ultima versione del pacchetto disponibile dai repository CentOS configurati.

      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
       * base: mirror.dal.nexril.net
       * epel: ord.mirror.rackspace.com
       * extras: centos.mirror.lstn.net
       * updates: ftpmirror.your.org
      Resolving Dependencies
      --> Running transaction check
      ---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ================================================================================
       Package        Arch             Version                   Repository      Size
      ================================================================================
      Installing:
       nano           x86_64           2.3.1-10.el7              base           440 k
      
      Transaction Summary
      ================================================================================
      Install  1 Package
      
      Total download size: 440 k
      Installed size: 1.6 M
      Background downloading packages, then exiting:
      nano-2.3.1-10.el7.x86_64.rpm                               | 440 kB   00:00
      exiting because "Download Only" specified
      

      Esegui ls per ottenere il nome del file del pacchetto. Il nome file è simile a nano-2.3.1-10.el7.x86_64.rpm.

    2. Per semplificare i comandi gcloud, imposta il repository predefinito su quickstart-yum-repo e la posizione predefinita su us-west1. Una volta impostati i valori, non devi specificarli nei comandi gcloud che richiedono un repository o una posizione.

      Per impostare il repository, esegui il comando:

      gcloud config set artifacts/repository quickstart-yum-repo
      

      Per impostare la località, esegui il comando:

      gcloud config set artifacts/location us-west1
      

      Per ulteriori informazioni su questi comandi, consulta la documentazione di gcloud config set.

    3. Esegui gcloud artifacts yum upload per caricare il pacchetto nel repository:

      gcloud artifacts yum upload quickstart-yum-repo \
          --source=FILE_NAME
      

      Sostituisci FILE_NAME con il percorso del pacchetto nano.

    Visualizza il pacchetto nel repository

    Verifica che il pacchetto sia stato aggiunto al repository.

    Console

    1. Apri la pagina Repository nella console Google Cloud .

      Apri la pagina Repositori

    2. Nell'elenco dei repository, fai clic sul repository quickstart-yum-repo.

      La pagina Pacchetti elenca i pacchetti nel repository.

    gcloud

    Per elencare i pacchetti nel repository quickstart-yum-repo, esegui il comando:

     gcloud artifacts packages list
    

    Per visualizzare le versioni di un pacchetto in quickstart-yum-repo, esegui il comando:

    gcloud artifacts versions list --package=nano
    

    Crea una VM

    Crea una nuova VM di Compute Engine in cui installare il pacchetto di esempio.

    In Cloud Shell, esegui questo comando per creare una VM denominata quickstart-yum-vm.

    gcloud compute instances create quickstart-yum-vm \
        --image-family=centos-7 \
        --image-project=centos-cloud \
        --scopes=cloud-platform
    

    Per impostazione predefinita, la VM non dispone degli ambiti di accesso richiesti per lavorare con il repository. Il flag --scopes imposta l'ambito di accesso per la VM su cloud-platform.

    Configura il gestore dei pacchetti

    Per installare un pacchetto sulla VM, aggiungi il repository che hai creato al file Yum che definisce i repository per i pacchetti.

    1. Vai alla pagina Istanze VM.

      Apri la pagina Istanze VM

    2. Nella riga della tua VM, fai clic su SSH. Si apre una nuova finestra con una sessione del terminale sulla VM.

    3. Aggiornare Yum:

      sudo yum makecache
      
    4. Installa l'helper delle credenziali Yum sulla VM per consentire a Yum di eseguire l'autenticazione utilizzando il seguente comando:

      sudo yum install yum-plugin-artifact-registry
      
    5. Configura la VM per accedere ai pacchetti Artifact Registry utilizzando il seguente comando:

      sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
      [yum-quickstart]
      name=My Repository
      baseurl=https://us-west1-yum.pkg.dev/projects/PROJECT/quickstart-yum-repo
      enabled=1
      repo_gpgcheck=0
      gpgcheck=0
      EOF
      

      Sostituisci PROJECT con l' Google Cloud ID progetto.

    Installa il pacchetto

    Installa il pacchetto che hai aggiunto al repository.

    1. Aggiorna l'elenco dei pacchetti disponibili:

      sudo yum makecache
      
    2. Installa il pacchetto nel repository.

      sudo yum --enablerepo=yum-quickstart install nano
      

      Quando richiesto, inserisci y.

      Le informazioni di installazione restituite sono simili al seguente esempio:

      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
       * base: mirrors.cmich.edu
       * epel: ord.mirror.rackspace.com
       * extras: mirror.team-cymru.com
       * updates: mirror.us-midwest-1.nexcess.net
      quickstart-yum-repo                                      | 1.3 kB     00:00
      Resolving Dependencies
      --> Running transaction check
      ---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ================================================================================
       Package        Arch             Version                   Repository      Size
      ================================================================================
      Installing:
       nano           x86_64           2.3.1-10.el7              base           440 k
      
      Transaction Summary
      ================================================================================
      Install  1 Package
      
      Total size: 440 k
      Installed size: 1.6 M
      Is this ok [y/d/N]: y
      Downloading packages:
      Running transaction check
      Running transaction test
      Transaction test succeeded
      Running transaction
        Installing : nano-2.3.1-10.el7.x86_64                                     1/1
        Verifying  : nano-2.3.1-10.el7.x86_64                                     1/1
      
      Installed:
        nano.x86_64 0:2.3.1-10.el7
      
      Complete!
      

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

    Prima di rimuovere il repository, assicurati che tutti i pacchetti che vuoi conservare siano disponibili in un'altra posizione.

    Per eliminare il repository:

    Console

    1. Apri la pagina Repository nella console Google Cloud .

      Apri la pagina Repository

    2. Nell'elenco dei repository, seleziona il repository quickstart-yum-repo.

    3. Fai clic su Elimina.

    gcloud

    1. Per eliminare il repository quickstart-yum-repo, esegui questo comando:

      gcloud artifacts repositories delete quickstart-yum-repo
      
    2. Se vuoi rimuovere il repository predefinito e le impostazioni di posizione configurate per la configurazione gcloud attiva, esegui i comandi seguenti:

      gcloud config unset artifacts/repository
      gcloud config unset artifacts/location
      

    Per eliminare la VM che hai creato, esegui questo comando:

    gcloud compute instances delete quickstart-yum-vm
    

    Passaggi successivi