Alfresco Search Services のインストール

はじめに

このページでは Alfresco Search Services  のインストール手順について説明します。

前提として、

  1. 使用する Alfresco Content Services と互換性のある Alfresco Search Services のバージョンを対象とする
  2. Alfresco Content Services をインストール済み
  3. Alfresco SSL Generator を実行済み

とします。

必ずサポート対象のバージョンを確認し、使用するようにしてください。


1.事前準備


あらかじめ契約している Alfresco のサポートポータルから alfresco-search-services-<バージョン番号>.zip ファイルをインストール先のサーバに配置しておきます。

Alfresco Content Services のサービスを停止します。

実行コマンド
# systemctl stop content-services && systemctl is-active content-services

ポート確認用に次のコマンドをインストールします

CentOS 7 系
# yum install lsof
CentOS 8 系
# dnf install lsof

2.Alfresco Search Services のインストール

ログ格納用ディレクトリを作成します

実行コマンド
# mkdir -p /var/log/alfresco/solr \
&& chown -R alfresco:alfresco /var/log/alfresco

あらかじめ配置した alfresco-search-services-<バージョン番号>.zip ファイルを展開します。

実行コマンド
# cd /opt/alfresco/ \
&& unzip /root/alfresco-search-services-<バージョン番号>.zip \
&& mv alfresco-search-services search-services

