Crowd Data Center 4.X のインストール (Linux, クラスター構成)

このページでは、インストーラーを利用して Crowd の Data Center 版を クラスター化された構成で Linux 環境にインストールする手順について紹介します。

目次


はじめに

Crowd は使用、管理、統合がとても簡単なシングルサインオンとユーザー ID 管理のためのツールです。機能の詳細については、こちらのページ もご確認ください。

インストールする環境は以下を想定しています。

インストールディレクトリ
(Crowd のプログラムを配置するディレクトリ)

/opt/atlassian/crowd

ホームディレクトリ
(Crowd のデータを保存するディレクトリ)

/var/atlassian/application-data/crowd

共有ディレクトリ
(Crowd の共有データを保存するディレクトリ)
/data/crowd/shared
TCP ポート番号8095 (Crowd のデフォルトポートを利用)  (情報) アトラシアン アプリケーションで使用されるポート
コンテキストパス
(URL でサーバー名に続く文字)
/crowd

インストールを実行するユーザー

root

Crowd 稼働ユーザー

crowd

DB (データベース)

Crowd と別のコンピュータにインストールされた PostgreSQL を利用 (今回は crowd を使用)

JavaOpenJDK 11

起動方法

サービスとして登録し、自動起動する



ご注意ください

Crowd のバージョンによってサポートされている稼働環境は異なります。
最新の情報は、サポート対象プラットフォーム  のページからご確認ください。

構成例

Crowd をクラスター化して構成する場合は、スティッキー HTTP セッション が必要です。
この手順書ではロードバランサー(単一)として Apache を利用し、Crowd を 2ノード構成にした環境でのインストール手順を説明します。

他の構成例については、 Data Center の構成例  (Atlassian ドキュメント) をご参照ください。

この手順書では、説明を簡略化するために、サーバーは以下の4台で構成する前提で記載しています。
共有データベースと共有データディレクトリは、 一つのサーバーに構築されています。


名称

インストールされているシステム・ディレクトリ

IP アドレス

1Crowd ノード1
  • Crowd アプリケーション (Node1)
192.168.56.103
2Crowd ノード2
  • Crowd アプリケーション (Node2)
192.168.56.104
3ロードバランサ
  • Apache
192.168.56.105
4データサーバー
  • 共有データベース(PostgreSQL)
  • 共有データディレクトリ (/data/crowd/shared)
192.168.56.106

1.サーバーを用意する

Crowd をインストールするサーバー

Crowd をインストールするサーバーをノード分用意します。必要なスペックについては、ユーザー数やピーク時の同時リクエスト最大数等に依存するため、評価時の使用状況をもとにチューニングを行ってください。

2ノード構成の場合は、各ノードのサイジングをクラスタされていない単一 Crowd と同様に設定することをお勧めします。
3ノード以上の構成の場合は、各ノードのメモリや CPU を少なくできますが、メインのノードがダウンした場合に負荷を処理できるように、残りのノードに十分な容量を割り当てておく必要があります。

ロードバランサーとして利用するサーバー

ロードバランサーを用意します。唯一の構成要件は、ロード バランサーでステッキー HTTP  セッション (セッション アフィニティ) を有効化することです。
HAProxy、Apache、および Nginx 等がありますが、この手順書では Apache を利用します。

詳細は Crowd Data Center load balancer configuration examples  ( Atlassian ドキュメント) や Atlassian Data Center を使用したトラフィック分布 ( Atlassian ドキュメント)   をご確認ください。

データベースと共有データディレクトリを構成するデータサーバー

Crowd で利用する共有データベース (今回は PostgreSQL)をインストールするサーバーと、構成情報等を格納する共有データディレクトリを構築するサーバーを用意します。
今回は、データベースと共有データディレクトリは同じサーバーに構築します。

2.各サーバーに Linux をインストールする

ロードバランサーや Crowd を設定するサーバー、データサーバーにそれぞれ Linux をインストールしてください。本ドキュメントでは CentOS を利用します(RHEL や、Ubuntu などの Debian 系ディストリビューションを利用することもできます)。

