Ubuntu22.04にgcloudコマンドをインストールする方法を紹介します。
ハマりポイントは、gcloudコマンドが対応しているPythonのバージョンです(2023年4月21日時点では3.5 - 3.9)。
Python3.8のインストール
Ubuntu22.04はデフォルトでPython 3.10が入っていますが、gcloudコマンドはpython 3.10.Xに対応していません。そのため、Python 3.8をインストールします。
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
gcloud CLIのインストール
公式ドキュメントを参考にインストールしていきます(参考:gcloud CLIをインストールする)。OS毎にインストール方法が紹介されていますが、汎用的な方法であるLinuxのインストール方法がおすすめです。
まず、gcloudコマンドが利用するPythonを指定します。必要に応じて、.bashrc
などにも追記してください。
export CLOUDSDK_PYTHON=/usr/bin/python3.8
次に、gcloud CLIをインストールします。
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-426.0.0-linux-x86_64.tar.gz
tar xvzf google-cloud-cli-426.0.0-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init --console-only
Python3.10を利用したときのエラー例
CLOUDSDK_PYTHON
を指定せずに、Python3.10で実行すると下記のエラーが発生します。もし下記のエラーが出た場合、環境変数が間違えている可能性があるので、見直してください。
ERROR: (gcloud) Command name argument expected.
ERROR: gcloud failed to load (gcloud.interactive): Problem loading gcloud.interactive: cannot import name 'Mapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py).
This usually indicates corruption in your gcloud installation or problems with your Python interpreter.
Please verify that the following is the path to a working Python 2.7 or 3.5+ executable:
/usr/bin/python3
If it is not, please set the CLOUDSDK_PYTHON environment variable to point to a working Python 2.7 or 3.5+ executable.
If you are still experiencing problems, please run the following command to reinstall:
$ gcloud components reinstall
If that command fails, please reinstall the Cloud SDK using the instructions here:
https://cloud.google.com/sdk/
gcloudコマンドにGoogleアカウントを追加
まず、Googleアカウントを結びつけた後にGCPのプロジェクトの設定を追加します。
現在登録されているユーザを確認します。
$ gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* hoge@gmail.com
To set the active account, run:
$ gcloud config set account `ACCOUNT`
追加したいユーザを追加します。下記コマンドを実行するとブラウザが開くので、追加したいGoogleアカウントでログインします。
gcloud auth login
登録されたユーザを確認します。
$ gcloud auth list
Credentialed Accounts
ACTIVE: *
ACCOUNT: fuga@gmail.com
ACTIVE:
ACCOUNT: hoge@gmail.com
To set the active account, run:
$ gcloud config set account `ACCOUNT`
アクティブアカウントを変更したい場合は下記のコマンドで変更できます。
gcloud config set account hoge@gmail.com
プロジェクトの設定を追加
GCPでは複数のプロジェクトを利用していると思うので、各プロジェクト毎にnamed configurations
(名前付けした設定)を作成するのが便利です。
configurations
とは、プロジェクト固有の設定(プロジェクトID、アクティブユーザー、ComputeEngineゾーンなど)を一つにまとめものです。<key, value>形式で設定を保存します。
例えば、プロジェクトA用にはproject-Aというconfigurationsを作成し、プロジェクトB用にはproject-Bというconfigurationsを作成します。このproject-Aとproject-Bを切り変えることで、それぞれのプロジェクトに応じた設定を利用することができます。
詳細は、公式のドキュメントを参考にしてください。(gcloud topic configurations: https://cloud.google.com/sdk/gcloud/reference/topic/configurations?hl=ja)
configurationsの追加
まず、現時点で追加されているconfigurationsを表示します。
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True hoge@gmail.com sample us-west2-a us-west2
configurationsを追加します。
gcloud config configurations create sample
追加されたかを確認してみます。
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default False hoge@gmail.com sample us-west2-a us-west2
sample True
作成したconfigurationsに設定を追加していきます。
# アカウントの追加
$ gcloud config set account fuga@gmail.com
Updated property [core/account].
# プロジェクトを追加
$ gcloud config set project PROJECT_ID
Updated property [core/project].
# Compute Engineのゾーンを追加
$ gcloud config set compute/zone us-central1-b
Updated property [compute/zone].
$ gcloud config set compute/region us-central1
Updated property [compute/region].
# 設定を確認
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default False hoge@gmail.com sample us-west2-a us-west2
sample True fuga@gmail.com sample-project us-central1-b us-central1
configurationsnの切り替え
現在のconfigurationsを変更したい場合は、下記で実施します。
# 設定を確認
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default False hoge@gmail.com sample us-west2-a us-west2
sample True fuga@gmail.com sample-project us-central1-b us-central1
# configurtaionsを変更
$ gcloud config configurations activate default
# 設定を確認
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True hoge@gmail.com sample us-west2-a us-west2
sample False fuga@gmail.com sample-project us-central1-b us-central1
まとめ
gcloud CLIのインストール方法と初期設定方法をまとめました。
GCPを利用していると、configurationsはほぼ必須となるので、ぜひ使い方を覚えてください。