目的
Vagrantで作成したVM (Linux [CentOS])にプライベートな固定IPアドレスをVagrantfileを用いて設定する。
背景用途
VMで構築したApache webサーバー用Dockerコンテナの稼働確認としてホストOS側のブラウザからVMに対してHTTPアクセスしたい為。
実行環境
ホストOS側
OS X EI Capitan
Vagrant 1.7.4
VM側
CentOS Linux release 7.2.1511 (Core)
Vagrantfileの編集
Vagrantfileファイル中程にある「config.vm.network “private_network”〜」の行頭コメントアウトを削除。
1 2 3 |
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" |
この場合、「ip: 〜」以降のアドレスが設定される。
固定IPアドレスの設定確認
Vagrantfileの編集後、下記コマンドにてVMを再起動。
1 |
$ vagrant reload |
VM上でIPが設定されていることを確認。
1 2 3 4 5 6 7 8 9 |
[vagrant@localhost ~]$ ip addr <中略> 3: enp0s8: <broadcast,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:c2:ef:c2 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:fec2:efc2/64 scope link valid_lft forever preferred_lft forever <後略> |
因みにホスト側にもVM用のIFとルーティングが追加されいてる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ ifconfig <中略> vboxnet1: flags=8943<up,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether 0a:00:27:00:00:01 inet 192.168.33.1 netmask 0xffffff00 broadcast 192.168.33.255 <後略> $ netstat -rn | grep vbox 192.168.33 link#17 UC 3 0 vboxnet 192.168.33.255 link#17 UHLWbI 1 9 vboxnet 192.168.99 link#12 UC 4 0 vboxnet 192.168.99.100 8:0:27:ce:de:b3 UHLWIi 1 14 vboxnet 1059 192.168.99.255 link#12 UHLWbI 1 9 vboxnet $ ping 192.168.33.10 PING 192.168.33.10 (192.168.33.10): 56 data bytes 64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.403 ms 64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.329 ms 64 bytes from 192.168.33.10: icmp_seq=2 ttl=64 time=0.328 ms <後略> |