ansibleのgcpモジュールを使ったインスタンスの起動
GCPを使うようになって、コンソールから起動するのが面倒&自分でAPIいじるのも面倒なのでansibleにやっていただく。
認証用のjsonファイルを作成する
GCPコンソールから IAMと管理-> サービスアカウント -> サービスアカウントを作成 をクリック
サービスアカウントの権限を設定する。(今回はCompute 管理者ですが適宜変更してください)
キーの作成をする
キーを作成したときにダウンロードされるjsonファイルと、 サービスアカウントのページから参照できるデータはあとで使います。
ansibleでGCPを起動するplaybookを書く
- name: GCP test from ansible
connection: localhost
vars:
service_account_email: "ansible-test@**********.iam.gserviceaccount.com"
credentials_file: "PATH-TO-JSON.json"
project_id: "PROJECT NAME"
tasks:
- name: test
local_action:
module: gce
instance_names: test
zone: asia-northeast1-b
state: started
service_account_email: ""
credentials_file: ""
project_id: ""
presentをstartedにすると停止していたインスタンスが起動して、stoppedにすると起動->停止となります。
他にもディスクサイズとかを指定できたりするので、結構便利。
service_account_email, credentials_fileにサービスアカウントの情報をいれて、projectidに立ち上げたいインスタンスのあるプロジェクトIDを入れます。
gce - create or terminate GCE instances
Google Cloud Platform Guide