こんにちは。CTOの馬場です。
前回 Google Cloud Platformをはじめようチュートリアル でGCPのアカウント設定・プロジェクト作成〜GCEでインスタンス起動までやってみました。
その手順の途中で登場した、GCPのCLIツール gcutil
を手元のPCにインストールする代わりにDockerを使ってGCP操作環境を作ってみましょう。
※Dockerが使える環境があることが前提です。ありますよね。
1. 認証設定
Googleが cloud-sdk セットアップ済みのコンテナイメージを公開しているので、これを使います。
まずはpullして gcloud auth login
で認証設定します。
docker pull google/cloud-sdk
docker run -t -i --name gcloud-config google/cloud-sdk gcloud auth login
実行するとURLがドバっと表示されるので、このURLをブラウザで開きます。 するとアカウント認証画面でアカウントを選択します。
アカウントを選択すると、権限の許可リクエスト確認が出るので承認します。
googleアカウントで認証するとブラウザ上にコードが表示されるので、
これをコピーして Enter verification code:
のところに貼り付けてEnterで認証完了です。
2. 初期設定
使うときは、さきほど設定したコンテナを起動してコマンドを実行します。
例えば
gcloud config set project xxxx-xxxx-999
を実行したい場合、
docker run -t -i --volumes-from gcloud-config google/cloud-sdk gcloud config set project xxxx-xxxx-999
と実行します。
長くてやってられないのでaliasを設定しちゃいましょう。
alias gc="docker run -t -i --volumes-from gcloud-config google/cloud-sdk"
aliasは .bashrc
にでも書いておきましょうね。
echo 'alias gc="docker run -t -i --volumes-from gcloud-config google/cloud-sdk"' >> ~/.bashrc
source ~/.bashrc
それでは引き続き。扱うプロジェクトを設定します。
PROJECT IDはコンソールで確認できます https://console.developers.google.com/project
gc gcloud config set project xxxx-xxxx-999
これで準備完了。
3. 使う
あとはインスタンス一覧を表示したりしていろいろ使ってください。
gc gcloud compute instances list
gc gcloud compute instances get
gcloud compute instances get
はオプションで出力フォーマット(デフォルトはyaml)、出力項目を調整できるのでとても捗ります!
gc gcloud compute instances get --format=json --fields name kind machineType zone
おまけ
コマンド実行ごとにDockerにゴミがたまるのが嫌な場合は、2以降を実施せずに bash を起動しちゃいましょう。
Ctrl-p
が効かないストレスが問題にならないのであればこの方法でもよいと思います。
docker run -t -i --volumes-from gcloud-config --name gc google/cloud-sdk /bin/bash
gcloud config set project xxxx-xxxx-999
gc gcloud compute instances get --format=json --fields name kind machineType zone
この方法なら次回以降も指定した --name
を使って簡単に操作再開できるので楽チン!
docker start gc
docker attach gc
ではでは、みなさまお試しください〜