以下の内容はhttps://www.kwbtblog.com/entry/2020/02/18/052841より取得しました。


Google Cloud SDK(gcloud)で複数アカウント・プロジェクトを切り替える方法

Google Cloud Platformに新しいプロジェクトを追加したので、Google Cloud SDK(gcloud CLI)でプロジェクトを切り替えられるように設定しました。

一度設定してしまうといじることはなく、このままだとやり方忘れてしまうので、自分用に設定方法をメモしておきます。

必要情報

gcloudコマンドを実行するのに必要な情報は、下記の4つです。

  • アカウント
  • プロジェクト
  • リージョン
  • ゾーン

リージョンとゾーンは必須ではないのですが、gcloudの初期設定コマンドgcloud initでも聞かれる項目なので、設定しておきます。

gcloudでは、これらの設定値を、1つのConfigとしてセットにして保持していて、gcloudコマンド実行時には、そのConfigから値を取り出して適用されます。

なので、複数アカウント・プロジェクトの切り替えは、そのConfigのアカウント・プロジェクトを書き換えることにより行えます。

しかし、gcloudには、複数のConfigを定義して、それを切り替える機能があるので、ここでは、切り替えたいだけのConfigを作成し、それぞれのConfigにアカウント・プロジェクトを設定し、アクティブなConfigを切り替えることにより、複数アカウント・プロジェクトを切り替える方法を用いました。

アカウント登録

gcloudにアカウントを登録します。

GCPのアカウントには「ユーザーアカウント」と「サービスアカウント」の2種類があり、それぞれの違いとgcloudへの登録方法は下記になります。

  • ユーザーアカウント
    • いわゆるGoogleアカウントのこと
    • gcloud auth loginで登録
  • サービスアカウント
    • GCPのIAMで任意に新規追加できるアカウント
    • gcloud auth activate-service-account --key-file=[KEY_FILE}で登録

ユーザーアカウントはもちろんのこと、サービスアカウントも、プロジェクトをまたいで他のプロジェクトにアクセスできます。

そのあたりの解説は下記にまとめました。

www.kwbtblog.com

gcloudにアカウントを登録すると、アカウントの認証情報は~/config/gcloud以下にコピーされるので、以降はログインやキーファイル無しでgcloudからプロジェクトにアクセスできるようになります。

アカウント一覧

gcloud auth list

Config追加

最初は「default」Configしかないので、切り替え用にConfigを追加します。

gcloud config configurations create [Config名]

Config一覧

gcloud config configurations list

アクティブなConfigに切り替え

gcloud config configurations activate [Config名]

Config設定

追加したConfigに、前述の4つの情報「アカウント」「プロジェクト」「リージョン」「ゾーン」を設定します。

設定したいConfigをアクティブにして、下記コマンドを実行します。

gcloud config set account [アカウント名]
gcloud config set project [プロジェクトID]
gcloud config set compute/region [リージョン名]
gcloud config set compute/zone [リージョン名]

リージョンとゾーン一覧はこちら

Config設定確認

gcloud config list

Config削除

削除したいConfigを非アクティブにして下記を実行します。

gcloud config configurations delete [Config名]

ユーザー・アカウント切り替え

では本題のユーザー・アカウント切り替えにいきます。

方法1)アクティブなConfigを切り替える

アクティブなConfigを切り替えて、gcloudコマンドを実行します。

gcloud config configurations activate [Config名]

方法2)Configを指定する

gcloudコマンドで、使用するConfigを指定することもできます。

gcloud [コマンド] --configuration=[Config名]

方法3)Configを自動切り替えする

環境変数「CLOUDSDK_ACTIVE_CONFIG_NAME」でConfigを指定することもできます。

Configを切り替えて忘れて、違うプロジェクトを編集してしまうことはありがちなので、Googleのドキュメントにあるように、 direnvを使って、フォルダ毎に環境変数「CLOUDSDK_ACTIVE_CONFIG_NAME」が変わるようにして、Configを自動切り替えするようにしました。

direnvインストール

sudo apt-get install direnv

.bashrc

eval "$(direnv hook bash)"

direnv設定

「.envrc」ファイルに環境変数「CLOUDSDK_ACTIVE_CONFIG_NAME」を記載すると、そのフォルダ配下は指定したConfigになります。

.envrc

export CLOUDSDK_ACTIVE_CONFIG_NAME=[Config名]

gcloud設定情報保存場所

アカウント認証情報、Configデータなど、gcloudの設定情報は~/.config/gcloudに保存されているので、 他のPCにgcloudの設定を持っていいくには、このフォルダをコピーすれば行えます。

感想など

今回初めて知りましたが「direnv」便利ですね。docker-composeのプロジェクト名の設定をよく忘れるのですが、「COMPOSE_PROJECT_NAME」 で自動設定できそうです。

関連カテゴリー記事

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com




以上の内容はhttps://www.kwbtblog.com/entry/2020/02/18/052841より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14