設定 VM 以安裝 RPM 套件

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

事前準備

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

準備 VM 以存取 Yum 存放區

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

私人存放區

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

    • 如果是 Compute Engine VM,這可能是預設服務帳戶。如果 VM 使用服務帳戶,Artifact Registry 會自動擷取 Compute Engine VM 服務帳戶憑證。
    • 如果是其他 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 值範例: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. 使用 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,其中包含遠端存放區的區域或多區域位置
  • 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

後續步驟