6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【連載01】106.VagrantBoxの初期化から複数サーバ起動までの一般的な流れ

Last updated at Posted at 2016-01-10

当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【GitHub】で公開中です。

今回はVagrantの基本的な操作の流れをかいつまんで説明します。
文章だけでは分かり辛いので、下のフローチャートをあわせて参照ください。

##前提条件
前回までの記事の内容が完了している。
Vagrantfileのパスは「d:\_BLOG\BG001\vagrant_box」とする。
boxファイルが作成済みである。
Vagrant操作フロー

##01.VagrantBoxにサーバを追加

###1-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###1-2.Vagrantにboxを追加
Vagrantにbox名とboxのベースになるboxファイルを指定する。
${boxファイル名}のboxからvmイメージが生成される。

書式:

vagrant box add ${box名} ${boxファイル名}

例:

vagrant box add adminserv01 basebox.box

必要に応じて複数のVagrantファイルを作成する。

###1-3.boxファイルの登録を確認
※Vagrantに登録されているboxの一覧を表示する。

書式:

vagrant box list

##02.boxファイルの削除
※どこのDIRでも実行可
※削除するbox名は1-3.の「box list」で確認

書式:

vagrant box remove ${削除するbox名}

##03.Vagrantfileの作成

VagrantはVagrantfile(=boxファイルのinitファイル)の設定を見て起動する。

###3-1.initの実行
一度のみ実行する。(Vagrantfileが既にある場合は作成不要)
以下のコマンドで実行後カレントフォルダに「Vagrantfile」というファイルが作成される。

書式:

vagrant init ${boxファイル名}

##04a.Vagrantfileの修正(ベースとなるboxファイルを指定して起動する場合)
複数サーバの起動用にVagrantfileを修正する。
※ここでは「baseserv」を指定して起動する場合の設定

###4a-1.Vagrantfileを開く

vi vagrantfile

###4a-2.以下の通り修正

vagrantfile
Vagrant.configure(2) do |config|

#ベース
    config.vm.box = "baseserv"


# == ▼▼▼複数のサーバの設定▼▼▼== 

    # adminserv01の設定(baseservのboxから作成)
    config.vm.define :adminserv01 do |adminserv01|

        # HOST名とVirtualBoxのホストオンリーネットワークのNICを追加
        adminserv01.vm.hostname = "adminserv01"
        adminserv01.vm.network :private_network, ip:"192.168.102.11"

        # 起動時にVirtualBoxのGUI画面を表示する/メモリは1024を指定
        adminserv01.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end

    # apserv01の設定(baseservのboxから作成)
    config.vm.define :apserv01 do |apserv01|
        apserv01.vm.hostname = "apserv01"
        apserv01.vm.network :private_network, ip:"192.168.102.12"
        apserv01.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end

    # dbserv01の設定(baseservのboxから作成)
    config.vm.define :dbserv01 do |dbserv01|
        dbserv01.vm.hostname = "dbserv01"
        dbserv01.vm.network :private_network, ip:"192.168.102.13"
        dbserv01.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end

# == ▲▲▲複数のサーバの設定▲▲▲== 
end

##04b.Vagrantfileの修正(それぞれのboxファイルを指定して起動する場合)
複数サーバの起動用にVagrantfileを修正する。

###4b-1.Vagrantfileを開く

vi vagrantfile

###4b-2.以下の通り修正

