ansibleのgcpモジュールを使ったインスタンスの起動

GCPを使うようになって、コンソールから起動するのが面倒&自分でAPIいじるのも面倒なのでansibleにやっていただく。

認証用のjsonファイルを作成する

GCPコンソールから IAMと管理-> サービスアカウント -> サービスアカウントを作成 をクリック

スクリーンショット 2018-12-09 23.57.12

サービスアカウントの権限を設定する。(今回はCompute 管理者ですが適宜変更してください)

スクリーンショット 2018-12-09 23.57.32

キーの作成をする

スクリーンショット 2018-12-09 23.58.01

キーを作成したときにダウンロードされる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

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

Jp, Tokyo https://connvoi.com