このページでは、Artifact Registry Apt リポジトリから Debian パッケージをインストールするように VM を構成する方法について説明します。
準備
ターゲット Apt リポジトリが存在しない場合は、新しい標準リポジトリまたはリモート リポジトリを作成します。非公開リポジトリ、または認証を必要としない公開リポジトリを作成できます。
Apt リポジトリにアクセスするために VM を準備する
非公開リポジトリ
アクセス権の付与に使用するサービス アカウントを選択します。
- Compute Engine VM の場合、これはデフォルトのサービス アカウントである場合があります。Artifact Registry は、サービス アカウントを使用するすべての VM の Compute Engine VM サービス アカウント認証情報を自動的に取得します。
- その他の VM の場合は、VM に代わって動作するサービス アカウントをcreateまたは選択します。VM を構成するには、サービス アカウント キー ファイルのロケーションが必要です。既存のアカウントの鍵は、[サービス アカウント] ページで表示、作成できます。
サービス アカウントにリポジトリへのアクセス権限を付与します。
VM がリポジトリにアクセスできるように準備します。
Compute Engine VM
Debian VM
VM に
cloud-platform
API アクセス スコープを割り当てます。アクセス スコープの設定については、インスタンスのサービス アカウントとアクセス スコープを変更するをご覧ください。次のコマンドを使用して Apt を更新します。
sudo apt update
VM に
apt-transport-artifact-registry
パッケージをインストールします。sudo apt install apt-transport-artifact-registry
Ubuntu VM
次のコマンドを使用して、Apt リポジトリ署名鍵をインストールします。
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
LOCATION
は、リポジトリの場所に置き換えます。VM に
cloud-platform
API アクセス スコープを割り当てます。アクセス スコープの設定については、インスタンスのサービス アカウントとアクセス スコープを変更するをご覧ください。次のコマンドを使用して、Artifact Registry パッケージにアクセスするように VM を構成します。
echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
次のコマンドを使用して Apt を更新します。
sudo apt update
VM に
apt-transport-artifact-registry
パッケージをインストールします。sudo apt install apt-transport-artifact-registry
その他の VM
次のコマンドを使用して、Apt リポジトリ署名鍵をインストールします。
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
LOCATION
は、リポジトリの場所に置き換えます。次のコマンドを使用して、Artifact Registry パッケージにアクセスするように VM を構成します。
echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
次のコマンドを使用して Apt を更新します。
sudo apt update
VM に
apt-transport-artifact-registry
パッケージをインストールします。sudo apt install apt-transport-artifact-registry
/etc/apt/apt.conf.d/90artifact-registry
ファイル内の#Service-Account-JSON "/path/to/creds.json";
行を見つけて、その行をコメント化解除し、サービス アカウント キーのパスを追加します。構成ファイルのエントリ:
Service-Account-JSON "PATH_TO_SERVICE_ACCOUNT_KEY";
PATH_TO_SERVICE_ACCOUNT_KEY
は、サービス アカウント キー JSON ファイルのパスで置き換えます。
パブリック レポジトリ
リポジトリへの公開アクセスを構成します。
Google Cloud の外部で VM を構成する場合は、リポジトリにアクセスできるようにマシンを準備します。Compute Engine VM を構成する場合は、次のステップに進みます。
次のコマンドを使用して、公開署名検証鍵をインストールします。
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
LOCATION
は、リポジトリの場所に置き換えます。次のコマンドを使用して Apt を更新します。
sudo apt update
標準の Apt リポジトリにアクセスするように VM を構成する
Apt リポジトリにアクセスするように VM を構成する
VM 構成コマンドを生成するには、
gcloud beta artifacts print-settings apt
コマンドを実行します。gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATION
以下を置き換えます。
- LOCATION は、リージョンまたはマルチリージョンのロケーションです。
- REPOSITORY は、Artifact Registry リポジトリの名前です。
出力は次のようになります。
# To configure your package manager with this repository: # Update Apt: sudo apt update # Install the Apt credential helper: sudo apt install apt-transport-artifact-registry # Configure your VM to access Artifact Registry packages using the following # command: echo "deb ar+https://LOCATION-apt.pkg.dev/projects/PROJECT REPOSITORY main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list # Update Apt: sudo apt update
print-settings
コマンドの出力からecho
コマンドを使用して、リポジトリからパッケージを取得するように Apt を構成します。たとえば、プロジェクト
my-project
とロケーションus-central1
に公開リポジトリmy-repo
からパッケージをインストールするには、次のコマンドを使用します。echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
次のコマンドを使用して、リポジトリのソースを更新します。
sudo apt update
Apt はリポジトリに接続できるようになりました。
追加の Apt リポジトリを作成する場合は、それらを artifact-registry.list
ファイルに追加し、sudo apt update
を再実行してリポジトリ ソースを更新します。
リモートの Yum リポジトリにアクセスするように VM を構成する
標準のアップストリーム Apt リポジトリではなくリモート Apt リポジトリのみを使用するように VM を構成するには、VM の /etc/apt/sources.list
ファイルで標準リポジトリをリモート リポジトリに置き換えます。
デフォルトの Compute Engine サービス アカウントにプロジェクト全体の Artifact Registry 書き込み権限を付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writer
[VM インスタンス] ページに移動します。
VM がある行で [SSH] をクリックします。
VM のターミナル セッションで新しいウィンドウが開きます。
VM の
/etc/apt/sources.list
ファイルを開き、新しいリモート リポジトリに置き換える標準リポジトリを探します。標準のリポジトリ行を削除し、以下のように置き換えます。
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
以下を置き換えます。
LOCATION
は、リモート リポジトリのリージョンまたはマルチリージョンのロケーションに置き換えます。PROJECT_ID
は、VM のプロジェクト ID に置き換えます。REMOTE_REPOSITORY_NAME
は、リモート リポジトリに付けた名前に置き換えます。UPSTREAM_REPOSITORY_NAME
は、リモートのアップストリーム リポジトリの名前に置き換えます。COMPONENTS
は、コンポーネント名を空白文字で区切ったリストに置き換えます。
たとえば、次の例では、ロケーション
us-east1
にあるプロジェクトmy-project
のリポジトリmy-repo
から、コンポーネントmain
、contrib
、non-free
のアップストリーム リポジトリとしてbuster
を使用してパッケージを取得するように VM を構成します。deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
次のコマンドを使用して、リポジトリのソースを更新します。
sudo apt update
Apt はリポジトリに接続できるようになりました。
リモート Apt リポジトリをバックアップとして使用する
標準アップストリームを第一の選択肢として保持し、リモート リポジトリをいざというときの代替案として追加する場合は、標準アップストリームを sources.list
ファイルに保持し、リモート リポジトリを sources.list
ファイルの末尾に追加するか、sources.list.d
フォルダに新しいリストを作成します。
sources.list.d
フォルダに新しい artifact-registry.list
ファイルを作成するには、次のコマンドを実行します。
echo 'deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
以下を置き換えます。
LOCATION
は、リモート リポジトリのリージョンまたはマルチリージョンのロケーションに置き換えます。PROJECT_ID
は、VM のプロジェクト ID に置き換えます。REMOTE_REPOSITORY_NAME
は、リモート リポジトリに付けた名前に置き換えます。UPSTREAM_REPOSITORY_NAME
は、リモートのアップストリーム リポジトリの名前に置き換えます。COMPONENTS
は、コンポーネント名を空白文字で区切ったリストに置き換えます。
追加の Apt リポジトリを作成する場合は、それらを artifact-registry.list
ファイルまたは sources.list
ファイルに追加し、sudo apt update
を再実行してリポジトリ ソースを更新します。
Apt リポジトリへの HTTP アクセスを構成する
SSL 暗号化をサポートしていない古いクライアント ツールを使用している場合は、Apt リポジトリへの公開アクセスを構成し、HTTP 経由でアクセスできます。HTTP を使用して公開読み取りリポジトリに送信されたリクエストは、リクエストに認証トークンが提示されている場合、拒否されます。
リポジトリへの公開アクセスを構成します。
HTTP を使用してリポジトリからパッケージを取得するように Apt を構成するには、次のコマンドを実行します。
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \ REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
以下を置き換えます。
- LOCATION は、リポジトリの場所に置き換えます。
- PROJECT_ID は、リポジトリのプロジェクト ID に置き換えます。
- REPOSITORY は、リポジトリ名に置き換えます。
たとえば、HTTP を使用してプロジェクト
my-project
とロケーションus-central1
に公開リポジトリmy-repo
からパッケージをインストールするには、次のコマンドを使用します。echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
次のコマンドを使用して、リポジトリのソースを更新します。
sudo apt update
Apt はリポジトリに接続できるようになりました。
追加の Apt リポジトリを作成する場合は、それらを artifact-registry.list
ファイルに追加し、sudo apt update
を再実行してリポジトリ ソースを更新します。