vagrantからGoogle Compute Engine(GCE)のインスタンスを起動する方法

f:id:komeiy:20140920161500j:plain

vagrantからGoogle Compute Engineを起動する方法です。 クーポンがあるのでGoogle Platformの勉強や自宅PCが非力なので代わりに使っています。

googleのdeveloperコンソールに入れる状態まではいっておいてください。あとクラウドなので課金については事前に調べておいてください。

knife-soloにもサブコマンドでknife-googleが用意されていたりしますが、vagrantが中間レイヤーとして入ってくれるので一度vagrantfileを作成してしまえば今まで通り操作するだけです。

vagrantfile作成にあたり

以下を事前に設定・取得してください

  • project-id

  • サービスアカウントのメールアドレス

  • googleサービスアカウントのキーファイル

  • GCEのAPIを有効化する

まずproject-idですが、Google Platformが使える状態であればDeveloper Consoleのtopページで確認できると思います。

サービスアカウントのメールアドレスはDeveloper consoleのAPIと認証の画面から確認できます。ない場合は新しいクライアントIDを作成してみてください。

googleサービスアカウントのキーファイルはDeveloper consoleのAPIと認証の画面で新しいクライアントIDを作成した際にダウンロード可能なので取得してください。クライアント側に保存してGOOGLE_KEY_LOCATIONにパスを設定します。

一応、レシピを2つ程run-listに入れて試しています。適宜外してください。

あとはイメージファイルやインスタンスのタイプも環境に合わせて設定してください。 google.image = "centos-6-v20140718" google.machine_type = "f1-micro"

$GOOGLE_PROJECT_ID = "<your id>"
$GOOGLE_CLIENT_EMAIL = "<your mail>"
$GOOGLE_KEY_LOCATION = "<your key(p12)>"
$LOCAL_USER = "<your username>"
$LOCAL_SSH_KEY = "<your key>"

Vagrant.configure("2") do |config|

  config.vm.box = "gce"

  config.vm.provider :google do |google, override|
    google.google_project_id = $GOOGLE_PROJECT_ID
    google.google_client_email = $GOOGLE_CLIENT_EMAIL
    google.google_key_location = $GOOGLE_KEY_LOCATION

    # Override provider defaults
    google.name = "testing-vagrant"
    google.image = "centos-6-v20140718"
    google.machine_type = "f1-micro"
    google.zone = "us-central1-a"
    google.metadata = {'custom' => 'metadata', 'testing' => 'foobarbaz'}

    override.ssh.username = $LOCAL_USER
    override.ssh.private_key_path = $LOCAL_SSH_KEY

  config.omnibus.chef_version = :latest
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["./cookbooks", "./site-cookbooks"]
    chef.run_list = %w[
      recipe[yum-epel]
      recipe[nginx]
    ]
  end
end
end

これでGCEからインスタンスを起動できるはずです。 $LOCAL_SSH_KEY = ""ですが、一度適当なインスタンスを起動してCLIからSSHでログインすると~/.ssh/にgoogle_compute_engineというファイルができていると思います。使い回しましょう。SSHにはgcutilを使うのですが、コマンドはGUISSHボタンを押せば確認できます。


シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

Vagrant入門ガイド

Vagrant入門ガイド

Google Compute Engine入門 (アスキー書籍)

Google Compute Engine入門 (アスキー書籍)