サーバー上に  VMware    AWS  などで仮想環境を構築して Crowd をインストールすることもできます。

3.データベース を用意する

サポート対象プラットフォーム に記載されている、サポートされたデータベースを構築します。本ドキュメントでは PostgreSQL を利用しますので、以下のページの手順を実施してください。
今回はデータサーバーに PostgreSQL をインストールし、Crowd 用の共有データベースを作成します。

4.ノード1の Crowd のインストール・セットアップを実行する

Crowd 4.0 のインストール (Linux) を実施し、ノード1の Crowd のインストールとセットアップを実行します。

インストールする Crowd のバージョンが異なる場合は、バージョンの部分を読み替えて実行をお願いします。

5.共有ディレクトリをセットアップする

クラスタ内のすべてのノードで読み取り/書き込み可能な共有ディレクトリを作成します。今回は、データサーバーに共有ディレクトリを作成し、NFS で他ノードへ共有する場合の手順を紹介します。

1.ノード1の Crowd のサービスを停止する

Crowd が起動している場合は、以下のコマンドを実行し Crowd を停止します。
※ RHEL 7 や CentOS 7 系の OS をご利用で 自動起動の設定  を実施している場合は以下のコマンドで実行できます。

systemctl stop crowd

2.ノード1の Crowd ホームディレクトリ下に shared ディレクトリがあるか確認する

ノード1の Crowd ホームディレクトリ下に、Crowd 起動後に作成されたサブディレクトリがあるかを確認します。

ll /var/atlassian/application-data/crowd/

結果

total 4
drwxr-x---. 2 crowd crowd  107 Aug 30 06:20 analytics-logs
drwxr-x---. 2 crowd crowd 4096 Aug 30 06:19 bundled-plugins
drwxr-x---. 5 crowd crowd   71 Aug 30 06:19 caches
drwxr-x---. 2 crowd crowd   33 Aug 30 06:12 logs
drwxr-x---. 4 crowd crowd   54 Aug 30 06:21 shared

shared ディレクトリがある場合は、次の手順で共有サーバーにコピーします。
今回インストールした Crowd 4.3.5 では起動後に sharedディレクトリが作成されていたためコピーを行います。

3.データサーバーで共有ディレクトリを作成する

データサーバーに shared という共有ディレクトリを作成します。ノード1に既に shared ディレクトリが作成されている場合はそれをコピーします。

  • ノード1に shared ディレクトリがない場合

    データサーバーにて 以下のコマンドを実行し、共有ディレクトリを作成します。

    mkdir -p /data/crowd/shared
  • ノード1に shared ディレクトリがある場合

    データサーバーにて以下のコマンドを実行し、ディレクトリを作成します。

    mkdir -p /data/crowd

    ノード1のサーバーにて Crowd のホームディレクトリにある shared ディレクトリをデータサーバーにコピーします。

    rsync -auz -e ssh /var/atlassian/application-data/crowd/shared 192.168.56.106:/data/crowd

データサーバーにて 共有ディレクトリの権限を設定します。

useradd crowd
chown -R crowd:crowd /data/crowd/shared

4.データサーバーで NFS を設定する

データサーバーで、nfs-utils と rpc bind パッケージをインストールします。

yum -y install rpcbind nfs-utils

以下のコマンドを実行し、設定用のファイルを作成します。

vi /etc/exports

共有ディレクトリを読み書き許可する範囲を指定します。 以下の例は、192.168.56.1~192.168.56.254 の範囲で許可します。

/data/crowd/shared 192.168.56.0/24(rw,sync,no_root_squash,no_all_squash)

NFS と rpc bind を起動します。

systemctl start nfs
systemctl start rpcbind

以下のコマンドで、OS 起動時に nfs 関連サービスが 自動起動するように設定します。

systemctl enable nfs rpcbind

以下のコマンドで Firewall を設定し、設定を反映させます。

firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload

6.ノード1に共有ディレクトリをマウントする

ノード1の Crowd のサーバで、nfs-utils と rpc bind パッケージをインストールします

yum -y install rpcbind nfs-utils

NFS と rpc bind を起動します。

systemctl start nfs
systemctl start rpcbind

以下のコマンドで、OS 起動時に nfs 関連サービスが自動起動するように設定します。

systemctl enable nfs
systemctl enable rpcbind

以下のコマンドで Firewall を設定し、設定を反映させます。

firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload

マウントする共有ディレクトリを作成します。
ノード1に shared ディレクトリがある場合は以下のコマンドでリネームしておきます。

mv /var/atlassian/application-data/crowd/shared /var/atlassian/application-data/crowd/shared_bk

共有ディレクトリを作成します。

mkdir -p /var/atlassian/application-data/crowd/shared

 共有ディレクトリの権限を設定します。

chown -R crowd:crowd /var/atlassian/application-data/crowd/shared

以下のコマンドを実行し、/etc/fstab に参照先のサーバーの共有フォルダ情報を追加します。

vi /etc/fstab

以下の行を追加します。以下は参照先のデータサーバーの IP アドレスが「192.168.56.106」、共有ディレクトリのパスが「/data/crowd/shared」である例です。

/etc/fstab の編集画面

192.168.56.106:/data/crowd/shared /var/atlassian/application-data/crowd/shared nfs defaults 0 0

以下のコマンドを実行し、ネットワーク経由で NFS マウントします。

mount -v -t nfs 192.168.56.106:/data/crowd/shared /var/atlassian/application-data/crowd/shared

上記を実行後、以下のようなメッセージが表示されましたら、マウントは実行できています。

mount.nfs: timeout set for Tue Aug 31 03:40:15 2021
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.56.106,clientaddr=192.168.56.103'

df コマンドを実行し、マウントが完了しているか確認します。

# df -h
Filesystem                         Size  Used Avail Use% Mounted on
devtmpfs                           1.9G     0  1.9G   0% /dev
tmpfs                              1.9G     0  1.9G   0% /dev/shm
tmpfs                              1.9G   17M  1.9G   1% /run
tmpfs                              1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda2                           50G  2.7G   48G   6% /
/vagrant                           476G  318G  159G  67% /vagrant
192.168.56.106:/data/crowd/shared   50G  1.5G   49G   3% /var/atlassian/application-data/crowd/shared
tmpfs                              378M     0  378M   0% /run/user/1000

7.ロードバランサを設定する

ロードバランサにするサーバーへ Apache をインストールします。

yum install -y httpd


Crowd 分散用 の .conf ファイルを作成します。以下の例では、ファイル名は「httpd-proxy.conf」にしています。

vi /etc/httpd/conf/extra/httpd-proxy.conf


作成した httpd-proxy.conf ファイルに、各ノードの Crowdの URL を含めた以下の情報を記載します。以下の例では、Crowd のノード1が http://192.168.56.103:8095/crowd、ノード2が http://192.168.56.104:8095/crowd です。


/etc/httpd/conf/extra/httpd-proxy.conf の編集画面

ProxyTimeout  300
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass /crowd balancer: //crowdcluster timeout=1
ProxyPreserveHost on
<Location /crowd>
Require all granted
</Location>
<Proxy balancer: //crowdcluster>
BalancerMember http: //192.168.56.103:8095/crowd route=node1
BalancerMember http: //192.168.56.104:8095/crowd route=node2
ProxySet lbmethod=byrequests
ProxySet stickysession=JSESSIONID
</Proxy>
<Location /manager>
SetHandler balancer-manager
</Location>



作成した  .conf ファイル (例では  httpd-proxy.conf ) を読むように/etc/httpd/conf/httpd.conf の末尾に以下の二行を追加します。

vi /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf の編集画面

LoadModule lbmethod_byrequests_module modules/ mod_lbmethod_byrequests.so
Include conf/extra/httpd-proxy.conf


