設定 VM 以安裝 RPM 套件

本頁說明如何設定 VM,以便從 Artifact Registry Yum 存放區安裝 RPM 套件。Artifact Registry Yum 存放區支援 yumdnf 用戶端。

事前準備

如果目標 Yum 存放區不存在,請建立新的存放區。您可以建立私人存放區或不需要驗證的公開存放區。

準備 VM 以存取 Yum 存放區

如要準備 VM 以存取 Yum 存放區,請使用 yumdnf 用戶端工具:

私人存放區

  1. 選擇要用來授予存取權的服務帳戶。

    • 對於 Compute Engine VM,這可能會是預設服務帳戶。Artifact Registry 會自動擷取使用服務帳戶的任何 VM 的 Compute Engine VM 服務帳戶憑證。
    • 針對其他 VM,請建立或選擇服務帳戶,以便代表 VM 執行作業。您需要服務帳戶金鑰檔案的位置,才能設定 VM。您可以在「Service Accounts」頁面中查看現有帳戶的金鑰,並建立金鑰。
  2. 將存放區存取權授予服務帳戶

  3. 準備 VM 以存取存放區。

    Compute Engine VM

    1. cloud-platform API 存取權範圍指派給 VM。如要瞭解如何設定存取範圍,請參閱「變更執行個體的服務帳戶與存取範圍」。

    2. 使用下列指令更新套件快取:

      sudo yum makecache
      
    3. 使用下列指令,在 VM 上安裝 Artifact Registry 外掛程式:

      sudo yum install FORMAT-plugin-artifact-registry
      

      更改下列內容:

      • FORMAT 與下列其中一個值:
        • yum (如果作業系統為 Enterprise Linux 7 或更早版本)
        • dnf (如果作業系統為 Enterprise Linux 8 以上版本)

    其他 VM

    1. 使用下列指令安裝 RPM 簽署金鑰:

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. 建立名為 /etc/yum.repos.d/artifact-registry-plugin.repo 的檔案,並在其中加入下列內容:

      [ar-plugin]
      name=Artifact Registry Plugin
      baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable
      enabled=1
      gpgcheck=1
      

      更改下列內容:

      • FORMAT 與下列其中一個值:
        • yum (如果作業系統為 Enterprise Linux 7 或更早版本)
        • dnf (如果作業系統為 Enterprise Linux 8 以上版本)
      • DISTRO 與 Red Hat Enterprise Linux 主要版本,格式為 elX,其中 X 為版本。有效的 DISTRO 值範例包括 el7el8
    3. 使用下列指令更新 Yum:

      sudo yum makecache
      
    4. 使用下列指令,在 VM 上安裝 Artifact Registry 外掛程式:

      yum install FORMAT-plugin-artifact-registry
      

      請使用下列其中一個值取代 FORMAT

      • yum (如果作業系統為 Enterprise Linux 7 或更早版本)
      • dnf (如果作業系統為 Enterprise Linux 8 以上版本)
    5. artifact-registry.conf 檔案中找出 #service_account_json = "/path/to/creds.json" 行,然後取消該行的註解,並新增服務帳戶金鑰的路徑。

      • 如果是 Enterprise Linux 7 或更早版本的作業系統,設定檔的路徑為 /etc/yum/pluginconf.d/artifact-registry.conf
      • 對於 Enterprise Linux 8 以上作業系統,設定檔的路徑為 /etc/dnf/plugins/artifact-registry.conf

      設定檔項目:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      PATH_TO_SERVICE_ACCOUNT_KEY 替換為服務帳戶金鑰 JSON 檔案的路徑。

公開存放區

設定存放區的公開存取權

設定 VM 以存取標準 Yum 存放區

如要設定 VM 以存取 Yum 存放區,請使用 yumdnf 用戶端工具:

  1. 請執行 gcloud beta artifacts print-settings yum 指令,產生 VM 設定指令:

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

    更改下列內容:

    • REPOSITORY 是 Artifact Registry 存放區的名稱。
    • LOCATION 是存放區的地區或多地區位置

    輸出結果會與下列內容相似:

    # 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. 設定 yum 用戶端工具,以便使用 print-settings 指令輸出的 tee 指令,從存放區擷取套件。

    舉例來說,如要從專案 my-project 和位置 us-west1 中的公開 my-repo 安裝套件,請使用以下指令:

    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. 使用下列指令更新存放區來源:

    sudo yum makecache
    

Yum 現在可以連線至存放區。

如果您建立其他 Yum 存放區,請在 /etc/yum.repos.d/ 中為每個存放區建立 .repo 檔案。重新執行 sudo yum update 來更新存放區來源。

設定 VM 以存取遠端 Yum 存放區

如要將 VM 設定為只使用遠端 Yum 存放區,而非標準上游 Yum 存放區,請將 VM 存放區清單中的標準存放區替換為遠端存放區。

如果標準存放區是在設定檔中定義,而非在個別的存放區檔案 (.repo) 中定義,您可以刪除設定檔中的項目,並用遠端替換該項目,或是在 /etc/yum.repos.d/ 目錄中定義新的存放區檔案。

  1. 前往「VM instances」(VM 執行個體) 頁面

  2. 在 VM 的資料列中,按一下「SSH」SSH。系統會開啟新視窗,其中包含 VM 上的終端機工作階段。

  3. 開啟 VM 的 /etc/yum.repos.d/ 資料夾,然後找出含有標準上游存放區的適當存放區檔案 (.repo)。有時也稱為基本存放區。您可以透過包含 [base][baseos] 的 Yum 存放區名稱,識別基礎存放區。

  4. 如要完全取代基礎存放區,請移除 [base][baseos] 下的預設設定。如果您想保留標準的上游存放區,並將遠端存放區設為備用選項,請勿移除預設設定。

  5. [base][baseos] 下方新增下列設定:

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

    更改下列內容:

  • YUM_REPOSITORY_NAME 與遠端 Yum 存放區的一個字詞專屬存放區 ID。如果您已刪除標準上游存放區設定,或是保留標準上游存放區,則這個名稱可以與上游存放區名稱相符,您也可以使用不同的名稱來識別為遠端存放區。
  • LOCATION 是存放區的地區或多地區位置
  • PROJECT_ID 替換為 VM 的專案 ID。
  • REMOTE_REPOSITORY_NAME,其中包含遠端存放區的可讀名稱。

使用遠端 Yum 存放區做為備份

如果您想將標準上游做為第一個選項,並將遠端存放區做為備用選項,可以將標準上游保留在存放區檔案中,並在 /etc/yum.repos.d 資料夾中建立新的存放區檔案。

如要在 /etc/yum.repos.d 資料夾中建立新的存放區檔案,請執行下列指令:

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

更改下列內容:

  • YUM_REPOSITORY_NAME,其中包含遠端 Yum 存放區的專屬存放區 ID。
  • REPOSITORY_NAME,其中包含存放區的使用者可讀名稱。
  • LOCATION 與遠端存放區的區域或多區域位置
  • PROJECT_ID 替換為 VM 的專案 ID。
  • REMOTE_REPOSITORY_NAME 替換成您為遠端存放區提供的名稱。

舉例來說,下列指令會在 Yum 安裝存放區 my-repo 時,將 VM 設為擷取專案 my-project 和位置 us-west1 中的存放區 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

後續步驟