Vagrantの勉強でサーバを構築したのでメモ

サーバの構成は

  • ロードバランサー(Nginx)1台
  • webサーバ(Apache)3台
  • DBサーバ(MySQL)2台
  • キャッシュサーバ(Memcached)1台

をそれぞれ独立したサーバとして構築する。

VirtualBoxとVagrantのインストール

VirtualBoxVagrantからダウンロードしてインストール

VagrantBOXの追加

Vagrantbox.esから使用するBOXを取得してくる(今回はCentOS7.0のものを使用)

Vagrantfileの設定

環境を構築する用のフォルダを作成し、取得してきたBOXを初期化する

1
vagrant init centOS7

その際に生成されたVagrantファイルを以下のように変更する
■Vagrantfile(local)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Vagrant.configure("2") do |config|
  config.vm.box = "CentOS7"
   
  # load brancer
  config.vm.define "nginx" do |server|
     server.vm.hostname = "nginx.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.10"
  end
   
  # web1
  config.vm.define "web01" do |server|
     server.vm.hostname = "web01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.11"
  end
 
  # web2
  config.vm.define "web02" do |server|
     server.vm.hostname = "web02.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.12"
  end
 
  # web3
  config.vm.define "web03" do |server|
     server.vm.hostname = "web03.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.13"
  end
   
  # db01
  config.vm.define "db01" do |server|
     server.vm.hostname = "db01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.20"
  end
   
  # db02
  config.vm.define "db02" do |server|
     server.vm.hostname = "db02.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.21"
  end
   
  # memcached01
  config.vm.define "memcached01" do |server|
     server.vm.hostname = "memcached01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.30"
  end
end

■Vagrantfile(public)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Vagrant.configure("2") do |config|
  config.vm.box = "CentOS7"
   
  # load brancer
  config.vm.define "nginx" do |server|
     server.vm.hostname = "nginx.CentOS7"
     server.vm.network "public_network", ip: "192.168.11.20"
     server.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet:true
  end
   
  # web1
  config.vm.define "web01" do |server|
     server.vm.hostname = "web01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.11", virtualbox__intnet:true
  end
 
  # web2
  config.vm.define "web02" do |server|
     server.vm.hostname = "web02.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.12", virtualbox__intnet:true
  end
 
  # web3
  config.vm.define "web03" do |server|
     server.vm.hostname = "web03.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.13", virtualbox__intnet:true
  end
   
  # db01
  config.vm.define "db01" do |server|
     server.vm.hostname = "db01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.20", virtualbox__intnet:true
  end
   
  # db02
  config.vm.define "db02" do |server|
     server.vm.hostname = "db02.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.21", virtualbox__intnet:true
  end
   
  # memcached01
  config.vm.define "memcached01" do |server|
     server.vm.hostname = "memcached01.CentOS7"
     server.vm.network "private_network", ip: "192.168.33.30", virtualbox__intnet:true
  end
end

※ホストOS(Vagrantを立ち上げたPC)のみでアクセスする場合はlocalの方、外部からのアクセスを許容する場合はpublicの方で設定

環境の立ち上げ

■起動

1
vagrant up

■停止

1
vagrant halt

■Vagrantfileを読み込みなおして再起動

1
vagrant reload

SSHクライアントでの接続

user、pass共にvagrantで接続可能
※外部からのアクセスを可能にしている場合はpublic_networkを設定しているサーバのみ接続可能

それぞれ各サーバで必要なものをインストールしていく

参考
Windows版Vagrantを利用して仮想マシーンを操作してみよう
Vagrantで複数台同時起動するマルチマシン設定
よく使うVagrantfileの設定のまとめ