Alfresco SSL Generator で作成された keystores ディレクトリ配下の solr ディレクトリの中身を keystore フォルダに配置します(Keystore directory structure

実行コマンド
# mkdir /opt/alfresco/search-services/solrhome/keystore \
&& cp /root/work/alfresco-ssl-generator-master/ssl-tool/keystores/solr/* /opt/alfresco/search-services/solrhome/keystore/ \
&& ls -l /opt/alfresco/search-services/solrhome/keystore/
実行結果
合計 20
-rw-r--r--. 1 root root  135  4月 15 19:38 ssl-keystore-passwords.properties
-rw-r--r--. 1 root root  163  4月 15 19:38 ssl-truststore-passwords.properties
-rw-r--r--. 1 root root 4632  4月 15 19:38 ssl.repo.client.keystore
-rw-r--r--. 1 root root 3633  4月 15 19:38 ssl.repo.client.truststore

(オプション) ログの出力設定を変更します

実行コマンド
# vi /opt/alfresco/search-services/logs/log4j.properties
編集内容
(省略)
 
#- size rotation with log cleanup.
#log4j.appender.file=org.apache.log4j.RollingFileAppender ←コメントアウト
#log4j.appender.file.MaxFileSize=4MB ←コメントアウト
#log4j.appender.file.MaxBackupIndex=9 ←コメントアウト
 
#- File to log to and log format
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender ←追加
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.Append=true ←追加
log4j.appender.file.DatePattern='.'yyyy-MM-dd ←追加
log4j.appender.file.layout=org.apache.log4j.PatternLayout ←追加
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n ←追加
#log4j.appender.file.layout=org.apache.log4j.EnhancedPatternLayout ←コメントアウト
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n ←コメントアウト
 
(省略)

solr.in.sh ファイルを編集して、ログファイルの出力先及びログ設定ファイルのパスを変更します。

実行コマンド
# vi /opt/alfresco/search-services/solr.in.sh
編集箇所
SOLR_LOGS_DIR=/var/log/alfresco/solr
LOG4J_PROPS=/opt/alfresco/search-services/logs/log4j.properties

相互 TLS 接続をするために、solr.in.sh ファイルで「編集箇所」の設定を行います(参考:Installing and configuring Search Services with mutual TLS

keystore および truststore の設定については、/opt/alfresco/search-services/solrhome/keystore/ の中身を確認して設定値を適切に設定してください。

パスワードや鍵のタイプも適宜変更してください。

相互 TLS 接続をしない場合は、当該設定を必ずコメントアウトしたままにしてください。

編集箇所
SOLR_SSL_KEY_STORE=/opt/alfresco/search-services/solrhome/keystore/ssl.repo.client.keystore
SOLR_SSL_KEY_STORE_PASSWORD=alfresco
SOLR_SSL_KEY_STORE_TYPE=JCEKS
SOLR_SSL_TRUST_STORE=/opt/alfresco/search-services/solrhome/keystore/ssl.repo.client.truststore
SOLR_SSL_TRUST_STORE_PASSWORD=alfresco
SOLR_SSL_TRUST_STORE_TYPE=JCEKS
SOLR_SSL_NEED_CLIENT_AUTH=true
SOLR_SSL_WANT_CLIENT_AUTH=false

(オプション) Alfresco Search Services を Alfresco Content Services とは別のマシンにインストールする場合は、solr.in.sh ファイルに次の設定を追加します。

追記内容
SOLR_SOLR_HOST=<Alfresco Search Services をインストールしたマシンのホスト>
SOLR_ALFRESCO_HOST=<Alfresco Content Services をインストールしたマシンのホスト>

組織間で複数の言語を使用する場合は、shared.properties ファイルで「コメント解除内容」に記載されている次の設定値をコメント解除します。

実行コマンド
# vi /opt/alfresco/search-services/solrhome/conf/shared.properties
コメント解除内容
alfresco.cross.locale.datatype.0={http://www.alfresco.org/model/dictionary/1.0}text
alfresco.cross.locale.datatype.1={http://www.alfresco.org/model/dictionary/1.0}content
alfresco.cross.locale.datatype.2={http://www.alfresco.org/model/dictionary/1.0}mltext

(オプション) サジェスチョンを有効にする場合は、shared.properties ファイルで「コメント解除内容」に記載されている次の設定値をコメント解除します。

デフォルトでは、スケーラビリティの目的で提案が無効になっているため、この機能は Alfresco Search Services では機能しません。

コメント解除内容
alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name
alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title
alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description
alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content

solrcore.properties ファイルで、それぞれの編集箇所を編集します(参考: Setting up your certificates , Solr core configuration properties

実行コマンド
# vi /opt/alfresco/search-services/solrhome/templates/rerank/conf/solrcore.properties
  • 相互 TLS をする場合

    相互 TLS をする場合の編集箇所
    alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties
    alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties
    
  • 相互 TLS をしない場合

    相互 TLS をしない場合の編集箇所
    alfresco.secureComms=none
    

conf ディレクトリ配下にファイルをコピーします。

実行コマンド
# cp -p /root/work/alfresco-ssl-generator-master/ssl-tool/keystores/solr/* /opt/alfresco/search-services/solrhome/templates/rerank/conf/ \
&& ls -l /opt/alfresco/search-services/solrhome/templates/rerank/conf/
実行結果
合計 224
-rw-rw-r--. 1 root root  6013 12月  9 21:16 admin-extra.html
-rw-rw-r--. 1 root root     0 12月  9 21:16 admin-extra.menu-bottom.html
-rw-rw-r--. 1 root root     0 12月  9 21:16 admin-extra.menu-top.html
-rw-rw-r--. 1 root root  1377 12月  9 21:16 elevate.xml
-rw-rw-r--. 1 root root 18647 12月  9 21:16 generated_copy_fields.xml
drwxrwxr-x. 2 root root  4096 12月  9 21:17 lang
-rw-rw-r--. 1 root root   894 12月  9 21:16 protwords.txt
-rw-rw-r--. 1 root root 66623 12月  9 21:16 schema.xml
-rw-rw-r--. 1 root root 77926 12月  9 21:16 solrconfig.xml
-rw-rw-r--. 1 root root  6943 12月  9 21:16 solrcore.properties
-rw-rw-r--. 1 root root    14 12月  9 21:16 spellings.txt
-rw-r--r--. 1 root root   135  4月 15 18:16 ssl-keystore-passwords.properties
-rw-r--r--. 1 root root   163  4月 15 18:16 ssl-truststore-passwords.properties
-rw-r--r--. 1 root root  4632  4月 15 18:16 ssl.repo.client.keystore
-rw-r--r--. 1 root root  3633  4月 15 18:16 ssl.repo.client.truststore
-rw-rw-r--. 1 root root  1144 12月  9 21:16 synonyms.txt

相互 TLS 接続をするために、Alfresco Content Services の Tomcat の server.xml ファイルに次の設定を追加します。

keystore の設定 (keystoreFile, keystorePass など)や truststore の設定 (truststoreFile, truststorePass など) は、生成した keystore や truststore の設定に応じて適宜読み替えてください。

実行コマンド
# vi /opt/alfresco/content-services/tomcat/conf/server.xml
編集内容
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
            SSLEnabled="true" maxThreads="150" scheme="https"
            keystoreFile="/opt/alfresco/content-services/keystore/metadata-keystore/ssl.keystore"
            keystorePass="alfresco" keystoreType="JCEKS"
            secure="true" connectionTimeout="240000"
            truststoreFile="/opt/alfresco/content-services/keystore/metadata-keystore/ssl.truststore"
            truststorePass="alfresco" truststoreType="JCEKS"
            clientAuth="want" sslProtocol="TLS" />

(オプション) 相互 TLS 接続をしない場合は、alfresco-global.properties ファイルに次の設定を追加します。

実行コマンド
# vi /opt/alfresco/content-services/tomcat/shared/classes/alfresco-global.properties
追加内容
solr.secureComms=none

所有者を Alfresco 実行用ユーザに変更します。

実行コマンド
# chown -R alfresco:alfresco /opt/alfresco/ \
&& find /opt/alfresco/ ! -user alfresco | wc -l
実行結果
0

Alfresco 実行用ユーザに切り替えます。

実行コマンド
# su - alfresco

起動します。

相互 TLS を使用する場合の実行コマンド
$ /opt/alfresco/search-services/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive
 -Dsolr.ssl.checkPeerName=false
 -Dsolr.allow.unsafe.resourceloading=true
 -Dssl-keystore.password=alfresco
 -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client
 -Dssl-keystore.ssl-alfresco-ca.password=alfresco
 -Dssl-keystore.ssl-repo-client.password=alfresco
 -Dssl-truststore.password=alfresco
 -Dssl-truststore.aliases=ssl-alfresco-ca,ssl-repo,ssl-repo-client
 -Dssl-truststore.ssl-alfresco-ca.password=alfresco
 -Dssl-truststore.ssl-repo.password=alfresco
 -Dssl-truststore.ssl-repo-client.password=alfresco" -f
相互 TLS を使用しない場合の実行コマンド
$ /opt/alfresco/search-services/solr/bin/solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"

ブラウザで以下の URL にアクセスし、画面が遷移することを確認します。


項目名
1URLhttp://<IPアドレスもしくはホスト名>:8983/solr

遷移できることを確認したら、停止します。

実行
$ /opt/alfresco/search-services/solr/bin/solr stop
$ exit

3.サービス設定

Alfresco Search Services のサービスファイルを作成します。

実行コマンド
# vi /etc/systemd/system/search-services.service
相互 TLS を使用する場合の編集内容
[Unit]
Description=Alfresco Search Services
After=network.target content-services.service

[Service]
Restart=no
Type=forking
User=alfresco
ExecStart=/opt/alfresco/search-services/solr/bin/solr start -a "-Dsolr.ssl.checkPeerName=false -Dsolr.allow.unsafe.resourceloading=true -Dssl-keystore.password=alfresco -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client -Dssl-keystore.ssl-alfresco-ca.password=alfresco -Dssl-keystore.ssl-repo-client.password=alfresco -Dssl-truststore.password=alfresco -Dssl-truststore.aliases=ssl-alfresco-ca,ssl-repo,ssl-repo-client -Dssl-truststore.ssl-alfresco-ca.password=alfresco -Dssl-truststore.ssl-repo.password=alfresco -Dssl-truststore.ssl-repo-client.password=alfresco"
ExecStop=/opt/alfresco/search-services/solr/bin/solr stop

[Install]
WantedBy=multi-user.target
相互 TLS を使用しない場合の編集内容
[Unit]
Description=Alfresco Search Services
After=network.target content-services.service

[Service]
Restart=no
Type=forking
User=alfresco
ExecStart=/opt/alfresco/search-services/solr/bin/solr start
ExecStop=/opt/alfresco/search-services/solr/bin/solr stop

[Install]
WantedBy=multi-user.target
2回目以降の起動時はオプション -Dcreate.alfresco.defaults=alfresco,archive が不要

Alfresco Search Services の自動起動を設定します。

実行コマンド
# systemctl daemon-reload \
&& systemctl enable search-services \
&& systemctl is-enabled search-services \
&& systemctl list-unit-files --type=service | grep search-services
実行結果
Created symlink from /etc/systemd/system/multi-user.target.wants/search-services.service to /etc/systemd/system/search-services.service.
enabled
search-services.service                       enabled

4.起動

Alfresco Search Services を起動します。

実行コマンド
# systemctl start content-services \
&& systemctl start search-services && systemctl is-active search-services
実行結果
active

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