GCE スタートアップスクリプトで gsutil を使う

Posted: , Modified:   GoogleCloudPlatform GoogleComputeEngine CoreOS Qiita

本稿は Qiita 投稿記事 のバックアップです.

問題

GoogleComputeEngine(GCE) CoreOS では,gsutil などのツールは,google/cloud-sdk という docker イメージ内にあるものを利用している.しかし,これらが使えるようになるのは スタートアップスクリプト終了後になっているため,スタートアップスクリプト内で gsutil などを使うと command not found となる.

解決策

スタートアップスクリプト内で google/cloud-sdk を pull し, そこに含まれているコマンドを利用する.また,なぜか gcloud components update しろと警告が出るので,予めアップデートしておく.

$ docker pull google/cloud-sdk
$ docker run -t --name updating google/cloud-sdk /google-cloud-sdk/bin/gcloud components update -q
$ docker commit updating google/cloud-sdk:latest

その後,gsutil コマンドを利用する,

$ docker run -t --rm google/cloud-sdk /google-cloud-sdk/bin/gsutil cat <url>