Shibboleth-IdP冗長化環境構築手順書(Terracotta編)
2011年12月26日
金沢大学
- 目次 -
1. はじめに
1.1. 本章の目的
1.2. 前提条件
2. Terracottaの構築
2.1. ファイヤーウォールを解放する。
2.2. Terracotttaの設定ファイルの編集
2.3. Terracottaのインストール
2.4. Terracottaクライアントの設定
3. 起動・停止
3.1. Terrracottaサーバ、クライアントの起動順
3.2. Terracottaサーバの起動/停止
3.3. tomcat (Terracottaクライアント)の起動/停止
1. はじめに
1.1. 本章の目的
本書は、JavaクラスタリングソフトウェアであるTerracottaを使用したShibboleth-IdPの冗長化環境の構築手順書です。
本書にて、TerracottaのインストールとShibboleth-IdPとの連携ができることを目的とします。
1.2. 前提条件
Terracottaを使ったShibboleth-IdP冗長化環境を構築するにあたり、下記を前提条件とします。
前提条件
- Shibboleth-IdPがインストールされ、認証ができる状態とします。
- OSはCentOS(64bit)を前提とします。
- Terracottaをインストールするサーバは2台とします。
- 本書は下記のソフトウェアを使用して記述します。
ソフトウェア名 |
バージョン |
インストール先 |
---|---|---|
Terracotta |
3.6.1 |
/opt/terracotta |
Shibboleth-IdP |
2.3.6 |
/opt/shibboleth-idp |
Apache Tomcat |
6.0.35 |
/usr/java/tomcat |
2. Terracottaの構築
Terracottaを構築する全てのサーバで実施します。
2.1. ファイヤーウォールを解放する。
Terracottaは3つのポートを使用します。
ClientからServerへのポート (デフォルトは 9510)
ServerからServerへのポート (デフォルトは 9530)
JMXを利用する場合のポート (デフォルトは 9520。本マニュアルでは利用しません。)
2.2. Terracotttaの設定ファイルの編集
- 下記URLからtc-config.xml をダウンロードします。
https://wiki.shibboleth.net/confluence/download/attachments/4358352/tc-config.xml
# cd /opt/shibboleth-idp/conf/ # wget https://wiki.shibboleth.net/confluence/download/attachments/4358352/tc-config.xml
- /opt/shibboleth-idp/conf/tc-config.xmlの設定
赤の太字が追加、又は変更となる箇所となります。<?xml version="1.0" encoding="UTF-8"?>
<tc:tc-config
xsi:schemaLocation=http://www.terracotta.org/config http://www.terracotta.org/schema/terracotta-4.xsd
xmlns:tc=http://www.terracotta.org/config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<!-- START Terracotta server definitions -->
<server name="idpNode1" host="XXX.XXX.XXX.XXX">
<dso-port>9510</dso-port>
<l2-group-port>9530</l2-group-port>
<dso>
<persistence>
<mode>permanent-store</mode>
</persistence>
</dso>
<logs>/opt/shibboleth-idp/cluster/server/logs</logs>
<data>/opt/shibboleth-idp/cluster/server/data</data>
<statistics>/opt/shibboleth-idp/cluster/server/stats</statistics>
</server>
<server name="idpNode2" host="YYY.YYY.YYY.YYY">
<dso-port>9510</dso-port>
<l2-group-port>9530</l2-group-port>
<dso>
<persistence>
<mode>permanent-store</mode>
</persistence>
</dso>
<logs>/opt/shibboleth-idp/cluster/server/logs</logs>
<data>/opt/shibboleth-idp/cluster/server/data</data>
<statistics>/opt/shibboleth-idp/cluster/server/stats</statistics>
</server>
<!-- END Terracotta server definitions -->
<ha>
<mode>networked-active-passive</mode>
<networked-active-passive>
<election-time>5</election-time>
</networked-active-passive>
</ha>
</servers>
<system>
<configuration-model>production</configuration-model>
</system>
<!-- terracotta client start -->
<clients>
<logs>/opt/shibboleth-idp/cluster/client/logs-%i</logs>
<!--
<statistics>/opt/shibboleth-idp/cluster/client/stats-%i</statistics>
-->
<modules>
<module name="tim-vector" version="2.7.1" group-id="org.terracotta.modules"/>
<module name="tim-tomcat-6.0" version="2.3.0"/>
</modules>
</clients>
<!-- terracotta client end -->
<application>
<dso>
~~(中略)~~
<web-applications>
<web-application>idp</web-application>
</web-applications>
</dso>
</application>
</tc:tc-config> - XXX.XXX.XXX.XXX および YYY.YYY.YYY.YYY はTerracotta を構築したサーバのIPアドレスです。
2.3. Terracottaのインストール
- 下記URLからterracotta-3.6.0.tar.gzをダウンロードします。
http://www.terracotta.org/
http://terracotta.org/downloads/open-source/destination?name=terracotta-3.6.0.tar.gz&bucket=tcdistributions&file=terracotta-3.6.0.tar.gz - Terracottaサーバにアップロードします。
/opt/terracotta-3.6.0.tar.gz
- 下記手順で terracotta-3.6.0.tar.gz を解凍します。
# cd /opt # tar terracotta-3.6.0.tar.gz # sudo rm terracotta-3.6.0.tar.gz ←解凍後、削除します。
- 下記に合わせシンボリックリンクを張ります。
# cd /opt # ln -s terracotta-3.6.0 terracotta
- Terracotta Integration Module (TIM) をインストールします。
# cd /opt/terracotta/bin # ./tim-get.sh install tim-vector 2.7.1 # ./tim-get.sh install tim-tomcat-6.0 2.3.0
2.4. Terracottaクライアントの設定
- tomcatの起動ファイルにTerracottaクライアントの起動コマンドを追加します。
Terracotta クライアントは tomcat のサービスとして起動します。# vi /etc/init.d/tomcat6
~~(省略)~~
export TC_INSTALL_DIR=/opt/terracotta
export TC_CONFIG_PATH=/opt/shibboleth-idp/conf/tc-config.xml
~~(省略)~~
start(){
# if [ -z $(/sbin/pidof java) ]; then
if [ -z $(/sbin/pidof tomcat) ]; then
echo "Starting tomcat"
. $TC_INSTALL_DIR/platform/bin/dso-env.sh --q
export JAVA_OPTS=$TC_JAVA_OPTS $JAVA_OPTS
/usr/java/tomcat/bin/startup.sh
touch /var/lock/subsys/tomcat
else
echo "tomcat allready running"
fi
} - dso-boot-hotspot_linux_160_23.jarがterracottaクライアント起動時に最新化されるようにします。
# vi /opt/terracotta/platform/bin/make-boot-jar.sh
exec "${JAVA_HOME}/bin/java" \
-Dtc.install-root="${TC_INSTALL_DIR}" \
-cp "${TC_INSTALL_DIR}/lib/tc.jar" \
com.tc.object.tools.BootJarTool make "$@" -w
3. 起動・停止
3.1. Terrracottaサーバ、クライアントの起動順
- 下記の順で起動してください。
1. Terracotta サーバ
2. Terracotta クライアント
3.2. Terracottaサーバの起動/停止
- 起動
Terracottaサーバがクラスタリングされている場合は先に起動したサーバがActiveとなります。
Terracottaサーバ : idpNode1の場合
# /opt/terracotta/bin/start-tc-server.sh -n idpNode1 -f /opt/shibboleth-idp/conf/tc-config.xml &
Terracottaサーバ : idpNode2の場合
# /opt/terracotta/bin/start-tc-server.sh -n idpNode2 -f /opt/shibboleth-idp/conf/tc-config.xml & - 停止
# /opt/terracotta/bin/stop-tc-server.sh
3.3. tomcat (Terracottaクライアント)の起動/停止
- 起動
# /etc/init.d/tomcat6 start
- 停止
# /etc/init.d/tomcat6 stop
以上。