vagrantで2つの仮想サーバ間を通信しよう
ローカル開発環境を整える
ローカルにvagrantとvirtualBoxをインストールする、もしくはアップデートする。
- 検証用環境(2014/10/31)
- vagrant 1.6.5
- virtualBox 4.3.18
※ADを使用している場合はADのアカウントだとvagrant、virtualBox共にインストールでこけてしまう。
AD対策(インストール)
AD(ActiveDirectory)を入れている場合は、コンピュータのローカルユーザでログインする。
- ローカルユーザのパスワード等を忘れた時
1. コントロールパネル
2. ユーザアカウント
3. ユーザアカウントの管理
4. 追加、削除、パスワードのリセットを行う
ローカルユーザでログイン後にvagrant、virtualBoxのダウンロード、インストールを行う。
インストール後は再びADのアカウントに戻り作業する。
インストールもしくはアップデートが完了したら、次にvagrantの設定を行う。
vagrantの設定
コマンドプロンプトを立ち上げえる。
※コマンドが打てればなんでも可
適当な場所(自分の作業する場所)に移動し、下記コマンドを実行。
- vagrantの初期化
$ vagrant init
- Boxイメージの追加
$ vagrant box add centos5.8 https://dl.dropbox.com/u/17738575/CentOS-5.8-x86_64.box
これはボックスイメージ一覧から取得したイメージの名前を
centos5.8とし、それをvagrantに追加しているというコマンドである。
名前は自由に決めることができ、イメージも自由に変更可能である。
※今回はCentOS 5.8を使用
次にvagrant initでできたVagratfileの中身を編集する。
config.vm.box = "centos5.8"
デフォルトだとbaseになっている部分を先ほど追加したboxイメージの名前に変更する。
$ vagrant up
うまく設定がされていたらこれでvirtualBox上に先ほど取得したイメージの仮想サーバが立ち上がります。
- sshでつなげてみる
$ ssh 127.0.0.1:2222
ポートは作成されたvirtualBoxをみてください。
vagrantでは以下の設定でvirtualBoxのユーザが作成されます。
- ユーザ名:vagrant
- パスワード:vagrant
これでsshでサーバに入れれば成功です。
一つのboxから複数のvirtualBoxを制御する
構成ファイル(Vagrantfile)を編集します。
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "centos5.8"
config.vm.define :web1 do | web1 |
web1.vm.hostname = "web1"
web1.vm.network :private_network, ip: "192.168.33.10"
end
config.vm.define :web2 do | web2 |
web2.vm.hostname = "web2"
web2.vm.network :private_network, ip: "192.168.33.20"
end
これでhost名がweb1とhost名がweb2の二つのサーバがvagrant upで立ち上がります。
双方の通信をするためにvmのnetwork設定にIPアドレスを割り当てています。
- 確認
@web1$ ping 192.168.33.20
@web2$ ping 192.168.33.10
これでpingがかえってきたら成功です。
参考サイト