vagrantfile
Vagrant.configure(2) do |config|
 
    # ここはコメント化する
    # config.vm.box = "manageterm"
 
    # *************** 1:アプリケーションサーバ用 ***************
    config.vm.define :apserv01 do |apserv01|
        apserv01.vm.box = "apserv01"
        
        # ホスト名の指定
        apserv01.vm.hostname = "apserv01"
        
        # ネットワークのタイプをDHCPではなくstaticにする。
        # ネットワークの設定(ホストとゲスト間のプライベートネットワーク(不要ならコメント)
        apserv01.vm.network "private_network", ip: '192.168.134.196'
    
        # ネットワークの設定(ホストと同じセグメントのネットワークに入る設定)
        apserv01.vm.network "public_network", ip: '192.168.102.196'
        apserv01.vm.provider "virtualbox" do |vb|
            #VirtualBoxが起動している時にGUIで表示する
            vb.gui = true
            #メモリを1Gに設定
            vb.memory = "1024"
        end
    end
 
    # *************** 2:DBサーバ用(IPアドレスとconfigの変数名のみ変更) ***************
    config.vm.define :dbserv01 do |dbserv01|
        dbserv01.vm.box = "dbserv01"
        dbserv01.vm.hostname = "dbserv01"
        dbserv01.vm.network "private_network", ip: '192.168.134.197'
        dbserv01.vm.network "public_network", ip: '192.168.102.197'
        dbserv01.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end
 
    # *************** 3:管理サーバ用 IPアドレスとconfigの変数名のみ変更***************
    config.vm.define :adminserv01 do |adminserv01|
        adminserv01.vm.box = "adminserv01"
        adminserv01.vm.hostname = "adminserv01"
        adminserv01.vm.network "private_network", ip: '192.168.134.198'
        adminserv01.vm.network "public_network", ip: '192.168.102.198'
        adminserv01.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end

    # *************** 4:元々設定してたmanagetermも複数起動に際し変更 ***************
    config.vm.define :manageterm do |manageterm|
        manageterm.vm.box = "manageterm"
        manageterm.vm.hostname = "manageterm"
        manageterm.vm.network "private_network", ip: '192.168.134.195'
        manageterm.vm.network "public_network", ip: '192.168.102.195'
        manageterm.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.memory = "1024"
        end
    end
end

##05a.Vagrantの起動

###5a-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###5a-2.Vagrantを起動

vagrant up

##05b.Vagrantの起動(Vagrantfileに複数boxの設定がある場合)
※名前を指定して特定のbox(サーバ)を起動するパターン

###5b-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###5b-2.Vagrantを起動(box内サーバ名を指定)

書式:

vagrant up ${box内サーバ名}

例:「adminserv01」を起動

vagrant up adminserv01

##06a.Vagrantを使用して起動したboxの終了

###6a-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###6a-2.Vagrantを終了

vagrant halt

##06b.Vagrantを使用して起動したboxの終了(Vagrantfileに複数boxの設定がある場合)
※名前を指定して特定のbox(サーバ)を終了するパターン

###6b-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###6b-2.Vagrantを終了(box内サーバ名を指定)

書式:

vagrant halt ${box内サーバ名}

例:「adminserv01」を終了

vagrant halt adminserv01

##07.Vagrantで作成したVirtualBox仮想マシンの削除
※VirtualBox自体のファイルが削除される。

###7-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###02.仮想マシンを削除(box内サーバ名を指定)

書式:

vagrant destroy ${box内サーバ名}

例:「adminserv01」を削除

vagrant destroy adminserv01

##08.VagrantBoxからVirtualBox仮想マシンを破棄
※VirtualBox自体のファイルは削除されず、Vagrantのbox管理外という扱いとなる。

###8-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###8-2.仮想マシンを破棄(box内サーバ名を指定)

書式:

vagrant remove ${box内サーバ名}

例:「adminserv01」を破棄

vagrant box remove adminserv01

##09.構築したサーバをVagrantBoxファイルとして保存

###9-1.VagrantfileのDIRに移動

cd D:\_BLOG\BG001\vagrant_box

###9-2.boxファイルとしてパッケージングする

書式:

vagrant package ${BOX内サーバ名} --output ${出力パス}

例:「adminserv01」をパッケージング

vagrant package adminserv01 --output d:\_BLOG\BG001_vagrant_boxfiles\adminserv01.box

次回は「最小構成CentOS7からAnsible実行可能な操作用CentOS7を作成する(On Vagrant)」について。

連載の目次は【こちら】です。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?