More than 1 year has passed since last update.

Vagrantを使ってローカルでサーバーを起動してごにょごにょしてる人は多いと思いますが、このVagrantを使ってサーバーを立てられるホスト環境を構築しています。もともとはOpenStackを構築して使おうと思ったのですが、redhatの出してるインストール「RDO」で構築するとCinderボリュームが20GBに制限されてしまうという問題を、ぐぐってもぐぐっても解決できなかったのでしょうがなくVagrantです(ぉぃ

サーバー

とりあえずサーバーは社内に転がっていた、

  1. Core 17(Quad Core)
  2. メモリ32GB
  3. 500GB SSD

のマシンを使用。

OS

ホストOSは、枯れているUbuntu Server 14.04 LTS。
もうそろそろ16.04 LTSで行けるかもしれないんですが、LTSのアップデートでは結構な修正点があるので、ネットをぐぐって設定とかする時にコピペが通用しないので、コピペ作業がメインの人は14.04にしておきましょう。

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
   config.vm.define "webserver" do |webserver|
       webserver.vm.box = "Official_Ubuntu_14.04_AMD64"
       webserver.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
       webserver.vm.hostname = "webserver"
       webserver.vm.provision "shell", path: "provision.sh", privileged: true
       webserver.vm.network "private_network", ip: "192.168.100.101"
       webserver.vm.provider "virtualbox" do |node|
           node.customize ["modifyvm", :id, "--memory", "4096"]
           node.customize ["modifyvm", :id, "--cpus", "2"]
           node.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
       end
   end

end

解説

このVagrantfileで、

$ vagrant up

設定が複数ある場合は、

$ vagrant up webserver

とやると、Ubuntu Server 14.04 AMD64が起動します。メモリは4GBで、CPUコアは2(仮想)で起動します。ホストのCPU稼働率の50%を超えない設定も入っています。
これで起動するとホストオンリーアダプターにはおなじみの、

10.0.2.15

が割り当てられます(おそらくeth0)。
そこに、192.168.100.101が割り当てられたNICも生成されます(おそらくeth1)。
以降は上記の、

config.vm.define "webserver" do |webserver|

で始まるブロックを複製してwebserverを新しいVPSの名前に置換すればそのままその名前で操作出来ます。

ネットワーク

この状態だと、ホストとゲスト、ゲストとゲストの通信は出来るのですがゲストに繋ぐためには一旦ホストを踏み台にする必要があります。

これがめんどくさいんですよね〜(ぉぃ

なので直接ゲストに入れるようにしようとしたんですが、入ろうとしてるマシンと同じネットワークに接続するしか手段が見つけられなかったんですね。ぐーぐる力が低いもんで。
とりあえずホスト側に、

192.168.100.1

のアダプターを生成したんですが(やりかたは「ubuntu network interfaces」とかでぐぐってください)、どうにも繋がらない。iptablesは-Fで大開放済み。とここで結構ハマってしまったんですが「行きと帰りで経路違うんじゃね?」と思い、ゲストに設定されているデフォルトゲートウェイ、

10.0.2.1

を削除して新たに、

192.168.100.1

をデフォルトゲートウェイに設定。これで普通に繋がるようになりました。

あとがき

そもそも、

public_network

で、接続しようとしてるマシンと同じネットワークに参加させるだけでも接続出来るようにはなるんですが、このVPSをルーターからDNATかまして外部に公開する予定だったので、ネットワークを分離してネットワーク毎にiptablesで制御したかったのでした。
目的が達成出来たので満足です(笑)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.