LoginSignup
4
5

More than 5 years have passed since last update.

VagrantのCentOSに固定IPを割り当てて外部ホストからアクセスする

Last updated at Posted at 2016-02-25

VagrantのGuestOS(CentOS)に静的IPを割り当てて、外部ホストからアクセスさせたい。
しかし、何度もDestroyする予定なので、毎回設定するのは面倒です。

少し調べましたが、単純にはできないようなので、シェルスクリプトを使用して行いました。

public_networkで、DHCPを使用しない場合は、Vagrantによってルーティングテーブルが自動的に設定されるようです。
これを、シェルスクリプトで書き換えます。

シェルスクリプトを使用する方法

以下はnode1に対して行っています。
defaultを使用している場合は単にconfig.vm.provisionでアクセスします。

Vagrantfile
  config.vm.define :node1 do |node|
    node.vm.box = "centos67"
    node.vm.network :public_network, :auto_config => false
    #vagrantfileのあるフォルダのbootstrap.shを使用して静的IPで外部からアクセスできるようにする
    node.vm.provision :shell, :path => "bootstrap.sh"
  end

Vagrantfileと同じフォルダに"bootstrap.sh"を設置します。
bashへのパスと、改行コード、BOM付きファイルに注意しましょう。
IPとデフォルトゲートウェイ、デバイスは環境に合わせて変更してください。

bootstrap.sh
#!/bin/bash
#固定ip設定
ifconfig eth1 192.168.10.20 netmask 255.255.255.0 up
#default gatewayの変更
ip route del default
ip route add default via 192.168.10.254

provisionを使用してvagrantを起動します。

vagrant up --provision

CentOS7で上記のスクリプトを使いまわす場合は、

bootstrap.sh
#!/bin/bash
#固定ip設定
yum -y install net-tools
ifconfig enpXX 192.168.10.20 netmask 255.255.255.0 up
#default gatewayの変更
ip route del default dev enpXY
ip route add default via 192.168.10.254 dev enpXX

のようにすれば良いです。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5