Vagrantの勉強でサーバを構築したのでメモ
サーバの構成は
- ロードバランサー(Nginx)1台
- webサーバ(Apache)3台
- DBサーバ(MySQL)2台
- キャッシュサーバ(Memcached)1台
をそれぞれ独立したサーバとして構築する。
VirtualBoxとVagrantのインストール
VirtualBoxとVagrantからダウンロードしてインストール
VagrantBOXの追加
Vagrantbox.esから使用するBOXを取得してくる(今回はCentOS7.0のものを使用)
1 |
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の設定のまとめ