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

このページでは、インストーラーを利用して Jira Software の Data Center 版を クラスター化された構成で Linux 環境にインストールする手順について紹介します。
Jira Core / Jira Service Management (Jira ServiceDesk) についても同様の手順でインストールをすることができます。本ドキュメントでは以降 "Jira" と表現しますので、ご利用されたいアプリケーション(Jira Software / Jira Core / Jira Service Management)へ読み替えてください。

目次


はじめに

Jira はバグトラッキングや課題管理、プロジェクト管理を行うことができるツールです。機能の詳細については、リックソフトの製品紹介ページ もご確認ください。

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

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

/opt/atlassian/jira (Jira のインストーラーのデフォルト設定を利用)

ローカルホームディレクトリ

(Jira のローカルデータを保存するディレクトリ)

/var/atlassian/application-data/jira

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

/data/jira/sharedhome 

TCP ポート番号8080 (Jira のデフォルトポートを利用) (情報)アトラシアン アプリケーションで使用されるポート
コンテキストパス
(URL でサーバー名に続く文字)
/jira

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

root

Jira 稼働ユーザー

jira (Jira のインストーラーで自動で作成されるユーザーを利用)

データベース

Jira と同一のサーバーにインストールされた PostgreSQL を利用

Java

AdoptOpenJDK JRE (Jira のインストーラーに同梱の JDK を利用)

起動方法

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






ご注意ください

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

構成例

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

 

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

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


名称インストールされているシステム・ディレクトリIP アドレス
1Jira ノード1
  • Jira アプリケーション (Node1)
192.168.56.103
2Jira ノード2
  • Jira アプリケーション (Node2)
192.168.56.104
3ロードバランサ
  • Apache
192.168.56.105
4データサーバー
  • 共有データベース(PostgreSQL)
  • 共有データディレクトリ (/data/jira/sharedhome)
192.168.56.106

1.サーバーを用意する

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

Jira をインストールするサーバーをノード分用意します。必要なスペックについては以下をご参照ください。

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

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

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

詳細は Jira Data Center ロード バランサの例 ( Atlassian ドキュメント) や Atlassian Data Center を使用したトラフィック分布 ( Atlassian ドキュメント)   をご確認ください。

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

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

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

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

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


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

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

ご注意ください

クラスタ化した Jira では、 Jira 内部の組み込みデータベース(H2) をご利用いただけません。

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

Jira Software 8.5 のインストール (Linux) の 4. Jira インストーラーのダウンロード から 10. 日付書式の設定(オプション) を実施し、ノード1の Jira をインストールとセットアップを実行します。

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


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

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

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

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

systemctl stop jira

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

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

mkdir -p /data/jira/sharedhome

ノード1の JIra のローカルホームディレクトリにある data、plugins、logos、import、export、caches フォルダを、データサーバーの共有ディレクトリ配下へコピーします。
例として、ノード1の Jira サーバー上で以下のコマンドを実行すると、rsync コマンド利用して共有データディレクトリ配下へコピーできます。

rsync -auz -e ssh /var/atlassian/application-data/jira/{data,plugins,logos,import,export,caches} 192.168.56.106:/data/jira/sharedhome

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

# useradd jira
# chown -R jira:jira  /data/jira/sharedhome

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

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

yum -y install rpcbind nfs-utils

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

vi /etc/exports

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

/data/jira/sharedhome 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


4.ノード1の Jira をクラスタモードへ変更する

ノード1の Jira のローカルホームディレクトリ直下に、cluster.properties を作成し、クラスタ設定を設定します。

vi /var/atlassian/application-data/jira/cluster.properties


以下を追加して、ノード IDと 共有ディレクトリの場所を定義します。以下の例では、ノード1のIDは「node1」にしています。

/var/atlassian/application-data/jira/cluster.properties の編集画面
jira.node.id=node1
jira.shared.home=/data/jira/sharedhome

Jira のインストールディレクトリ/bin/setenv.sh にパラメータを追加します。

vi /opt/atlassian/jira/bin/setenv.sh
/opt/atlassian/jira/bin/setenv.sh 編集画面

#
# Occasionally Atlassian Support may recommend that you set some specific JVM $
#
JVM_SUPPORT_RECOMMENDED_ARGS="-Dfile.encoding=UTF-8  -Datlassian.cluster.scale=true -DjvmRoute=node1"   ← "-Datlassian.cluster.scale=true -DjvmRoute=node1" を追加

<中略>

echo ""
echo "Server startup logs are located in $LOGBASEABS/logs/catalina.out"


ulimit -n 16384  ← 末尾にこの行を追加

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

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

yum install -y httpd

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

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

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

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

ProxyTimeout 300
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass /jira balancer://jiracluster timeout=1
ProxyPreserveHost on
<Location /jira>
Require all granted
</Location>
<Proxy balancer://jiracluster>
BalancerMember http://192.168.56.103:8080/jira route=node1
BalancerMember http://192.168.56.104:8080/jira 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 が設定できていることを確認します。

