AWSよりGCPの方が個人的には好きなんですが、AWSかぶれしてた期間が長かったので、GCP再入門的な感じでやっていきます

gcloudコマンドラインツールのインストール

1
$ curl https://sdk.cloud.google.com | bash

補完のための以下のようなコードが .bashrcに追記されるけど、WSL2だと .bashrcが読み込まれないので .bash_profileとか読み込まれる場所に移動させます

1
2
3
4
5
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/username/google-cloud-sdk/path.bash.inc' ]; then . '/home/username/google-cloud-sdk/path.bash.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/home/username/google-cloud-sdk/completion.bash.inc' ]; then . '/home/username/google-cloud-sdk/completion.bash.inc'; fi

初期設定: ログインする

ブラウザが起動しない環境では --console-onlyをつけます

1
2
// 実行後、あれこれy/n聞かれるので進める
$ gcloud init --console-only
1
2
3
4
5
6
7
8
9
10
11
// 完了後、設定を確認
$ gcloud config list
[compute]
region = asia-northeast2
zone = asia-northeast2-a
[core]
account = xxxxxxx@gmail.com
disable_usage_reporting = True
project = project-1

Your active configuration is: [default]

プロジェクトが1つしかない場合はここで終わりです

初期設定: ログインする(2つめのプロジェクト)

もう一度、 gcloud initを実行して、 [2] Create a new configurationを選択します

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ gcloud init --console-only
Welcome! This command will take you through the configuration of gcloud.

Settings from your current configuration [default] are:
compute:
region: asia-northeast2
zone: asia-northeast2-a
core:
account: xxxxxxx@gmail.com
disable_usage_reporting: 'True'
project = project-1

Pick configuration to use:
[1] Re-initialize this configuration [default] with new settings
[2] Create a new configuration
Please enter your numeric choice: 2

完了後、 gcloud config listすると、作成したプロジェクトに切り替わっていると思います

設定の操作

gcloud configurationsを使います

1
2
3
4
5
// 設定の一覧を表示
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default False xxxxxxx@gmail.com project-1 asia-northeast2-a asia-northeast2
project-2 True xxxxxxx@gmail.com project-2

今アクティブになっている設定は、 IS_ACTIVETrueになっています

設定を切り替えるには、 gcloud config configurations activateを使います

1
2
// 設定をproject-1に切り替え
$ gcloud config configurations activate project-1

設定ファイルを直接見てみる

上記の一覧を見ると、 project-2COMPUTE_DEFAULT_ZONE, COMPUTE_DEFAULT_REGIONが設定されていません。これを設定するついでに、AWSのコマンドラインツールみたいに設定ファイルを見てみたかったので、探してみました

1
2
3
4
// 設定ファイルの場所
$ ls -l ~/.config/gcloud/configurations
-rw-r--r-- 1 username username 123 8月 7 23:17 config_default
-rw-r--r-- 1 username username 128 8月 7 23:37 config_project-2

以下の通り、中身を見てみると、 project-2の方だけ、 computeセクションが設定されていない事がわかります

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 設定ファイルの確認(project-1)
$ cat ~/.config/gcloud/configurations/config_default
[core]
account = xxxxxxx@gmail.com
project = project-1

[compute]
zone = asia-northeast2-a
region = asia-northeast2

// 設定ファイルの確認(project-2)
$ cat ~/.config/gcloud/configurations/config_project-2
[core]
account = xxxxxxx@gmail.com
project = project-2

[compute]セクションを project-2の方にそのままコピペすれば同じ設定が反映されます

1
2
3
4
5
// 反映後(設定の一覧を表示)
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default False xxxxxxx@gmail.com project-1 asia-northeast2-a asia-northeast2
project-2 True xxxxxxx@gmail.com project-2 asia-northeast2-a asia-northeast2