Vagrantでは1つのVagrantfileに複数の仮想マシンを定義して動かすことができます。 その場合の設定や操作について紹介したいと思います。
1つのVagrantfileに複数の仮想マシンを定義して動作させることは、 Vagrantのマニュアルではマルチマシン環境と呼ばれています。 サーバーとクライアント、WebサーバーとDBサーバといった複数の仮想マシンが必要な場合に便利です。
Vagrantfileに複数の仮想マシンを定義する
複数の仮想マシンをVagrantfileに定義するには次のように記述します。
Vagrant.configure("2") do |config| config.vm.define "server" do |s| s.vm.box = "centos/7" end config.vm.define "client" do |c| c.vm.box = "centos/6" end end
以下のようなブロックの記述部分が1つの仮想マシンの設定です。
config.vm.define "<仮想マシン名>" do |<変数名>| # ここに個々の仮想マシンの設定を記述 end
ブロックの本体に個々の仮想マシンの設定を記述します。 ここでは仮想マシンの設定として、boxファイルの指定しかしていません。
仮想マシンの起動
仮想マシンを起動するにはvagrant upを実行します。
$ vagrant up
vagrant upを引数なしで実行すると、 Vagrantfileに定義した全ての仮想マシンが起動します。
一つの仮想マシンだけ起動したい場合は、vagrant upに定義した仮想マシン名を指定します。
$ vagrant up server
このように、基本的に1つの仮想マシンを操作する場合は名前を指定してコマンドを実行します。 名前を省略した場合は定義された全ての仮想マシンがコマンドの操作対象になります。 「vagrant halt」や「vagrant status」なども試してみてください。
仮想マシンへのログイン
仮想マシンにログインするにはvagrant sshを使います。 この場合も仮想マシン名の指定が必須です。 仮想マシン名を指定しないと、 どのマシンにログインすべきかわからないので当然でしょう。
$ vagrant ssh client
おしまい。