Shibboleth-IdP冗長化環境構築手順書(memcached編)
2011年12月26日
国立情報学研究所
- 目次 -
1. はじめに
1.1. 本章の目的
1.2. 前提条件
1.3. ソフトウェア配布元
2. memcachedの構築
2.1. 必要なパッケージのインストール
2.2. memcachedのインストールと起動
2.3. memcachedの起動確認
3. Shibboleth-IdPとの連携
3.1. Apache Tomcatの停止
3.2. memcachedを利用するためのライブラリを追加します。
3.3. Shibboleth-IdPの設定ファイルの変更
3.4. Apache Tomcatの再実行
4. repcached対応
アンカー |
---|
| _Toc312318577 |
---|
| _Toc312318577 |
---|
|
1. はじめに
アンカー |
---|
| _Toc312318578 |
---|
| _Toc312318578 |
---|
|
1.1. 本章の目的
本書は、キャッシュサーバであるmemcachedのインストールとShibboleth-IdPの冗長化手順書です。
本書にて、memcachedとShibboleth-IdPの連携ができることを目的とします。
アンカー |
---|
| _Toc312318579 |
---|
| _Toc312318579 |
---|
|
1.2. 前提条件
memcachedを使ったShibboleth-IdPの冗長化を構築するにあたり、下記を前提条件とします。
前提条件
- Shibboleth-IdPは、学認の技術ガイドに基づいてインストールされており、認証できる状態であるものとします。
- OSはCentOS(64bit)を前提とします。
アンカー |
---|
| _Ref272941422 |
---|
| _Ref272941422 |
---|
|
- memcachedを構築するサーバは2台とします。
- 本書は下記のソフトウェアを使用して記述します。
ソフトウェア | バージョン | インストール先 |
---|
memcached | 1.4.10 | /usr/local/ |
Memcached StorageService | Revision 151
| -
|
repcached
| ?
| |
Shibboleth-IdP | 2.3.5 | /opt/shibboleth-idp |
Apache Tomcat | 6.0.35 | /usr/java/tomcat |
1.3. ソフトウェア配布元
本手順書で参照されている主なソフトウェアおよび配布元は以下の通りです。
アンカー |
---|
| _Toc312318580 |
---|
| _Toc312318580 |
---|
|
2. memcachedの構築
memcachedを構築する全てのサーバで実施します。
アンカー |
---|
| _Toc312318581 |
---|
| _Toc312318581 |
---|
|
2.1. 必要なパッケージのインストール
- memcachedをインストールするために必要なパッケージをインストールします。
書式設定済み |
---|
# yum install -y wget libevent-devel make gcc gcc-c++
|
アンカー |
---|
| _Toc312318582 |
---|
| _Toc312318582 |
---|
|
2.2. memcachedのインストールと起動
情報 |
---|
RHEL 6系など、yumリポジトリからmemcachedパッケージをインストールできる場合はそちらの使用をお勧めします。 ただし、後述のrepcachedを使用する場合はソースからのコンパイルが必要です。 |
- memcachedのソースコードをダウンロードし解凍します。
書式設定済み |
---|
# cd /usr/local/src
# wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
# tar zxf memcached-1.4.10.tar.gz
# rm memcached-1.4.10.tar.gz ←解凍後、削除します。
|
- コンパイルしインストールします。
書式設定済み |
---|
# cd /usr/local/src/memcached-1.4.10
# ./configure --build=x86_64-unknown-linux-gnu --enable-64bit
# make
# make install
|
- memcachedをキャッシュ(-m) = 500MB、最大同時接続数(-c) = 1024で起動します。
注意 |
---|
root権限で実行している場合は -u root オプションを付けて実行してください。 |
書式設定済み |
---|
# memcached -d -m 512 -c 1024
|
アンカー |
---|
| _Toc312318583 |
---|
| _Toc312318583 |
---|
|
2.3. memcachedの起動確認
- telnetにてmemcachedの起動を確認します。
# telnet localhost 11211 ←11211ポートは指定なし起動時の規定値です。 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. stats ←入力しEnterします。
STAT total_items 36 STAT evictions 0 STAT reclaimed 0 END ↑このような文字列が表示されれば起動しています。 |
アンカー |
---|
| _Toc312318584 |
---|
| _Toc312318584 |
---|
|
3. Shibboleth-IdPとの連携
アンカー |
---|
| _Toc312318585 |
---|
| _Toc312318585 |
---|
|
3.1. Apache Tomcatの停止
- Tomcatが起動している場合は停止します。
書式設定済み |
---|
# /etc/init.d/tomcat stop
|
アンカー |
---|
| _Toc312318586 |
---|
| _Toc312318586 |
---|
|
3.2. memcachedを利用するためのライブラリを追加します。
書式設定済み |
---|
# wget --no-check-certificate https://www.aai.dfn.de/fileadmin/tools/unimr-memcached.tar.gz
# tar zxf unimr-memcached.tar.gz
# cd unimr-memcached
# cp unimr-memcached-idp2.3-rev151.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/
# cp lib/spymemcached-2.7.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/
|
アンカー |
---|
| _Toc312318587 |
---|
| _Toc312318587 |
---|
|
3.3. Shibboleth-IdPの設定ファイルの変更
- ログイン設定(login.config) を変更します。
# vi /opt/shibboleth-idp/conf/login.config
{}内に一行追加します。 setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。
例 edu.vt.middleware.ldap.jaas.LdapLoginModule required host="ldap://192.168.1.1" base="o=Test Organization,dc=ac,c=jp" ssl="false" userField="uid" subtreeSearch="true" setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。 }; |
- 内部保存設定(internal.xml)を変更します。
書式設定済み |
---|
# vi /opt/shibboleth-idp/conf/internal.xml
|
85行目をコメントアウトします。 <!-- <bean id="shibboleth.StorageService" cla・・・省略 --> |
コメントアウトした下に追加します。 <bean id="shibboleth.StorageService" class="unimr.shib2.UniMrMemcachedStorageService" depends-on="shibboleth.LogbackLogging"> <constructor-arg value="XXX.XXX.XXX.XXX:11211 YYY.YYY.YYY.YYY:11211" />←memcached のIPを指定します。 </bean> |
※XXX.XXX.XXX.XXX および YYY.YYY.YYY.YYY はmemcached を構築したサーバのIPアドレスです。 情報 |
---|
ポイント constructor-argのvalueにはスペース区切りでmemcachedのIPとポートを指定する。後で起動したものは前(左)に追加する。上記では2つmemcachedがありXXX.XXX.XXX.XXX が後で起動したmemcachedです。 |
- webの設定を変更しサーブレットフィルターの設定を追加します。
書式設定済み |
---|
# vi /usr/java/tomcat/webapps/idp/WEB-INF/web.xml
|
53行目付近に以下を追加します。 コード ブロック |
---|
|
<!-- Store the modified session object in the memcached storage service -->
<filter>
<filter-name>UniMrMemcachedServletFilter</filter-name>
<filter-class>unimr.shib2.UniMrMemcachedServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UniMrMemcachedServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
|
アンカー |
---|
| _Toc312318588 |
---|
| _Toc312318588 |
---|
|
3.4. Apache Tomcatの再実行
- tomcatの起動(対象は全てのShibboleth-idpサーバ)
書式設定済み |
---|
# /etc/init.d/tomcat start
|
4. repcached対応
複数memcached上のデータレプリケーションを行うrepcachedに変更するには以下のページの手順に従ってインストールしてください。
http://lab.klab.org/wiki/Repcached
以上。