LoginSignup
6
6

More than 5 years have passed since last update.

GCE環境へのVM接続を楽にするalias

Posted at

GCE環境で複数のProjectで仕事しているのだが、切り替える為のgcloudコマンドを打つのが面倒になってきたので、こんな感じで~/.zshrcに忍ばせています。
(動作確認してないけどbashでも動くと思います。)

# ssh VM instance: gssh <VM instance>
## defautl zone set : gcloud config set compute/zone <ZONE>
alias gssh='gcloud compute ssh '
# show config: gcfg
alias gcfg='gcloud config list'
# show current project_id: gpj
alias gpj='gcfg | grep project'
# GCE set current project: <PROJECT_NAME>
alias <PROJECT_NAME>='gcloud config set project <PROJECT_ID> && gpj'

難しい事はしてないので見れば分かるかと思いますが、以下解説。

1. gssh: VM instance への接続

Usage: gssh << VM instance >>

gcloud compute ssh のalias。
注意点として通常作成時のgcloud auth loginしただけではconfigに[compute:zone]が作成されないのでgcloud config set compute/zone <ZONE>を実行して普段VM構築時に使用しているzoneを設定しておく必要がある。
設定していないと毎回zoneを聞かれる。正直うざい。聞かれるのはgcloudコマンドの仕様。

For the following instances:
 - [<VM isntance>]
choose a zone:
 [1] asia-east1-b
 [2] asia-east1-c
 [3] asia-east1-a
 [4] europe-west1-b
 [5] europe-west1-a
 [6] us-central1-f
 [7] us-central1-b
 [8] us-central1-a
Please enter your numeric choice:

ちなみにgcutil sshはzoneを設定せずとも聞かれることなく適切なzoneを自動で判断してssh接続ができる。やっぱりgcutilの方が使い勝手いいのになんで無くす方向なのかなぁ。

2. gcfg: gcloud configの設定値確認

Usage: gcfg

gcloud config listのalias。
設定値がずらっと出ます。

3. gpj: gcloud confg で設定されているproject-id設定値確認

Usage: gpj

gcfg | grep projectのalias。
projectの切り替えが多いためproject-idだけを確認できるようコマンドを別出しした。

4. < PROJECT_NAME >: project-idの切り替え

Usage: <PROJECT_NAME>

gcloud config set project <PROJECT_ID>のalias。
現在PROJECT_NAMEからPROJECT_IDを取得する術がgcloudコマンドにはない為、仕方なくPROJECT数分直接PROJECT_NAMEとPROJECT_IDを記載して設定している。
正直ダサい。
実行後にgpjを実行させ切り替わり後のproject-idを表示させている。

今後

プロンプト等にPROJECT_IDかPROJECT_NAMEが出ればもっと幸せかな、と思いました。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6