Vagrantで複数サーバ立ち上げ
普段、ローカルPCでの開発の際、アプリケーションの動作環境をできるだけ本番環境と同じ状態にしたい時はVagrantを使用しています。
インストールなどの基本導入はこちら。
今回はそのVagrantでサーバ(仮想マシン)を複数(2台)立ち上げを実践し、業務でもちょっと利用していましたのでその方法を記録しておきます。
(※以下に出てくる設定名称等は実際の業務内容とは関係ありません)
構成としては単純で、複数のDBに接続することを想定して以下のようにしました。
それぞれのサーバの元となるBOXファイルは、予め作成しておくか公開されているものを取得しておきます。3分クッキング的ですね…。
1. BOXファイルの追加
予め用意した2つのBOXファイルを BoxPath1、BoxPath2 に置いておくとします。
そしてそれぞれに BoxDB1、BoxDB2 としてBOXファイル名を付けて追加します
1 2 |
$vagrant box add BoxDB1 BoxPath1 $vagrant box add BoxDB2 BoxPath2 |
2. Vagrantfileの編集
1 |
$vagrant init BoxDB1 |
上記を実行すると作成されるVagrantfileを以下のように編集します(それ以外はすべてコメントアウト)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Vagrant.configure(2) do |config| #仮想マシン1:BOXファイルとIPと共有ディレクトリを指定 config.vm.define "DBserver1" do |DB1| DB1.vm.box = "BoxDB1" DB1.vm.network "private_network", ip: "192.168.33.10" DB1.vm.synced_folder "共有したいディレクトリパス", "ゲストOSの共有先パス" end #仮想マシン2:BOXファイルとIPを指定 config.vm.define "DBserver2" do |DB2| DB2.vm.box = "BoxDB2" DB2.vm.network "private_network", ip: "192.168.33.11" end end #config.vm.defineの "" と || 内は任意の名称 |
※記述しているのはあくまでも2台立ち上げを実践した際の例です。この1パターンしかないというわけではありません。
ちなみに、仮想マシンを3台以上立ち上げる場合も要領は同じです。
config.vm.define ~ end を台数分追記していきます。
3. 仮想マシン立ち上げ
以下を実行すると設定した複数の仮想マシンがすべて起動します。
1 |
$vagrant up |
もし vagrant up して以下のようなエラーに遭遇した場合は…
1 2 3 4 5 6 7 |
ARPCHECK=no /sbin/ifup eth1 2> /dev/null Stdout from the command: Device eth1 does not seem to be present, delaying initialization. Stderr from the command: |
Vagrantfile の ~.vm.network の行を一度コメントアウトして再度 vagrant up を実行。
SSHでログイン(127.0.0.1:2222)してゲストOS上で以下を実行します。
1 |
$sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules |
そして Vagrantfile の ~.vm.network の行のコメントをはずし、vagrantを再起動。
1 |
$vagrant reload |
これでエラー解消して立ち上がると思います。
公式の資料はこちらにあります。
こちらのらくがきもどうぞ。
関連記事
-
鼻水出るほどびっくりな環境構築ツール Vagrant
仕事で仮想マシンを使うことにして(今まではXAMPPやAWSで事足りてた)、ついでに面倒だから自動構
- PREV
- ベトナムのロックは何を叫ぶのか
- NEXT
- Oracle Cloud で仮想サーバを立ててみた