この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
はじめまして、bibioです。中途入社のぴちぴちです。
入社早々開発環境を作ったという流れで、ぎりぎりRubyつながりなvagrantの操作をおさらいします。
そもそもvagrantって何ですか?
VirtualBox(VMwareも使えますが確か有償)をコマンドラインから簡単に動作できるようにしたツールです。
ホスト環境は Macですが、Windowsでも動きます。
メリット
- 設定ファイルは Ruby で記述されている
- OSがインストールされた仮想イメージが簡単に利用・共有できる
- chef の検証に便利
デメリット
- プラグインの使い方がわかりにくい
- 初期値のメモリが少ない(512MB)のでコンパイル中にたまに固まる
キーワード
boxOSインストール済みの仮想化ファイルprovider仮想ソフトウエアの種類
前提環境と準備
今回は VirtualBox を使います。
はじめに VirtualBox と Vagrant をダウンロードしてインストールします。
流れ
host $ mkdir vagrant; cd vagrant
host $ vagrant init
host $ vi Vagrantfile
host $ vagrant up
host $ vagrant ssh
guest >
基本的にこれだけです。初回の vagrant up で chef/centos-6.5 の
BOX がダウンロードされるので時間と帯域を消費します。
また、ダウンロードしたBOXは保存されるので、次回以降 chef/centos-6.5 を
使う場合は基本的にはダウンロードされません。
upした段階で VirtualBox をたちあげると仮想マシンが生きていることが確認できます。
なお、仮想マシンは up 時に BOX から複製されるので、元のBOXは変更されません。
設定ファイルの編集
Vagrantfile という設定ファイルを編集することでカスタマイズが可能です。
最低限必要なオプションは config.vm.box だけ。
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# CentOS 6.5 を入れる
config.vm.box = "chef/centos-6.5"
# プライベートネットワーク設定するとホストからアクセス
config.vm.network "private_network", ip: "192.168.33.10"
# 仮想マシンのカスタマイズ
config.vm.provider "virtualbox" do |vb|
vb.gui = false
# CPU2コア,メモリ1GBを割り当てる。 ioapic がないとうまく動かないみたい
vb.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "2", "--ioapic", "on"]
end
end
ssh でログイン
初期値のホストとポートは 127.0.0.1:2222 です。
秘密鍵は $HOME/.vagrant.d/insecure_private_key です。
パスワード未設定なので気になったら自分の秘密鍵に変更してください。
ssh の設定は以下のコマンドで確認できます。
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/bibio/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
おまけですが、秘密鍵から公開鍵を作る方法です。
$ ssh-keygen -y -f .ssh/id_rsa
仮想マシンを停止/サスペンド/削除
操作もコマンドラインからできます。
停止
$ vagrant halt
サスペンド
$ vagrant suspend
削除
容量を圧迫するので使わなくなった仮想マシンは削除しましょう。
$ vagrant destroy
なお、BOX は削除されません。
さらにBOXの複製や共有もできますが、今回はここまで。