2. 準備 一覧へ 4. 使い方
- 3. インストール
- 3.1. ソフトウェアの入手と展開
- 3.2. ILUKAの環境設定
- 3.3. keepalived.confの初期設定
- 3.4. keepalived設定ファイルのテンプレート設定
- 3.4.1. keepalived設定ファイルテンプレート (keepalived.conf.tmpl)
- 3.4.2. バーチャルサーバ設定ファイルテンプレート (virtual_server.conf.tmpl)
- 3.4.3. リアルサーバ設定ファイルテンプレート (real_server.conf.tmpl)
- 3.4.3.1. real_serverセクションテンプレート(real_server.conf.tmpl)
- 3.4.3.2. ヘルスチェックテンプレート(http_get.tmpl)のタグ
- 3.4.3.3. ヘルスチェックテンプレート(ssl_get.tmpl)のタグ
- 3.4.3.4. ヘルスチェックテンプレート(tcp_check.tmpl)のタグ
- 3.4.3.5. ヘルスチェックテンプレート(smtp_check.tmpl)のタグ
- 3.4.3.6. ヘルスチェックテンプレート(misc_check.tmpl)のタグ
- 3.4.3.7. ヘルスチェックテンプレート(udp_check.tmpl)のタグ
- 3.4.3.8. ヘルスチェックテンプレート(dns_check.tmpl)のタグ
- 3.5. ロック用ディレクトリの設定
- 3.6. sudoの設定
- 3.7. ウェブサーバの設定
3. インストール
ILUKAのインストールは 設定概要 で示したように以下の手順で行います。
- ソフトウェアの入手と展開
- ILUKAの環境設定
- keepalivedの初期設定
- keepalived設定ファイルのテンプレート設定
- ロック用ディレクトリの設定
- sudoの設定
- ウェブサーバの設定
3.1. ソフトウェアの入手と展開
https://github.com/designet-inc-oss/postLDAPadmin
上記URLから以下のファイルをダウンロードしてください。
- postLDAPadmin_frame-VERSION.tar.gz
- postLDAPadmin_admin-VERSION.tar.gz
- postLDAPadmin_lib-VERSION.tar.gz
ILUKAは、ILUKAプロジェクトのダウンロードページから入手することができます。
https://github.com/designet-inc-oss/ILUKA
上記URLから以下のファイルをダウンロードしてください。
- iluka-VERSION.tar.gz
ILUKAをインストールする前に、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
# tar xzf iluka-VERSION.tar.gz -C /usr/local/postldapadmin
上記のように展開した場合、展開後のディレクトリ構成は以下の表のようになります。
ディレクトリ/ファイル名 | 解説 |
---|---|
/usr/local/postldapadmin/htdocs/admin/iluka/ | ILUKAを格納するディレクトリ |
/usr/local/postldapadmin/lib/dglibiluka | ILUKA専用ライブラリ |
/usr/local/postldapadmin/tmpl/ | テンプレート(ILUKA用のテンプレートが追加されます) |
/usr/local/postldapadmin/tmpl/iluka/ | keepalived設定テンプレート |
/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を使用するために下記の4つの設定ファイルを作成します。
3.2.1. 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
[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
Note
web.confの中にある[postldapadmin]セクションは不要ですので削除してください。
3.2.2. tab.confの作成
# cd /usr/local/postldapadmin/etc/iluka
# cat ../tab.conf.sample ../tab.conf.ILUKAsample > tab.conf
iluka/global:グローバル設定
iluka/lb:ロードバランサ設定
postldapadmin/adminpass:管理者アカウント管理
Note
tab.confの中にあるpostldapadmin/user... と postldapadmin/ml... は不要ですので削除してください。
3.2.3. msg_fileの作成
# cd /usr/local/postldapadmin/etc/iluka
# cat ../msg_file.sample ../msg_file.ILUKAsample > msg_file
3.2.4. 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ユーザでの書き込み権を与える必要があります。
# 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
Note
<CTRL+D>は CTRLキー + Dキー の入力を示しています。
3.4. keepalived設定ファイルのテンプレート設定
keepalived設定ファイルのテンプレートは、以下のディレクトリに配置されています。
[展開ディレクトリ]/tmpl/iluka/
keepalived設定ファイルテンプレートは 設定ファイル名.default をいう名前で展開されます。 設定ファイル名.default を参考にして、各keepalived設定ファイルを作成してください。
テンプレートファイル名 | 展開される設定ファイル |
---|---|
keepalived.conf.tmpl | keepalived.conf |
virtual_server.conf.tmpl | virtual_server/(vip)_(vport)_(vproto).conf |
real_server.conf.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf |
http_get.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
ssl_get.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
tcp_check.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
smtp_check.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
misc_check.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
udp_check.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
dns_check.tmpl | virtual_server/(vip)_(vport)_(vproto)/(rip)_(rport).conf の一部 |
- (vip)→ バーチャルサーバのIPアドレス
- (vport)→ バーチャルサーバのポート番号
- (vptoto)→ バーチャルサーバのプロトコル(0:TCP, 1:UDP)
- (rip)→ リアルサーバのIPアドレス
- (rport)→リアルサーバのポート番号
3.4.1. keepalived設定ファイルテンプレート (keepalived.conf.tmpl)
タグ名 | 置き換えられる値 |
---|---|
<<NOTITICATION_EMAIL>> | notification_email {
通知先メールアドレス1
通知先メールアドレス2
:
:
}
|
<<NOTITICATION_EMAIL_FROM>> | notification_email_from 送信元メールアドレス |
<<SMTP_SERVER>> | smtp_server SMTPサーバ |
<<SMTP_CONNECT_TIMEOUT>> | smtp_connect_timeout SMTP接続タイムアウト |
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
Note
keepalived.confは上記のテンプレートから生成されます。タグ以外の基本的な設定はこのテンプレートに反映してください。 特にrouter_id,interface,virtual_ipaddress等は動作環境に合わせて変更が必要になります。
3.4.2. バーチャルサーバ設定ファイルテンプレート (virtual_server.conf.tmpl)
タグ名 | 置き換えられる値 |
---|---|
<<IP_ADDRESS>> | バーチャルサーバのIPアドレス |
<<PORT>> | バーチャルサーバのポート |
<<PROTOCOL>> | protocol プロトコル(TCP/UDP) |
<<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 <<IP_ADDRESS>> <<PORT>> {
<<PROTOCOL>>
<<DELAY_LOOP>>
<<LB_ALGO>>
<<LB_KIND>>
<<PERSISTENCE TIMEOUT>>
<<VIRTUALHOST>>
<<SORRY_SERVER>>
include <<IP_ADDRESS>>_<<PORT>>/real_server.conf
}
3.4.3. リアルサーバ設定ファイルテンプレート (real_server.conf.tmpl)
3.4.3.1. real_serverセクションテンプレート(real_server.conf.tmpl)
タグ名 | 置き換えられる値 |
---|---|
<<IP_ADDRESS>> | リアルサーバのIPアドレス |
<<PORT>> | リアルサーバのポート番号 |
<<WEIGHT>> | weight 重み付け |
<<HEALTH_CHECK>> | ヘルスチェック毎テンプレートの展開内容 |
real_server <<IP_ADDRESS>> <<PORT>> {
<<WEIGHT>>
<<HEALTH_CHECK>>
}
3.4.3.2. ヘルスチェックテンプレート(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 接続タイムアウト |
HTTP_GET {
url {
<<PATH>>
<<DIGEST>>
<<STATUS_CODE>>
}
<<NB_GET_RETRY>>
<<DELAY_BEFORE_RETRY>>
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
}
3.4.3.3. ヘルスチェックテンプレート(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 接続タイムアウト |
SSL_GET {
url {
<<PATH>>
<<DIGEST>>
<<STATUS_CODE>>
}
<<NB_GET_RETRY>>
<<DELAY_BEFORE_RETRY>>
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
}
3.4.3.4. ヘルスチェックテンプレート(tcp_check.tmpl)のタグ
タグ名 | 置き換えられる値 |
---|---|
<<CONNECT_IP>> | connect_ip 接続先IPアドレス |
<<CONNECT_PORT>> | connect_port 接続先ポート番号 |
<<BINDTO>> | bindto ダイジェスト |
<<BIND_PORT>> | bind_port 接続元ポート番号 |
<<CONNECT_TIMEOUT>> | connect_timeout 接続タイムアウト |
TCP_CHECK {
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
}
3.4.3.5. ヘルスチェックテンプレート(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リクエスト |
SMTP_CHECK {
host {
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
}
<<RETRY>>
<<DELAY_BEFORE_RETRY>>
<<HELO_NAME>>
}
3.4.3.6. ヘルスチェックテンプレート(misc_check.tmpl)のタグ
タグ名 | 置き換えられる値 |
---|---|
<<MISC_PATH>> | misc_path スクリプトパス |
<<MISC_TIMEOUT>> | misc_timeout タイムアウト |
MISC_CHECK {
<<MISC_PATH>>
<<MISC_TIMEOUT>>
}
3.4.3.7. ヘルスチェックテンプレート(udp_check.tmpl)のタグ
タグ名 | 置き換えられる値 |
---|---|
<<CONNECT_IP>> | connect_ip 接続先IPアドレス |
<<CONNECT_PORT>> | connect_port 接続先ポート番号 |
<<BINDTO>> | bindto ダイジェスト |
<<BIND_PORT>> | bind_port 接続元ポート番号 |
<<CONNECT_TIMEOUT>> | connect_timeout 接続タイムアウト |
<<REQUIRE_REPLY>> | reauire_reply リプライパケットのチェック有無 |
UDP_CHECK {
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
<<REQUIRE_REPLY>>
}
3.4.3.8. ヘルスチェックテンプレート(dns_check.tmpl)のタグ
タグ名 | 置き換えられる値 |
---|---|
<<CONNECT_IP>> | connect_ip 接続先IPアドレス |
<<CONNECT_PORT>> | connect_port 接続先ポート番号 |
<<BINDTO>> | bindto ダイジェスト |
<<BIND_PORT>> | bind_port 接続元ポート番号 |
<<CONNECT_TIMEOUT>> | connect_timeout 接続タイムアウト |
<<DNS_TYPE>> | type 接続確認を行うDNSタイプ |
<<DNS_NAME>> | name 接続確認を行うDNSレコード名 |
DNS_CHECK {
<<CONNECT_IP>>
<<CONNECT_PORT>>
<<BINDTO>>
<<BIND_PORT>>
<<CONNECT_TIMEOUT>>
<<DNS_TYPE>>
<<DNS_NAME>>
}
3.5. ロック用ディレクトリの設定
ILUKAがロックファイルを作成するためのディレクトリを作成します。
# mkdir /var/iluka
# chown apache:apache /var/iluka
# chmod 750 /var/iluka
3.6. sudoの設定
# visudo
# Defaults requiretty
apache ALL=(ALL) NOPASSWD: /usr/local/postldapadmin/bin/reload_keepalived
3.7. ウェブサーバの設定
ILUKAのウェブインタフェースを使用するための設定を行います。
Alias /iluka/ /usr/local/postldapadmin/htdocs/
<Directory "/usr/local/postldapadmin/htdocs">
DirectoryIndex index.php
require all granted
AddDefaultCharset EUC-JP
<IfModule mod_php5.c>
PHP_value include_path ".:/usr/local/postldapadmin/"
</IfModule>
<IfModule !mod_php5.c>
# for php-fpm
SetEnv PHP_VALUE "include_path=.:/usr/local/postldapadmin/"
</IfModule>
</Directory>
<Location /iluka/>
SetEnv LOGNAME iluka
SetEnv DOMAIN iluka
RewriteEngine On
RewriteRule admin/images/logo.png$ /iluka/admin/images/logo_iluka.png [L]
</Location>