Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja | 株式会社ハートビーツ(HEARTBEATS Corporation)|AWS・クラウド・サーバーなどのインフラ運用を24時間365日サポート

インフラエンジニアway

Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja

技術

こんにちは。CTOの馬場です。

前回 Google Cloud Platformをはじめようチュートリアル でGCPのアカウント設定・プロジェクト作成〜GCEでインスタンス起動までやってみました。

その手順の途中で登場した、GCPのCLIツール gcutil を手元のPCにインストールする代わりにDockerを使ってGCP操作環境を作ってみましょう。

※Dockerが使える環境があることが前提です。ありますよね。

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

ss2014-06-04_22.41.44.png

実行するとURLがドバっと表示されるので、このURLをブラウザで開きます。 するとアカウント認証画面でアカウントを選択します。

account.png

アカウントを選択すると、権限の許可リクエスト確認が出るので承認します。

success.png

googleアカウントで認証するとブラウザ上にコードが表示されるので、 これをコピーして Enter verification code: のところに貼り付けてEnterで認証完了です。

ss2014-06-04_22.44.53.png

使うときは、さきほど設定したコンテナを起動してコマンドを実行します。

例えば
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

これで準備完了。

あとはインスタンス一覧を表示したりしていろいろ使ってください。

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

ss2014-06-04_23.12.37.png

コマンド実行ごとに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

ss2014-06-04_23.23.36.png

この方法なら次回以降も指定した --name を使って簡単に操作再開できるので楽チン!

docker start gc
docker attach gc

ではでは、みなさまお試しください〜

TOP