オープンソース

サーバー構築のデージーネットTOP > OSS情報 > デージーネットのOSS > ILUKA

next up previous contents
Next: 4. 使い方 Up: ILUKA Previous: 2. 準備


3. インストール

ILUKAのインストールは以下の手順で行います。

  • ソフトウェアの入手と展開
  • ILUKAの環境設定
  • keepalivedの初期設定
  • keepalived設定ファイルのテンプレート設定
  • ロック用ディレクトリの設定
  • sudoの設定
  • ウェブサーバの設定

3.1 ソフトウェアの入手と展開

ILUKAは、ILUKAプロジェクトのダウンロードページから入手することができます。

http://osdn.jp/projects/iluka/

以下のファイルをダウンロードしてください。

iluka-VERSION.tar.gz

ILUKAは、postLDAPadminのフレームワークを使用して動作します。
ILUKAをインストールする前に、postLDAPadminのインストールが必要です。
postLDAPadminは、postLDAPadminプロジェクトのダウンロードページから入手することができます。

http://osdn.jp/projects/postldapadmin/

以下のファイルをダウンロードしてください。

postLDAPadmin_frame-VERSION.tar.gz
postLDAPadmin_admin-VERSION.tar.gz
postLDAPadmin_lib-VERSION.tar.gz

postLDAPadminのインストール実行例

# tar xzf postLDAPadmin_frame-VERSION.tar.gz -C /usr/local
# tar xzf postLDAPadmin_admin-VERSION.tar.gz -C /usr/local/postldapadmin/htdocs/admin
# tar xzf postLDAPadmin_lib-VERSION.tar.gz -C /usr/local/postldapadmin/lib

ILUKAのインストール実行例

# tar xzf iluka-VERSION.tar.gz -C /usr/local/postsldapadmin

上記のように展開した場合、展開後のディレクトリ構成は表[*]のようになります。


表: ILUKAのディレクトリ構成
ディレクトリ/ファイル名 解説
/usr/local/postldapadmin/htdocs/admin/iluka/ ILUKAを格納するディレクトリ
/usr/local/postldapadmin/lib/dglibiluka ILUKA専用ライブラリ
/usr/local/postldapadmin/tmpl/ テンプレート(ILUKA用のテンプレートが追加されます)
/usr/local/postldapadmin/etc/msg_file.ILUKAsample ILUKA用メッセージファイル
/usr/local/postldapadmin/etc/tab.conf.ILUKAsample ILUKA用タブファイル
/usr/local/postldapadmin/etc/web.conf.ILUKAsample ILUKA用設定ファイル

3.2 ILUKAの環境設定

ILUKAを使用するために設定ファイルを作成します。

3.2.1 web.confの作成

web.confの作成例

# cd /usr/local/postldapadmin/etc
# mkdir iluka
# chown apache:apache iluka
# cd iluka
# cat ../web.conf.sample ../web.conf.ILUKAsample > web.conf
# chown apache:apache web.conf

web.confの設定例

[global]
TitleName=ILUKA
ReferrerUrl=http://
AdminName=admin
AdminPasswd=21232f297a57a5a743894a0e4a801fc3
LogFile=syslog
SyslogFacility=local1
SessionTimeout=900
MaxPasswordLength=8
MinPasswordLength=3
PasswordEncrypt=CRYPT

[iluka]
KeepalivedReloadScript=sudo /usr/local/postldapadmin/bin/reload_keepalived
LocalPartRFCCheck=0
KeepalivedBaseDir=/etc/keepalived/
LockFile=/var/iluka/iluka.lock

※ [postldapadmin]セクションは不要ですので削除してください。

3.2.2 tab.confの作成

tab.confの作成例

# cd /usr/local/postldapadmin/etc/iluka
# cat ../tab.conf.sample ../tab.conf.ILUKAsample > tab.conf

tab.confの設定例

iluka/global:グローバル設定
iluka/lb:ロードバランサ設定
postldapadmin/adminpass:管理者アカウント管理

※ postldapadmin/user... と postldapadmin/ml... は不要ですので削除してください。

3.2.3 msg_fileの作成

msg_fileの作成例

# cd /usr/local/postldapadmin/etc/iluka
# cat ../msg_file.sample ../msg_file.ILUKAsample > msg_file

3.2.4 admin.keyの作成

admin.keyの作成例

# cd /usr/local/postldapadmin/etc/iluka
# cat /dev/urandom | base64 | head -n1 | cut -c1-8 > admin.key

3.3 keepalived.confの初期設定

ILUKAはkeepalivedの設定ファイルをapacheユーザ権限で更新します。
keepalived設定ファイルを配置するディレクトリにapacheユーザでの書き込み権を与える必要があります。

keepalived設定ファイルの初期設定例
# mv /etc/keepalived{,.ORG} ← 既存のkeepalived設定ディレクトリを退避