Apache を起動します。同時に自動起動設定をします

systemctl enable httpd
systemctl start httpd


ブラウザで http://<サーバマシンの IP アドレス>/manager へアクセスし、Apache httpd の manager 画面を確認します。 ロードバランサのサーバーの IP アドレスが、「192.168.56.105」の場合は、 http://192.168.56.105/manager  へアクセスしてください。
ここでノード1とノード2の URL が設定できていることを確認します。

8.ノード2にノード1の Crowd インストールディレクトリをコピーする

ノード1の Crowd のインストール時と同様にノード2のサーバーに Java をインストールしておきます。
詳細な手順は OpenJDK 11 のインストール をご参照ください。

ノード1の Crowd インストールディレクトリを圧縮します。

tar -zcvf atlassian-crowd-4.3.5_installdir.tar.gz /opt/atlassian/crowd/atlassian-crowd-4.3.5

圧縮ファイルをノード2のサーバーに送り、ノード1と同じディレクトリ構成となるよう解凍して配置します。


ノード1とノード2とでローカルホームディレクトリのパスが異なる場合には、crowd-init.properties ファイルの crowd.home の値を変更する必要がございます。

Crowd を実行するユーザーを作成します。

useradd --create-home --comment "Account for running Crowd" --shell /bin/bash crowd


展開されたインストールディレクトリに対するシンボリックリンクを作成します。

ln -s /opt/atlassian/crowd/atlassian-crowd-4.3.5/ /opt/atlassian/crowd/latest


Crowd のデータを保存するホームディレクトリを作成します。

mkdir -p /var/atlassian/application-data/crowd


インストールディレクトリとホームディレクトリの権限を設定します。

  1. 以下のコマンドを実行し、インストールディレクトリとホームディレクトリの所有者を crowd に変更します。

    chown -R crowd:crowd /opt/atlassian/crowd/atlassian-crowd-4.3.5/ /var/atlassian/application-data/crowd/
  2. 以下のコマンドを実行し、インストールディレクトリとホームディレクトリの権限を指定します。

    chmod -R u=rwx,go-rwx /opt/atlassian/crowd/atlassian-crowd-4.3.5/ /var/atlassian/application-data/crowd/

以下のコマンドを実行し、OpenID の設定を削除します。
※現在、 CrowdID  コンポーネントはクラスタリングをサポートしておらず、最初のノードでのみ有効にする必要があるため、ノード2では削除します。

rm /opt/atlassian/crowd/atlassian-crowd-4.3.5/apache-tomcat/conf/Catalina/localhost/openidserver.xml


必要に応じて 自動起動設定 を行ってください。

9.ノード2に共有ディレクトリをマウントする

ノード2のサーバーでも「 6.ノード1に共有ディレクトリをマウントする 」を実施します。

10.ノードに名前を設定する

ノード1のサーバーにて以下のコマンドを実行します。

vi /opt/atlassian/crowd/atlassian-crowd-4.3.5/apache-tomcat/bin/setenv.sh

ノード名を追記します。ここでは "node-1" としています。

CATALINA_OPTS=-Dcluster.node.name=node-1

ノード2のサーバーでも同様にノード名を設定します。

11.ノード2の Crowd を起動/動作確認をする

1.ノード2の Crowd を起動する

9. Crowd を起動する の手順でノード2の Crowd を起動します。

2.ノードが追加されていることを確認する

Administration メニューの「Clustering」を開き、ノードが node-1 と node-2 の二つ設定されていることを確認します。

3.ノード2で ユーザーの追加・検索が機能するか確認する

ノード2の Crowd でユーザーの追加や検索ができるか確認してください。

ユーザー作成

ユーザー検索

4.ノード1へ切り替え、3で追加したユーザーが反映されているか確認する

ノード2の Crowd を停止し、ノード1の Crowd を起動します。

3で新規追加したユーザーの参照や、検索ができるか確認してください。


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


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