設定 VM 以安裝 RPM 套件

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

事前準備

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

準備 VM 以存取 Yum 存放區

如要準備 VM 來存取 Yum 存放區,請使用 yum 或 dnf 用戶端工具:

私人存放區

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

    • 如果是 Compute Engine VM,這可能是預設服務帳戶。如果 VM 使用服務帳戶,Artifact Registry 會自動擷取該 VM 的 Compute Engine 服務帳戶憑證。
    • 如果是其他 VM,請建立或選擇服務帳戶,代表 VM 執行作業。您需要服務帳戶金鑰檔案的位置,才能設定 VM。您可以在「服務帳戶」頁面中,查看及建立現有帳戶的金鑰。
  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,其中 X 是發布版本。elX有效 DISTRO 值範例:el7 和 el8。
    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 存放區,請使用 yum 或 dnf 用戶端工具:

  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. 使用 print-settings 指令的輸出內容,透過 tee 指令將 yum 用戶端工具設為從存放區擷取套件。

    舉例來說,如要從專案 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,其中 location 是遠端存放區的區域或多區域位置。
  • 將 PROJECT_ID 替換為 VM 的專案 ID。
  • REMOTE_REPOSITORY_NAME 改成您為遠端存放區提供的名稱。

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

後續步驟