Vagrantセットアップ
- Vagrant本体インストール (Vagrant公式サイトを参照)
- プラグインインストール
- EC2用Box追加
- Vagrantfile作成
- Vagrantfile編集 以下、Vagrantfileの設定例
- AWSアクセスキー設定 事前に取得したアクセスキーを環境変数に設定
$ vagrant plugin install vagrant-aws
$ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
$ mkdir vagrant-sample
$ cd vagrant-sample
$ vagrant init
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "dummy"
config.vm.provider :aws do |aws, override|
# AWS Access
aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
aws.keypair_name = "KEYPAIR NAME"
# Instance config
aws.instance_type = "t2.micro"
aws.region = "ap-northeast-1"
aws.availability_zone = "ap-northeast-1a"
aws.ami = "ami-xxxxxxxx"
aws.security_groups = ['SECURITY GROUP']
aws.tags = {
'Name' => 'Instance Name',
'Description' => 'Instance Description'
}
# VPC config
aws.subnet_id = "subnet-xxxxxxxx"
# for Amazon Linux
aws.user_data = "#!/bin/sh\nsed -i 's/^.*requiretty/#Defaults requiretty/' /etc/sudoers\n"
# SSH
override.ssh.username = "ec2-user"
override.ssh.private_key_path = "private-key.pem"
override.ssh.pty = true
end
end
$ export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$ export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EC2インスタンス起動・終了
- 仮想マシン起動(EC2インスタンス生成)
- Provisioning実行
- 終了(EC2インスタンス破棄)
$ vagrant up --provider=aws --no-provision
$ vagrant provision
$ vagrant destroy
仮想マシンその他操作一覧
- SSH接続
$ vagrant ssh
- 再起動
$ vagrant reload
- 停止
$ vagrant halt
- 状態確認
$ vagrant status
- SSH接続情報確認
$ vagrant ssh-config
Vagrantその他プラグイン
- AWS SDK
$ vagrant plugin install aws-sdk
- 仮想マシンのProxy設定
$ vagrant plugin install vagrant-proxyconf
- 仮想マシンにChef-Soloインストール
$ vagrant plugin install vagrant-omnibus
- サーバ構成テスト
$ vagrant plugin install vagrant-serverspec
- 作成したインスタンスをAMI化
$ vagrant plugin install vagrant-ami
- 仮想マシンの状態管理
$ vagrant plugin install sahara