比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

  • OS、DNS、ネットワーク、時刻同期などは設定済みとなっています。(Apache HTTP Server、mod_sslもインストール済み)
  • CentOS7
  • メモリ2GB以上
  • Apache HTTP Server 2.4 と mod_ssl
  • Java 11(OpenJDK)
  • Apache Tomcat Jetty 9.4
  • Shibboleth IdP v4

また、実習環境ではSELinuxは無効化されているものとして手順を記載しています。下記コマンドでSELinux設定が確認できます。

...

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# yum install java-11-openjdk java-11-openjdk-develheadless


...

アンカー
seminar-idpInst3
seminar-idpInst3

3.

...

Jetty 9.4 をインストールする

1. インストール

CentOS 7に用意されているパッケージはTomcat7なので、Apache Software Foundationが配布するTomcatパッケージをダウンロードしてインストールします。7にはJettyのパッケージがないので、ダウンロードしてインストールします。
実習セミナーでは予めダウンロードした「/root/PKG」内の、apachePKG」内の、jetty-tomcatdistribution-9.4.*.v?.???????.tar.gzを使います。gz を使います。
さらに、Shibboleth Projectが配布している各種設定ファイル群(jetty-base)を配置します。
こちらも予め「/root/PKG」内に配置してあるものを使用します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# cd /root/PKG
# tar zxv -C /usr/shareopt -f apachejetty-tomcatdistribution-9.?.4.*.v????????.tar.gz
# ( cd /opt ; ln -s /usr/share/apache-tomcat-9.?.?? /usr/share/tomcat
jetty-distribution-9.4.*.v???????? /opt/jetty )
# tar zxv -C /opt -f idp-jetty-base-9.4.?.tar.gz


サービス起動は、”jetty”ユーザに設定

"root"ユーザではなく、Jetty起動用のユーザを使用することを推奨します。
ここでは、一般的な "jetty" ユーザを作成します。(以降、"jetty"ユーザを使用する事が前提で説明します。)

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# useradd -r -d /opt/jetty-base -s /sbin/nologin -c "Jetty daemon" jetty

以下のコマンドでその他 Jetty 関連の設定ファイルやディレクトリの所有者、パーミッションを設定します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# chown -R root:root /opt/jetty-distribution-9.4.*.v???????? /opt/jetty-base
# chmod -R g-w /opt/jetty-base
# chown jetty:jetty /opt/jetty-base/{logs,tmp}

自動起動スクリプトは、以下のように作成します。また自動起動スクリプトは、「/root/GETFILE」配下のtomcat.serviceを使います。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

#

cp /root/GETFILE/tomcat.service

sudo cp -ip /opt/jetty/bin/jetty.sh /etc/init.d/jetty
# sudo cp -ip /opt/jetty/bin/jetty.service /etc/systemd/system/

jetty.serviceについては、コピー後に以下のように修正します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/jetty
PIDFile=/opt/jetty-base/tmp/jetty.pid
ExecStart=/etc/init.d/jetty start
ExecStop=/etc/init.d/jetty stop
ExecReload=/etc/init.d/jetty restart
SuccessExitStatus=143
User=jetty
Group=jetty

以下を実行して、修正した内容を反映させます。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# sudo systemctl daemon-reload

以下の内容で/etc/sysconfig/jettyを作成します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

JAVA=/usr/lib/jvm/jre/bin/java
JETTY_HOME=/opt/jetty
JETTY_BASE=/opt/jetty-base
JETTY_RUN=/opt/jetty-base/tmp
JETTY_STATE=/opt/jetty-base/tmp/jetty.state


2. 自動起動の設定

以下のコマンドで自動起動設定を有効にします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

#

systemctl

enable

tomcat

jetty

補足:
以下のコマンドで自動起動設定を無効にすることができます。
#

systemctl

disable

tomcat

”tomcat”ユーザで起動

...

jetty


3. jetty-baseの設定 

以下のように関連する設定ファイルの作成や修正を行っていきます。

/opt/jetty-base/webapps/idp.xmlの修正
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# useradd -r -d /usr/share/tomcat -s /sbin/nologin -c "Tomcat daemon" tomcat

...

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="war"><SystemProperty name="idp.war.path" default="/opt/shibboleth-idp/war/idp.war" /></Set>
<Set name="contextPath"><SystemProperty name="idp.context.path" default="/idp" /></Set>
<Set name="extractWAR">false</Set>
<Set name="copyWebDir">false</Set>
<Set name="copyWebInf">true</Set>
</Configure>

idp-backchannel.iniを無効化
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# chown -R tomcat:tomcat /usr/share/tomcat/{temp,logs,work}
# chown tomcat:tomcat /usr/share/tomcat/webapps
# chmod +t /usr/share/tomcat/webapps
# chmod go+rx /usr/share/tomcat/conf

# chgrp tomcat /usr/share/tomcat/conf/*.*
# chmod g+r /usr/share/tomcat/conf/*.*
# mkdir -p /usr/share/tomcat/conf/Catalina/localhost
chgrp -R tomcat /usr/share/tomcat/conf/Catalina
chmod -R g+r /usr/share/tomcat/conf/Catalina
chmod -R +t /usr/share/tomcat/conf/Catalina
# chgrp -R tomcat /usr/share/tomcat/{bin,lib}

3JAVA_OPTSの設定 

...

# sudo mv -i /opt/jetty-base/start.d/idp-backchannel.ini /opt/jetty-base/start.d/idp-backchannel.ini.dist

/opt/jetty-base/start.d/start.iniの作成
コード ブロック
languagebash
# Any other required Jetty modules...

# Allows setting Java system properties (-Dname=value)
# and JVM flags (-X, -XX) in this file
# NOTE: spawns child Java process
--exec

# Uncomment if IdP is installed somewhere other than /opt/shibboleth-idp
#-Didp.home=/path/to/shibboleth-idp

# Newer garbage collector that reduces memory needed for larger metadata files
-XX:+UseG1GC

# Maximum amount of memory that Jetty may use, at least 1.5G is recommended
# for handling larger (> 25M) metadata files but you will need to test on
# your particular metadata configuration
-Xmx1500m

# Prevent blocking for entropy.
-Djava.security.egd=file:/dev/./urandom

# Set Java tmp location
-Djava.io.tmpdir=tmp
# Strip IPv6 brackets
#-Dorg.eclipse.jetty.util.HostPort.STRIP_IPV6=true

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# sudo mv -i /opt/jetty-base/start.d/idp-backchannel.ini /opt/jetty-base/start.d/idp-backchannel.ini.dist





コード ブロック
languagebash
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
JAVA_OPTS="-server -Xmx1500m -XX:MaxPermSize=256m -XX:+UseG1GC "


4.
profileの追加

/etc/profile.d/java-tomcat.sh という新規ファイルを以下の内容で作成します。opt/jetty-base/webapps/idp.xmlを以下のように修正します。(idp.warファイルのパス修正)

コード ブロック
languagebash
# /etc/profile.d/java-tomcat.sh - set Java and Tomcat stuff
JAVA_HOME=/usr/lib/jvm/java
#export MANPATH=$MANPATH:/usr/java/default/man
CATALINA_HOME=/usr/share/tomcat
CATALINA_BASE=$CATALINA_HOME
PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH
export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE

...