普段はA-AUTO 50の開発をやっていて、C++に触れる機会が多いです。また、個人的にはhtml5とかnode.jsに興味があって、趣味で対戦型オンラインゲームを作っています。
そもそもvagrantとは?
vagrantとはVagrantfileと呼ばれる設定ファイルから、同じVM環境を何個でも作れるツールです。そんなことは全員で同じVMイ メージを共有すればVMWarePlayerだけでも出来るだろう、と思われるかもしれません。しかし、同じVMイメージから環境を複数を立ち上げる場合 はどうでしょうか。この時にとるべき戦略は、(1)VMイメージをコピーして個別に立ち上げる
(2)スナップショットを沢山作る
の2つになると思います。(1)の方法は単純にコピーの時間がかかり、(2)では環境が増えてくるとスナップショットの管理が大変になります。でもvagrantを使えば、
vagrant box add VM名 VMが存在するURL
vagrant init VM名 #VM初期化。この時に自動的にVagrantfileが作られる
vagrant up #VMの起動
vagrant up #VMの起動
環境構築
作業用PCに、以下のものをインストールして下さい。ちなみに、筆者はAWS上のWindows Server 2012で作業をしました。- vagrant
- git bash
vagrant plugin install vagrant-aws
vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
Vagrantfileを書こう
次にVagrantfileを書きます。このサイトを参考にしつつ、以下のようにVagrntfileを作りました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Vagrant.configure("2") do |config| | |
config.vm.box = "dummy" | |
config.vm.provider :aws do |aws, override| | |
aws.access_key_id = "AWSアクセスID" | |
aws.secret_access_key = "AWSシークレットキー" | |
aws.keypair_name = "キーペア名" | |
aws.ami = "AMI名" | |
aws.region = "ap-northeast-1" | |
aws.subnet_id = "VPCを使う場合にサブネットを指定" | |
aws.security_groups = ["セキュリティグループを指定"] | |
override.ssh.username = "VMログインユーザ名" | |
override.ssh.private_key_path = "キーファイル(.pem)を指定" | |
end | |
end |
AWSにインスタンスを作ろう
Vagrantfileがあるフォルダに、AWSのキーファイル(.pem)を置いたらgit bashを開きます。git bash上でVagrantfileがある階層に移動して、
vagrant up –provider=aws #AWSインスタンスを起動
vagrant ssh #AWSインスタンスへログイン
vagrnt halt #AWSインスタンスを停止
vagrant destroy #AWSインスタンスを破棄
vagrnt halt #AWSインスタンスを停止
vagrant destroy #AWSインスタンスを破棄
次回予告
vagrantはcheffと連携をして、MongoDBやnode.jsなどのミドルウェアを自動的に導入することもできます。次はvagrantとcheffの連携を中心に攻めてみます。次回の更新予定は2014/11/5です。
0 件のコメント:
コメントを投稿