2015年5月14日木曜日

【トピックス】Chef / Vagrant でローカル開発環境に Lifekeeper を手早く構築する (2) – Vagrant編



こんにちは。小川です。
前回はクライアント環境で必要なソフトウェアをインストールしました。

今回は仮想マシンの設定から作成まで自動的に行う Vagrant の設定の紹介です。
LifeKeeper を導入するうえで意識すべきポイントも見ていきましょう。

Vagrant設定
1. 任意のディレクトリで Vagrant の初期化をする
# vagrant init chef/centos-6.6 https://atlas.hashicorp.com/search

実行したディレクトリに Vagrant の設定ファイル Vagrantfile ができます。

 [補足]
 * 1引数: init
 Vagrantを初期化します。カレントディレクトリに Vagrant の設定
を定義するVagrantfile が作成されます。

 * 2引数: chef/centos-6.6
 Vagrant が使用する box を指定します。
 指定した box 名を後述Vagrantfile に「config.vm.box = "box"」を自動
 的に追記してくれます。他の box を使用する場合は別の box 名に変更します。

 * 3引数: https://atlas.hashicorp.com/search
 Vagrant で使用する box を参照する URL を指定します。
 指定すると後述の Vagrantfile に自動的に「config.vm.box_url = "サイトURL"
 を追記してくれます。他のサイトを参照させる場合は別の URL に変更します。
 # 今回指定した URL Vagrant がデフォルトで box を参照する URL の為、
 # 特に入力する必要は無いですが、どのサイトを参照するか分かるように明示
 # 的に入れました。

2. Vagrant の設定をする

Rubyの構文で書くことができます。
下記は今回使用するVagrantfileです。

------------------------------------------------
Vagrant.configure(2) do |config|
  config.vm.box = "chef/centos-6.6"
  config.ssh.forward_x11 = "true"

  config.vm.define "lk-node01" do |node|
    node.vm.hostname = "lk01"
    node.vm.network "private_network", ip: "192.168.33.11"
  end

  config.vm.define "lk-node02" do |node|
    node.vm.hostname = "lk02"
    node.vm.network "private_network", ip: "192.168.33.12"
  end

  config.vm.provider "virtualbox" do |v|
    v.memory = "1024"
    v.gui = "true"
  end
end
------------------------------------------------

設定内容について以下に説明します。
※本設定でオブジェクト名にnodevを使っていますが名称は変更できます。

* Vagrant.configure
 Vagrant で使用する API バージョンを定義します。
 最新バージョンの 2 系を使用します。

* config.vm.box
 使用する box 名を定義します。今回 atlas.hashicorp.com で提供されてい
 る CentOS6.6 box を使います。

* config.ssh.forward_x11
 LifeKeeper では、GUI が必須です。
 ssh GUI を使いたい場合は、X11 forwarding を有効にしておくと良いでしょう。

*  config.vm.box_url
 使用する box を参照するサイト URl を指定します。
 デフォルトで https://atlas.hashicorp.com/boxes/search を検索しますが、
 今回どこを参照するのか分かり易いように明示的に記述しました。
 box を他のサイトから参照する場合は URL を変更します。

* config.vm.define
 Vagrant のマルチマシン機能を使う為の定義です。仮想マシンを複数起動す
 る場合は、ここで定義します。
 今回稼働系/待機系1台ずつのクラスタ構成の為、2ノード分定義します。ノー
 ド数を増やす場合は定義を増やします。

* node.vm.hostname
 ゲストOSのホスト名を定義してます。
 LifeKeeper ではインストール時にホスト名を保持するので、後から変更する
 のは手間です。LifeKeeper インストール前に正しい名前にしておきましょう。

* node.vm.network
 ゲストOSが使うネットワークを定義してます。
 private_network を使うと、ホストOSとゲストOS間、ゲストOSとゲストOS
 の通信ができます。LifeKeeper ではゲストOS間での通信があるので、設定
 しておきましょう。

* config.vm.provider
 Vagrant で使う仮想化基盤となるソフトウェアを定義します。今回は Virtual
 Box を使用するので、"virtualbox" を指定します。

 使えるプロバイダは以下のURLに書いてありますので、興味のある方は見て
 みてください。

 VAGRANT DOCS -> PROVIDERS
 http://docs.vagrantup.com/v2/providers/index.html

* v.memory
 仮想マシンのメモリサイズを定義します。
 LifeKeeper がサポートするシステムの最小メモリ要件は 512MB です。
 ここでメモリサイズを指定しないとデフォルト 480MB が割り当てられ動き
 ません。要件を満たすように指定しておきましょう。

 SIOS Protection Suite for Linux リリースノート バージョン 8.4.0
 http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/ReleaseNotes/index.htm

 また、CentOS6.6 の場合、メモリが 632MB未満だとテキストモード(CUI)
 なりますので要注意です。LifeKeeper の操作は GUI が必須です。
 今回は1GBを指定しています。

 6. Known Issues
 http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.6#head-aa1d1d1c4e306596f8ae129e016ef1f95fc7c36e

* v.gui
 デフォルトでは仮想マシンはヘッドレスモードで起動します。
 GUI を使用する場合は有効にします。LifeKeeper GUI が必須ですので、
 有効にしておくと良いでしょう。 http://docs.vagrantup.com/v2/virtualbox/configuration.html

Vagrant起動
設定が終わったら、以下のコマンドを実行し仮想マシンをVagrantから起動します。
# vagrant up

■ゲストOSにログイン
GUI を有効にした場合は仮想マシンのウインドウが自動的に起動します。
コンソールや ssh node.vm.network で設定した IP アドレスに接続してロ
グインしてみましょう。ユーザーIDとパスワードはデフォルト vagrant です。
ログインしたら、ping コマンドで相互に通信できるか確認してみましょう。

以上です。

0 件のコメント:

コメントを投稿