# mkdir /etc/keepalived
# cat > /etc/keepalived/keepalived.conf
global_defs {
    notification_email {
        iluka@localhost.localdomain
    }
    notification_email_from iluka@localhost.localdomain
    smtp_server 127.0.0.1
    smtp_connect_timeout 60
}
<CTRL+D>
# touch /etc/keepalived/virtual_server.conf
# mkdir /etc/keepalived/virtual_server
# chown -R apache:apache /etc/keepalived

※<CTRL+D>はCTRLキー + Dキーの入力を示しています。

3.4 keepalived設定ファイルのテンプレート設定

ILUKAでは、keepalivedが読み込む設定ファイル keepalived.conf をテンプレートファイルから生成します。
ILUKAは、テンプレートを読み込んで特定の文字列(タグ)を置換してkeepalivedの設定ファイルを生成します。そのため、テンプレートにタグ情報を正しく設定すれば柔軟に設定内容をカスタマイズすることができます。

keepalived設定ファイルのテンプレートは、以下のディレクトリに配置されています。

[展開ディレクトリ]/tmpl/iluka/


表: keepalived設定ファイルテンプレート一覧
テンプレートファイル名 展開される設定ファイル名
keepalived.conf.tmpl /etc/keepalived/keepalived.conf
virtual_server.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート.conf
real_server.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf
http_get.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf の一部
ssl_get.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf の一部
tcp_check.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf の一部
smtp_check.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf の一部
misc_check.conf.tmpl /etc/keepalived/virtual_server/IPアドレス_ポート/IPアドレス_ポート.conf の一部

3.4.1 keepalived設定ファイルテンプレート (keepalived.conf.tmpl)


表: keepalived設定ファイルテンプレートのタグ
タグ名 置き換えられる値
«NOTITICATION_EMAIL» notification_email {
通知先メールアドレス1
通知先メールアドレス2
:
:
}
«NOTITICATION_EMAIL_FROM» notification_email_from 送信元メールアドレス
«SMTP_SERVER» smtp_server SMTPサーバ
«SMTP_CONNECT_TIMEOUT» smtp_connect_timeout SMTP接続タイムアウト

keepalived.conf.tmpl の設定例

global_defs {
    <<NOTITICATION_EMAIL>>
    <<NOTITICATION_EMAIL_FROM>>
    <<SMTP_SERVER>>
    <<SMTP_CONNECT_TIMEOUT>>
    router_id localhost.localdomain
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.1.220/24 dev eth0
    }
}

include ./virtual_server.conf

※ keepalived.confは上記のテンプレートから生成されます。タグ以外の基本的な設定はこのテンプレートに反映してください。特にrouter_id,interface,virtual_ipaddress等は動作環境に合わせて変更が必要になります。

3.4.2 バーチャルサーバ設定ファイルテンプレート (virtual_server.conf.tmpl)


表: バーチャルサーバ設定ファイルテンプレートのタグ
タグ名 置き換えられる値
«IP_ADDRESS» バーチャルサーバのIPアドレス
«PORT» バーチャルサーバのポート
«DELAY_LOOP» delay_loop 監視間隔
«LB_ALGO» lb_algo 分散アルゴリズム
«LB_KIND» lb_kind 転送方法
«PERSISTENCE TIMEOUT» persistence_timeout タイムアウト
«VIRTUALHOST» virtualhost バーチャルホスト
«SORRY_SERVER» virtualhost SorryサーバIPアドレス Sorryサーバポート番号

virtual_server.conf.tmpl の設定例

virtual_server <<IP_ADDRESS>> <<PORT>> {
    <<DELAY_LOOP>>
    <<LB_ALGO>>
    <<LB_KIND>>
    protocol TCP
    <<PERSISTENCE TIMEOUT>>
    <<VIRTUALHOST>>
    <<SORRY_SERVER>>

    include <<IP_ADDRESS>>_<<PORT>>/real_server.conf
}

3.4.3 リアルサーバ設定ファイルテンプレート (real_server.conf.tmpl 他)

リアルサーバ設定テンプレートは、real_server セクションを設定するテンプレート (real_server.conf.tmpl)と、real_serverセクション内に設定するヘルスチェック毎のテンプレート(http_get.tmpl,ssl_get.tmpl,tcp_check.tmpl,smtp_check.tmpl,misc_check.tmpl)で構成されます。


表: リアルサーバ設定ファイルテンプレートのタグ
テンプレートファイル名 タグ名 置き換えられる値
real_server.conf.tmpl «IP_ADDRESS» リアルサーバのIPアドレス
  «PORT» リアルサーバのポート番号
  «WEIGHT» weight 重み付け
  «HEALTH_CHECK» ヘルスチェック毎テンプレートの展開内容
http_get.tmpl «PATH» path パス
  «DIGEST» digest ダイジェスト
  «STATUS_CODE» status_code ステータス
  «NB_GET_RETRY» nb_get_retry リトライ数
  «DELAY_BEFORE_RETRY» delay_before_retry リトライ間隔
  «CONNECT_IP» connect_ip 接続先IPアドレス
  «CONNECT_PORT» connect_port 接続先ポート番号
  «BINDTO» bindto ダイジェスト
  «BIND_PORT» bind_port 接続元ポート番号
  «CONNECT_TIMEOUT» connect_timeout 接続タイムアウト
