Crowd Data Center 4.X のインストール (Linux, クラスター構成)
このページでは、インストーラーを利用して Crowd の Data Center 版を クラスター化された構成で Linux 環境にインストールする手順について紹介します。
目次
はじめに
Crowd は使用、管理、統合がとても簡単なシングルサインオンとユーザー ID 管理のためのツールです。機能の詳細については、こちらのページ もご確認ください。
インストールする環境は以下を想定しています。
インストールディレクトリ | /opt/atlassian/crowd |
---|---|
ホームディレクトリ | /var/atlassian/application-data/crowd |
共有ディレクトリ (Crowd の共有データを保存するディレクトリ) | /data/crowd/shared |
TCP ポート番号 | 8095 (Crowd のデフォルトポートを利用) アトラシアン アプリケーションで使用されるポート |
コンテキストパス (URL でサーバー名に続く文字) | /crowd |
インストールを実行するユーザー | root |
Crowd 稼働ユーザー | crowd |
DB (データベース) | Crowd と別のコンピュータにインストールされた PostgreSQL を利用 (今回は crowd を使用) |
Java | OpenJDK 11 |
起動方法 | サービスとして登録し、自動起動する |
ご注意ください
Crowd のバージョンによってサポートされている稼働環境は異なります。
最新の情報は、サポート対象プラットフォーム のページからご確認ください。
構成例
Crowd をクラスター化して構成する場合は、スティッキー HTTP セッション が必要です。
この手順書ではロードバランサー(単一)として Apache を利用し、Crowd を 2ノード構成にした環境でのインストール手順を説明します。
他の構成例については、 Data Center の構成例 (Atlassian ドキュメント) をご参照ください。
この手順書では、説明を簡略化するために、サーバーは以下の4台で構成する前提で記載しています。
共有データベースと共有データディレクトリは、 一つのサーバーに構築されています。
名称 | インストールされているシステム・ディレクトリ | IP アドレス | |
---|---|---|---|
1 | Crowd ノード1 |
| 192.168.56.103 |
2 | Crowd ノード2 |
| 192.168.56.104 |
3 | ロードバランサ |
| 192.168.56.105 |
4 | データサーバー |
| 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 系ディストリビューションを利用することもできます)。
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」である例です。
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 です。
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
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
インストールディレクトリとホームディレクトリの権限を設定します。
以下のコマンドを実行し、インストールディレクトリとホームディレクトリの所有者を crowd に変更します。
chown -R crowd:crowd /opt/atlassian/crowd/atlassian-crowd-4.3.5/ /var/atlassian/application-data/crowd/
以下のコマンドを実行し、インストールディレクトリとホームディレクトリの権限を指定します。
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. プライバシーポリシー お問い合わせ