gcloud CLIのインストールと初期設定

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はほぼ必須となるので、ぜひ使い方を覚えてください。

  • この記事を書いた人

たかさん

犬と暮らすクラウドエンジニア。GCPが好きだけど良く触るのはAWSとAzureです。

-GCP
-