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の設定のまとめ