はじめまして。今年から LifeKeeper の SI を担当してます小川です。 よろしくお願いします。
昨年、ある案件の検証環境構築で Vagrant、Chef を使う機会があり大変便利だったので LifeKeeper の構築でも活用できないかと思い blog に書いてみました。
Vagrant × Chef の組み合わせは書籍や多くの方が blog を執筆されているので既にご存知の方は多いのではないかと思いますが、同じ SI をされている方や、現在 LifeKeeper を評価されている方に何かヒントや手助けになる情報をお届けできたらと思います。
なお、今回は大規模なクラスタを構築するというわけではなく、手元の開発環境でちょっとした LifeKeeper の動作確認や検証をしたい時に、さくっと環境を構築することを目的としています。
今回は、準備編です。
本記事では以下の環境を使用します。
■環境
[クライアント]
- Windows 8 64bit (ホストOS)
- Virtual Box 4.3.26
- Ruby 2.1.5
- Chef 12.0.3
- Chef Development Kit(chef-dk) 0.4.0
[サーバー]
- CentOS 6.6 64bit (ゲストOS)
- LifeKeeper 8.4.0
- httpd 2.2.15 (保護対象リソース)
まずはじめに Chef と Vagrant とは何か?を簡単に紹介します。
- Chef
https://www.chef.io/chef/
Chef の特徴は、サーバーが本来あるべき姿、状態を保つことができるように、スクリプト (Ruby) を使って、設定・構築を自動化できる事です。それにより誰がサーバーを構築しても設定に一貫性を保つことができるメリットがあります。
"あるべき姿" とは、例えば LifeKeeper であれば導入の前提条件として、SELinux をサポートしていないので無効にする、保護対象サービスは LifeKeeper が起動するため、該当サービスの自動起動設定はオフにする必要がある、等のOS設定上の考慮事項があります。
Chef ではこのような設定情報を定義したものを "レシピ" 呼んでいます。また、"レシピ" をサーバに適用する為に使用するノード情報や設定ファイルのテンプレート等をまとめて "クックブック" と呼びます。更に "クックブック"まとめたものを"リポジトリ" といいます。
これらは Chef の用語として出てくるので覚えておくと良いでしょう。
Chef の構成は 1. Chef Server / Client 形式、 2.スタンドアロンの 2 種類があります。
管理対象ノード数が多い場合は 1. で、小規模の場合は 2. の構成を選択します。今回は LifeKeeper では一般的な稼働系/待機系の 2 台構成とし、小規模の為、2.のスタンドアロン形式をとります。
スタンドアロン形式では、Chef Solo を使いますが、将来的に廃止される事が決まっています。 そのため、今後は代替として Chef-Zero, Knife-Zero を使う等検討する必要がありそうです。
今回は、上記を考慮してローカル環境に LifeKeeper のクラスタを構築してみます。
- Vagrant
https://www.vagrantup.com/
Vagrantは VirutalBox 等の仮想マシンの設定や作成を自動化できるツールです。 Vagrantfile に仮想マシンの設定を定義し、コマンドラインでスピーディに OS を立ち上げることができます。
仮想マシンの作成には box と呼ばれるイメージを使うことができることが特徴です。予め定義しておくことで、OS インストールの度に ISO 等のイメージを毎回手動で読み込ませる必要が無く、手間がかからないメリットがあります。
■準備
それでは、クライアント端末で必要なパッケージをインストールしていきます。 コマンドラインでの操作は Windows の場合、コマンドプロンプトや Cygwin 等ご利用環境に合わせて実施ください。 なお、本記事ではインストーラでインストールするソフトウェアに関しては、全てデフォルトを選択しています。
- Ruby
- DevKit
- chef-dk
- Knife-Zero
- Virtual Box
- Vagrant
下記サイトの「RubyInstallers」より Ruby 2.1.5 インストーラをダウンロードして実行
使用インストーラ: rubyinstaller-2.1.5-x64.exe http://rubyinstaller.org/downloads
2.1. 下記サイトの「DEVELOPMENT KIT」より DevKit をダウンロードし任意の場所で展開
使用パッケージ: DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
http://rubyinstaller.org/downloads
2.2. 展開したディレクトリに移動し、DevKit インストール
# ruby dk.rb init
# ruby dk.rb install
下記サイトの「Windows -> ダウンロード」より chef-dk をダウンロードし実行
使用インストーラ:chefdk-0.4.0-1.msi
https://downloads.chef.io/chef-dk/
Chefコマンドで Knife-Zero インストール
chef gem install knife-zero
knife コマンドでヘルプを見てみると、新たにサブコマンドに zero が追加されていることを確認できます。
# knife -h
------------------------------------
・
・
** ZERO COMMANDS **
knife zero bootstrap FQDN (options)
knife zero chef_client QUERY (options
knife zero diagnose # show configuration from file
------------------------------------
下記サイトの「VirtualBox 4.3.26 for Windows hosts」よりダウンロードし実行
使用インストーラ: VirtualBox-4.3.26-98988-Win.exe
https://www.virtualbox.org/wiki/Downloads
以下のサイトの「Windows」より Vagrant をダウンロードし実行
使用インストーラ: vagrant_1.7.2.msi
https://www.vagrantup.com/downloads.html
Vagrant インストール後、OS が再起動されます。
以上です。
本記事は[「SIOS LifeKeeperブログ」](http://sios-lk.blogspot.jp/)の転載です。著作権は提供各社に帰属します。