7.ノード1で NFS を設定・ディレクトリをマウントする

ノード1の Jira のサーバで、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の Jira のサーバで、
以下のコマンドを実行し、共有ディレクトリを作成します。

# mkdir -p /data/jira/sharedhome

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

# useradd jira
# chown -R jira:jira  /data/jira/sharedhome

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

vi /etc/fstab

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

/etc/fstab の編集画面
192.168.56.106:/data/jira/sharedhome /data/jira/sharedhome nfs defaults 0 0


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

mount -v -t nfs 192.168.56.106:/ /data/jira/sharedhome


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


mount.nfs: timeout set for Tue Jun  8 16:56:59 2021
mount.nfs: trying text-based options 'vers=4.1,addr=192.168.56.106,clientaddr=192.168.56.103'

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

# df -h
ファイルシス                      サイズ  使用  残り 使用% マウント位置
devtmpfs                            2.5G     0  2.5G    0% /dev
tmpfs                               2.6G     0  2.6G    0% /dev/shm
tmpfs                               2.6G  8.6M  2.5G    1% /run
tmpfs                               2.6G     0  2.6G    0% /sys/fs/cgroup
/dev/mapper/centos_rstest103-root   6.2G  2.8G  3.5G   45% /
/dev/sda1                          1014M  150M  865M   15% /boot
tmpfs                               514M     0  514M    0% /run/user/0
192.168.56.106:/                    6.2G  1.8G  4.5G   29% /data/jira/sharedhome

8.ノード2で NFS を設定・ディレクトリをマウントする

ノード2のサーバーでも 「7.ノード1で NFS を設定・ディレクトリをマウントするを実施します。

9.ノード2で Jira をインストール・データコピーする

1.Jira をインストール・初期設定を実施する

まず、ノード2のサーバーで、Jira Software 8.5 のインストール (Linux) の 4. Jira インストーラーのダウンロード から 7. パフォーマンス対策をする を実施してインストールと初期設定を実施します。

つづけて、Jira のインストールディレクトリ/bin/setenv.sh にパラメータを追加します。以下の例では、ノード2のIDは「node2」にしています。

vi /opt/atlassian/jira/bin/setenv.sh
/opt/atlassian/jira/bin/setenv.sh の編集画面

#
# Occasionally Atlassian Support may recommend that you set some specific JVM $
#
JVM_SUPPORT_RECOMMENDED_ARGS="-Dfile.encoding=UTF-8  -Datlassian.cluster.scale=true -DjvmRoute=node2 "   ← "-Datlassian.cluster.scale=true -DjvmRoute=node2" を追加

<中略>

echo ""
echo "Server startup logs are located in $LOGBASEABS/logs/catalina.out"


ulimit -n 16384  ← 末尾にこの行を追加


2.ノード1の Jira のデータをノード2の Jira へコピーする

(情報) ノード1の Jira が起動している場合は、Jira サービスを停止しておいてください

ノード1の Jira のローカルホームディレクトリを ノード2の Jira へコピーします。
例として、ノード1 の Jira で以下のような rsync コマンドを実行しますと、ローカルホームディレクトリを ノード2の Jira へコピーできます。

rsync -auz -e ssh /var/atlassian/application-data/jira/ 192.168.56.104:/var/atlassian/application-data/jira

3.ノード2の cluster.properties ファイルを編集する

ノード2 のサーバーで、Jira のローカルホームディレクトリ直下 の cluster.properties をノード2の情報へ書き換えます。

vi /var/atlassian/application-data/jira/cluster.properties


 Jira のノード IDをノード2の情報へ修正します。以下の例では、ノード2のIDは「node2」にしています。

/var/atlassian/application-data/jira/cluster.properties の編集画面
jira.node.id= node2
jira.shared.home = /data/jira/sharedhome


10.ノード2の Jira を起動/動作確認をする

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

8. Jira の起動 の手順で ノード2の Jira を起動します。

2.ノード2 の Jira のベース URL を変更する

Jira が起動できましたら、画面右上の歯車アイコン > システム > 一般設定 で、「設定の編集」ボタンより、ベースURLをノード2の Jira のURLへ変更します。


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

システム メニューの「クラスタリング」を開き、ノードが node1 と node2 の二つ設定されていることを確認します。

4.ノード2 で Jira の課題作成・検索・ファイル添付が機能するか確認する

ノード2の Jira で動作確認します。課題の作成やファイル添付、検索ができるか確認してください。

課題作成

ファイル添付

課題検索

5.ノード1へ切り替え、4で変更した内容が反映されているか確認する

ノード2の Jira を停止し、ノード1の Jira を起動します。
4で作成した課題の参照や、検索ができるか確認してください。

課題表示

課題検索

(情報) 課題がヒットしない場合は、Jira 管理画面 > システム のインデックス再作成を実行してください。





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


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