このページでは、Artifact Registry Yum リポジトリから RPM パッケージをインストールするように VM を構成することを説明します。Artifact Registry Yum リポジトリは、yum クライアントと dnf クライアントをサポートしています。
準備
ターゲット Yum リポジトリが存在しない場合は、新しいリポジトリを作成します。非公開リポジトリ、または認証を必要としない公開リポジトリを作成できます。
Yum リポジトリにアクセスする VM を準備する
Yum リポジトリにアクセスする VM を準備するには、yum と dnf のいずれかのクライアント ツールを使用します。
非公開リポジトリ
アクセス権の付与に使用するサービス アカウントを選択します。
- Compute Engine VM の場合、これはデフォルトのサービス アカウントである場合があります。Artifact Registry は、サービス アカウントを使用する VM の Compute Engine VM サービス アカウント認証情報を自動的に取得します。
- その他の VM の場合は、VM に代わって動作するサービス アカウントを作成または選択します。VM を構成するには、サービス アカウント キー ファイルのロケーションが必要です。既存のアカウントの鍵は、[サービス アカウント] ページで表示、作成できます。
サービス アカウントにリポジトリへのアクセス権限を付与します。
VM がリポジトリにアクセスできるように準備します。
Compute Engine VM
VM に
cloud-platformAPI アクセス スコープを割り当てます。アクセス スコープの設定については、インスタンスのサービス アカウントとアクセス スコープを変更するをご覧ください。次のコマンドを使用して、パッケージ キャッシュを更新します。
sudo yum makecache次のコマンドを使用して、VM に Artifact Registry プラグインをインストールします。
sudo yum install FORMAT-plugin-artifact-registry以下を置き換えます。
FORMATは、次のいずれかに置き換えます。yum(オペレーティング システムが Enterprise Linux 7 以降の場合)dnf(オペレーティング システムが Enterprise Linux 8 以降の場合)
その他の VM
次のコマンドを使用して RPM 署名鍵をインストールします。
sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg次の内容のファイルを
/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は、elX形式の Red Hat Enterprise Linux メジャー リリースで、Xは、リリース バージョンです。有効なDISTRO値の例はel7およびel8です。
次のコマンドを使用して Yum を更新します。
sudo yum makecache次のコマンドを使用して、VM に Artifact Registry プラグインをインストールします。
yum install FORMAT-plugin-artifact-registryFORMATを次のいずれかに置き換えます。yum(オペレーティング システムが Enterprise Linux 7 以降の場合)dnf(オペレーティング システムが Enterprise Linux 8 以降の場合)
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 ファイルのパスで置き換えます。- Enterprise Linux 7 以前のオペレーティング システムの場合、構成ファイルのパスは
パブリック レポジトリ
リポジトリへの公開アクセスを構成します。
標準の Yum リポジトリにアクセスするように VM を構成する
Yum リポジトリにアクセスするように VM を構成するには、yum と dnf のいずれかのクライアント ツールを使用します。
VM 構成コマンドを生成するには、
gcloud beta artifacts print-settings yumコマンドを実行します。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
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
次のコマンドを使用して、リポジトリのソースを更新します。
sudo yum makecache
Yum はリポジトリに接続できるようになりました。
追加の Yum リポジトリを作成する場合は、/etc/yum.repos.d/ ごとに .repo ファイルを作成します。sudo yum update を再実行してリポジトリ ソースを更新します。
リモートの Yum リポジトリにアクセスするように VM を構成する
標準のアップストリーム Yum リポジトリの代わりにリモート Yum リポジトリのみを使用するように VM を構成するには、VM のリポジトリ リストの標準リポジトリをリモート リポジトリに置き換えます。
標準のリポジトリが個別のリポジトリ ファイル(.repo)ではなく構成ファイルで定義されている場合は、構成ファイル内のエントリを削除してリモートに置き換えるか、新しいリポジトリ ファイルを /etc/yum.repos.d/ ディレクトリに定義できます。
[VM インスタンス] ページに移動します。
VM がある行で [SSH] をクリックします。VM のターミナル セッションで新しいウィンドウが開きます。
VM の
/etc/yum.repos.d/フォルダを開き、標準のアップストリーム リポジトリを含む適切なリポジトリ ファイル(.repo)を見つけます。これはベース リポジトリと呼ばれることもあります。ベース リポジトリは、Yum リポジトリ名に[base]または[baseos]が含まれていることで識別できます。ベース リポジトリを完全に置き換えるには、
[base]または[baseos]以下のデフォルト設定を削除します。標準アップストリーム リポジトリを保持し、リモート リポジトリを代替案として追加する場合は、デフォルト設定を削除しないでください。[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 リポジトリの 1 語の一意のリポジトリ 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 リポジトリの 1 語の一意のリポジトリ ID に置き換えます。REPOSITORY_NAMEは、人が読めるリポジトリ名に置き換えます。LOCATIONは、リモート リポジトリのリージョンまたはマルチリージョンのロケーションに置き換えます。PROJECT_ID: VM のプロジェクト ID。REMOTE_REPOSITORY_NAMEは、リモート リポジトリに付けた名前に置き換えます。
たとえば、次のコマンドは、Yum がリポジトリ my-repo をインストールする際に、プロジェクト my-project とロケーション us-west1 でリポジトリ my-repo をフェッチするように VM を構成します。
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