ssl_get.tmpl «PATH» path パス
  «DIGEST» digest ダイジェスト
  «STATUS_CODE» status_code ステータス
  «NB_GET_RETRY» nb_get_retry リトライ数
  «DELAY_BEFORE_RETRY» delay_before_retry リトライ間隔
  «CONNECT_IP» connect_ip 接続先IPアドレス
  «CONNECT_PORT» connect_port 接続先ポート番号
  «BINDTO» bindto ダイジェスト
  «BIND_PORT» bind_port 接続元ポート番号
  «CONNECT_TIMEOUT» connect_timeout 接続タイムアウト
tcp_check.tmpl «CONNECT_IP» connect_ip 接続先IPアドレス
  «CONNECT_PORT» connect_port 接続先ポート番号
  «BINDTO» bindto ダイジェスト
  «BIND_PORT» bind_port 接続元ポート番号
  «CONNECT_TIMEOUT» connect_timeout 接続タイムアウト
smtp_check.tmpl «CONNECT_IP» connect_ip 接続先IPアドレス
  «CONNECT_PORT» connect_port 接続先ポート番号
  «BINDTO» bindto ダイジェスト
  «BIND_PORT» bind_port 接続元ポート番号
  «RETRY» retry リトライ回数
  «DELAY_BEFORE_RETRY» delay_before_retry リトライ間隔
  «HELO_NAME» helo_name HELOリクエスト
misc_check.tmpl «MISC_PATH» misc_path スクリプトパス
  «MISC_TIMEOUT» misc_timeout タイムアウト

real_server.conf.tmpl の設定例

real_server <<IP_ADDRESS>> <<PORT>> {
    <<WEIGHT>>
<<HEALTH_CHECK>>
}

http_get.tmpl の設定例

    HTTP_GET {
        url {
            <<PATH>>
            <<DIGEST>>
            <<STATUS_CODE>>
        }
        <<NB_GET_RETRY>>
        <<DELAY_BEFORE_RETRY>>
        <<CONNECT_IP>>
        <<CONNECT_PORT>>
        <<BINDTO>>
        <<BIND_PORT>>
        <<CONNECT_TIMEOUT>>
    }

ssl_get.tmpl の設定例

    SSL_GET {
        url {
            <<PATH>>
            <<DIGEST>>
            <<STATUS_CODE>>
        }
        <<NB_GET_RETRY>>
        <<DELAY_BEFORE_RETRY>>
        <<CONNECT_IP>>
        <<CONNECT_PORT>>
        <<BINDTO>>
        <<BIND_PORT>>
        <<CONNECT_TIMEOUT>>
    }

tcp_check.tmpl の設定例

    TCP_CHECK {
        <<CONNECT_IP>>
        <<CONNECT_PORT>>
        <<BINDTO>>
        <<BIND_PORT>>
        <<CONNECT_TIMEOUT>>
    }

smtp_check.tmpl の設定例

    SMTP_CHECK {
        host {
            <<CONNECT_IP>>
            <<CONNECT_PORT>>
            <<BINDTO>>
            <<BIND_PORT>>
            <<CONNECT_TIMEOUT>>
        }
        <<RETRY>>
        <<DELAY_BEFORE_RETRY>>
        <<HELO_NAME>>
    }

real_server.conf.tmpl の設定例

    MISC_CHECK {
        <<MISC_PATH>>
        <<MISC_TIMEOUT>>
    }

3.5 ロック用ディレクトリの設定

ILUKAがロックファイルを作成するためのディレクトリを作成します。

visudoの実行例

# mkdir /var/iluka
# chown apache:apache /var/iluka
# chmod 750 /var/iluka

3.6 sudoの設定

ILUKAは、apacheユーザ権限でkeepalivedをリロードできるよう許可する必要があります。
そのためにsudoの設定を追加します。
visudoコマンドを実行し、以下のように設定を追加してください。

visudoの実行例

# visudo

sudoの設定例

# Defaults requiretty 

apache ALL=(ALL) NOPASSWD: /usr/local/postldapadmin/bin/reload_keepalived

3.7 ウェブサーバの設定

ILUKAのウェブインタフェースを使用するための設定を行います。

Apache設定ファイル /etc/httpd/conf.d/iluka.conf の設定例
Alias /iluka/ /usr/local/postldapadmin/htdocs/

SetEnv LOGNAME iluka
SetEnv DOMAIN iluka

<Directory "/usr/local/postldapadmin/htdocs">
    DirectoryIndex index.php
    require all granted
    PHP_value include_path ".:/usr/local/postldapadmin/"
</Directory>

next up previous contents
Next: 4. 使い方 Up: ILUKA Previous: 2. 準備

2017年7月31日