仮想マシンでウェブサーバーを稼動させ、LAN内の別マシンからアクセスしたい。環境を作って実験してみよう。
プライベートネットワークの設定
テスト用にCentOS 7ベースの仮想マシンを構築してApacheを稼動させる。Vagrantでプライベートネットワークを設定することで、ホストOSのブラウザが仮想マシンのサーバーにアクセスできる。
$ vagrant init centos-7.1 $ vim Vagrantfile config.vm.network "private_network", ip: "192.168.33.10" $ vagrant up
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:51:d1:5e brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86350sec preferred_lft 86350sec inet6 fe80::a00:27ff:fe51:d15e/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:b4:45:7d brd ff:ff:ff:ff:ff:ff inet 192.168.33.10/24 brd 192.168.33.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:feb4:457d/64 scope link valid_lft forever preferred_lft forever $ sudo yum update -y $ sudo yum install -y httpd $ sudo systemctl enable httpd.service $ sudo apachectl restart
ホストOSから http://192.168.33.10/ にアクセスしてページが表示されればOK。
パブリックネットワークの設定
Vagrantでパブリックネットワークも設定することで、LAN上の他マシンから仮想マシンのサーバーにアクセスできるようになる。
$ vim Vagrantfile config.vm.network "public_network" $ vagrant reload
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:51:d1:5e brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86241sec preferred_lft 86241sec inet6 fe80::a00:27ff:fe51:d15e/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:b4:45:7d brd ff:ff:ff:ff:ff:ff inet 192.168.33.10/24 brd 192.168.33.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:feb4:457d/64 scope link valid_lft forever preferred_lft forever 4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:68:16:01 brd ff:ff:ff:ff:ff:ff inet 192.168.1.18/24 brd 192.168.1.255 scope global dynamic enp0s9 valid_lft 86259sec preferred_lft 86259sec inet6 fe80::a00:27ff:fe68:1601/64 scope link tentative dadfailed valid_lft forever preferred_lft forever
新しいNICが割り当てられてる。アドレスはDHCPで振られたのだろう。
LAN上の他マシンから http://192.168.1.18/ にアクセスしてページが表示されればOK。
追加設定
IPアドレスやNICを固定で指定することもできるらしい。
$ vim Vagrantfile config.vm.network "public_network", ip: "192.168.1.151", bridge: "en1: Wi-Fi (AirPort)"
参考サイト
Public Networks – Networking – Vagrant by HashiCorp
https://www.vagrantup.com/docs/networking/public_network.html
[Vagrant]LAN内の別マシンから仮想マシンにアクセスする
http://big1to.com/development-note/828
Vagrant: 同じLAN内の端末から仮想マシンにアクセスする | deadwood
http://www.d-wood.com/blog/2014/06/13_6344.html