Chef実践入門 第5章のvagrantによるクックブック開発環境の構築 5.6 VagrantでAmazonEC2を利用する を実機にて検証したメモ
この部分はchefはあまり関係ない
#0.環境前提
MacOSX vagrant インストール済み
#1.vagrant-awsプラグインのインストール
vagrant plugin install vagrant-aws
vagrant plugin list
#2.dummyboxのインストール
Amazon EC2をVagrantで利用する際にはdummyboxという AMIを利用する為のboxが必要となる。以下コマンドでbox追加する。
vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
#確認
vagrant box list
#3.AWSでセキュリティグループとキーペアの作成
##(1)AWSのマネジメントコンソールで自IPからSSH接続可能なセキュリティグループを作成
##(2)キーペアを作成
ダウンロードされたキーペアを適当な場所に保管する。
#4.zshをこの期にインストール
##(1)HomeBrewでインストールしてデフォルトシェルに設定
```bash:
brew install zsh
vi /etc/shells
```
```bash:etc/shells
#最終行に以下追加
/usr/local/bin/zsh
```
デフォルトシェルをbashからzshに変更
```bash:
chsh -s /usr/local/bin/zsh
```
*この後ターミナルに入れなくなるトラブル発生。[こちら](http://umegusa.hatenablog.jp/entry/2012/07/21/155637 "こちら")を参考に解決
##(2)~/.zprofileに環境変数を設定
```bash:~/.zprofile
export AWS_ACCESS_KEY_ID=XXX
export AWS_SECRET_KEY=XXX
export AWS_KEYPAIR_NAME=chef_practical_guide
export AWS_PRIVATE_KEY_PATH=XXX
```
+ sourceコマンドで読み込み
```zsh:
source ~/.zprofile
#確認
echo $AWS_ACCESS_KEY_ID
```
#5.VagrantからEC2インスタンスを起動する設定
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "dummy"
ssh_username = "ec2-user"
region = "ap-northeast-1"
ami = "ami-cbf90ecb"
security_groups = "chef_practical_guide"
instance_type = "t2.micro"
# AWS設定
config.vm.provider :aws do |provider, override|
# AWS認証情報
provider.access_key_id = ENV['AWS_ACCESS_KEY_ID']
provider.secret_access_key = ENV['AWS_SECRET_KEY']
provider.keypair_name = ENV['AWS_KEYPAIR_NAME']
# EC2インスタンスの設定
provider.region = region
# Amazon LinuxのAMIを指定
provider.ami = ami
provider.instance_type = instance_type
provider.instance_ready_timeout = 120
provider.terminate_on_shutdown = false
# セキュリティグループ
provider.security_groups = [security_groups]
# タグ(任意)。インスタンスに分かりやすい目印を付けたい場合。
provider.tags = {
"Name" => "vagrant-aws",
"Description" => "Boot from vagrant-aws",
}
# AWSへの接続ユーザおよび秘密鍵の指定
override.ssh.username = ssh_username
override.ssh.private_key_path = ENV['AWS_PRIVATE_KEY_PATH']
override.ssh.pty = true
end
end
#6.EC2インスタンスの起動 (vagrantup.logにlog出力)
VAGRANT_LOG=info vagrant up --provider=aws > &vagrantup.log
#7.確認
AWSのマネジメントコンソールでインスタンス起動確認 &ssh 接続確認 , vagrant haltでAWSのEC2インスタンスが停止する事も確認