Vagrantの勉強でサーバを構築したのでメモ
サーバの構成は
- ロードバランサー(Nginx)1台
- webサーバ(Apache)3台
- DBサーバ(MySQL)2台
- キャッシュサーバ(Memcached)1台
をそれぞれ独立したサーバとして構築する。
VirtualBoxとVagrantのインストール
VirtualBoxとVagrantからダウンロードしてインストール
VagrantBOXの追加
Vagrantbox.esから使用するBOXを取得してくる(今回はCentOS7.0のものを使用)
vagrant box add centOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
Vagrantfileの設定
環境を構築する用のフォルダを作成し、取得してきたBOXを初期化する
vagrant init centOS7
その際に生成されたVagrantファイルを以下のように変更する
■Vagrantfile(local)
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)
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の方で設定
環境の立ち上げ
■起動
vagrant up
■停止
vagrant halt
■Vagrantfileを読み込みなおして再起動
vagrant reload
SSHクライアントでの接続
user、pass共にvagrantで接続可能
※外部からのアクセスを可能にしている場合はpublic_networkを設定しているサーバのみ接続可能
それぞれ各サーバで必要なものをインストールしていく
参考
Windows版Vagrantを利用して仮想マシーンを操作してみよう
Vagrantで複数台同時起動するマルチマシン設定
よく使うVagrantfileの設定のまとめ