1つのVagrantfileで複数の仮想マシンを立ち上げ

Vagrantfileに複数の仮想マシンを定義することで、複数の仮想マシンを立ち上げることができます。ここでは、複数の仮想マシンの立ち上げ、通信確認を行います。

複数の仮想マシンを立ち上げ

2つ仮想マシン( masterホスト webホスト )を立ち上げてみます。

Vagrantfileに次のように記述します。

Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.1"
 
  config.vm.define :master do |server|
    server.vm.hostname = "master"
    server.vm.network "private_network", ip: "192.168.33.10"
  end
 
  config.vm.define :web do |server|
    server.vm.hostname = "web"
    server.vm.network "private_network", ip: "192.168.33.11"
  end
end

6, 11行目でプライベートネットワークを設定してます。プライベートネットワークは、ホストとゲスト間のみで有効なネットワークとなります。

  • ホストオンリーアダプタ
    • ホストとゲストで有効なネットワーク。ゲスト同士は通信できない。
  • プライベートネットワーク
    • ホストとゲスト間で有効なネットワーク。ゲスト同士でも通信できる。

vagrant up で2つ仮想マシンが立ち上がります。

vagrant_multi0.png

ホストとゲストのIPは以下のようになります。

vagrant_multi_p.png

ホストのIPは、割り当てたIPアドレスのホスト部が「1」のアドレスです。

以降、通信確認をしていきます。

ホストマシン ⇒ ゲストマシン(ping)

ホストマシンからゲストマシンに対してpingを飛ばしてみます。

vagrant_multi_p1.png

masterホストにping送信

vagrant_multi1.png

webホストにping送信

vagrant_multi2.png

ホストマシン ⇒ ゲストマシン(ssh)

ホストマシンからゲストマシンにSSH接続します。

vagrant_multi_p2.png

複数の仮想マシンを立ち上げた場合、下記のように対象ホストを指定します。

vagrant ssh 対象ホスト

なので、masterホストに接続するには vagrant ssh master とします。

ゲストマシン ⇒ ゲストマシン(ping)

ゲストマシン同士でネットワークが繋がるか確認します。

vagrant_multi_p3.png

masterホストにSSH接続後、webホストにpingを送信しています。

vagrant_multi3.png

ゲストマシン ⇒ ゲストマシン(ssh)

masterホストからwebホストに対して、SSH接続してみます。

vagrant_multi5.png

masterホストにログイン

vagrant ssh master

「~/.ssh/config」ファイルを編集

webホストに接続する際、IPアドレスでなく、ホスト名でアクセスできるように「~/.ssh/config」ファイルを編集します。

vi .ssh/config

「~/.ssh/config」ファイルの内容は以下の通りです。

Host web
 HostName 192.168.33.11

「~/.ssh/config」ファイルのパーミッションを変更します。

chmod 600 .ssh/config

秘密鍵と公開鍵のペアを作成

下記コマンドで秘密鍵と公開鍵のペアを作成します。

ssh-keygen -t rsa
vagrant_multi4.png

試験用のため、入力を求められる箇所は全てEnterとしました。

下記のように、秘密鍵( ~/.ssh/id_rsa )と公開鍵( ~/.ssh/id_rsa.pub )が生成されました。

vagrant_multi_p5.png

webホスト側へ公開鍵を登録

下記コマンドを実行すると、masterホストの公開鍵(~/.ssh/id_rsa.pub)がwebホストの「/home/vagrant/.ssh/authorized_keys」に登録されます。

ssh-copy-id web
vagrant_multi6.png

パスワードの入力が求められる箇所は vagrant と入力します。

公開鍵の設置場所
登録する公開鍵は、デフォルトで「~/.ssh/id_rsa.pub」となります。変更したい場合、オプションで「-i 公開鍵のパス」と指定します。

SSH接続

masterホストからwebホストへSSH接続します。

vagrant_multi7.png