ちょっと話題の記事

Amazon LinuxにAtlassian JIRA 5.2.5をインストールしてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

諸君 私はアトラシアンが好きだ
諸君 私はアトラシアンが大好きだ

JIRAが好きだ  Confluenceが好きだ
Crowdが好きだ  GreenHopperが好きだ
Fisheyeが好きだ  Crucibleが好きだ
Bambooが好きだ  Cloverが好きだ
会社で 個人で
客先で 自社で
自宅で サーバルームで
データセンターで クラウドで
この地上で運用されるありとあらゆるAtlassianプロダクトが大好きだ

...のっけから誠に個人的な話で取り乱しました。アトラシアンの製品は、課題追跡システムのJIRAや、エンタープライズWikiのConfluence等が有名ですが、その他にもコードレビューをするためのツールだったり、Javaのカバレッジ測定ツール等、ソフトウェア開発環境を担う製品を全般に取り揃えています。

最近はアトラシアン・オンデマンドというSaaSとしてのサービスが始まっているようですが、本エントリーでは普通にサーバにインストールするタイプをご紹介します。とは言え、物理サーバを用意するのは大変ですね。よろしい、ならばAWSだ。そんなわけで今回、Amazon LinuxにJIRAをインストールしてみました。

アトラシアンねぇ…。でもお高いんでしょう?

とりあえずお試しですよ。30日間の評価ライセンスであれば、営業とやり取りすることもなく、Web上から発行できます。MyAtlassianにサインアップしておきましょう。 myatlassian-signup

いざ本格的に利用するとなったら、10ユーザまではなんと1000円/年です。まずは10名未満の小さなチームでトライアルをすると良いです。まぁもちろん1000円というのは明らかな「お試し価格」で、11〜25ユーザは約17万円、26〜50ユーザは約30万円となります。ただ、大人数で使うということは、その価値を認めたということだと思うので、まぁそれはそれで。

AWSの環境構築

えーと、何を隠そう、上記の2エントリはこのエントリを書くための布石でありました。上記の環境を作っておいてください。

また、追加したEBSのマウント先は、上記エントリでは汎用的に/mnt/dataとしていましたが、アトラシアン製品インストール場所と考え/mnt/atlassiansとして作業したいと思います。マウント先を変更しておいてください。また、このディレクトリをec2-userが読み書きできるよう、権限を設定しておいてください。

JIRAのインストール

まず、踏み台(bastion)サーバを介して、アプリケーションサーバにSSHでログインします。JIRAのインストールの際には、「アプリケーション」配置パスと、「データ」配置パスが必要です。それぞれ/mnt/atlassians/jira/mnt/atlassians/jira-homeとします。

早速JIRAをダウンロードします。本エントリで利用したのは Linux 64 Bit Installer 版で、執筆時点の最新バージョンは 5.2.5 でした。現在の最新バージョン及びそのダウンロードURLはJIRAのダウンロードページから確認してください。

$ cd /mnt/atlassians
$ wget http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.5-x64.bin

JIRAのインストーラは、実行形式になっていますので、実行権限を付与して実行します。途中、複数の入力項目がありますので、自分で入力する行をハイライトしておきました。

$ chmod a+x atlassian-jira-5.2.5-x64.bin
$ sudo ./atlassian-jira-5.2.5-x64.bin
Unpacking JRE ...
Preparing JRE ...
Starting Installer ...

This will install JIRA 5.2.5 on your computer.
OK [o, Enter], Cancel 
o
Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
2

Where should JIRA 5.2.5 be installed?
[/opt/atlassian/jira]
/mnt/atlassians/jira
Default location for JIRA data
[/var/atlassian/application-data/jira]
/mnt/atlassians/jira-home
Configure which ports JIRA will use.
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to Startup and Shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
1
JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start
automatically whenever the computer restarts.
Install JIRA as Service?
Yes [y, Enter], No [n]
y

Extracting files ...


Please wait a few moments while JIRA starts up.
Launching JIRA ...
Installation of JIRA 5.2.5 is complete
Your installation of JIRA 5.2.5 is now ready and can be accessed via your
browser.
JIRA 5.2.5 can be accessed at http://localhost:8080
Finishing installation ...

ものの数分で、インストールが完了します。もの凄く簡単ですね。以上のステップが完了すれば、http://localhost:8080でJIRAは既に起動済みです。次のステップとしては、本来はApache httpdの設定を行い、80番ポートでアクセスできるようにすべきです。Security Group的にも、8080ポートは空いていませんので、今すぐに動作確認はできません。

そこでSSHトンネリングですよ。踏み台を経由して、アプリケーションサーバの8080ポートに対して、locahost:8080でアクセスできるようにするのです。(下記10.0.0.115は、私の環境でたまたまアプリケーションサーバに割り当てられたIPアドレスです。このIPアドレスは各環境ごとに異なります。)

$ ssh -N -L 8080:10.0.0.115:8080 bastion

これでhttp://localhost:8080にアクセスしてみると、JIRAのインストーラーが起動すればOKです。このアクセスには少々時間がかかるようです。 jira-installer

MySQLの設定

続いて、MySQLの設定を行います。JIRAにはMySQLのコネクタが含まれていないため、別途ダウンロードして/mnt/atlassians/jira/lib/ディレクトリに配置する必要があります。また、MySQLに対してCREATE DATABASEをしておきます。

$ sudo chmod a+rx /mnt/atlassians/jira-home
$ cd /mnt/atlassians/jira/lib/
$ sudo wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.22/mysql-connector-java-5.1.22.jar 
$ mysql -h ********.********.ap-northeast-1.rds.amazonaws.com -u databaseuser -p
mysql> CREATE DATABASE jira CHARACTER SET utf8 COLLATE utf8_bin;
mysql> exit

Apache httpdの設定

次に、Apache httpdの設定に進みましょう。ここで決めなければならないことが1つあります。JIRAに対してアクセスするURLの形式です。

  1. http://jira.example.com/http://198.51.100.1/など、/(ルート)に対してアクセスする
  2. http://example.com/jirahttp://198.51.100.1/jiraなど、/jiraに対してアクセスする

これによって、設定が少し変わってきます。本エントリーでは、わざわざドメインまで割り当てないこと、また、今後JIRA以外のプロダクトもこのサーバにインストールしていくことを考慮し、後者のパターンで進めたいと思います。

まず、上記の方針の通り、JIRAを/ではなく/jiraで起動するように設定を修正します。/mnt/atlassians/jira/conf/server.xmlの116行目(あたり)にあるContext要素のpath属性を/jiraに設定します。

before:

続いて、同じファイルの110行目(あたり)に、以下の記述のコメントアウトを外し、さらにport8209に設定します。これで、localhost:8209番ポートに対して、AJPというプロトコルで Apache httpd が通信できるようになりました。

<Connector port="8209" redirectPort="8443" enableLookups="false" protocol="AJP/1.3" URIEncoding="UTF-8"/>

/etc/httpd/conf/httpd.confに以下を追記します。

<Location /jira>
  ProxyPass ajp://localhost:8209/jira
</Location>

ここまで完了したら、httpd及びJIRAを再起動しておきます。

$ sudo /etc/init.d/httpd reload
$ sudo su - jira
$ /mnt/atlassians/jira/bin/stop-jira.sh
$ /mnt/atlassians/jira/bin/start-jira.sh
$ exit

Webインターフェイスのインストーラを実行する

以上が完了すれば、http://54.249.xx.xx/jiraでJIRAにアクセスできるようになります。引き続き、インストールウィザードを完了させましょう。

データベースは「外部」を選択し、RDSのサーバ名等を入力しましょう。 install-jira-1

続いて、このJIRAの名前や、JIRAのURLをアプリケーションに対して設定します。今回はIPアドレスをそのまま使いますが、ドメインを割り当てた場合等はそのドメイン名を利用してください。localhost等は利用しないでください。 install-jira-2

その下には、ライセンスキーの入力欄があります。ライセンスキーは前述のMyAtlassianで発行できます。発行の際には、ここに表示されている「サーバーID」が必要になりますので、コピペで利用しましょう。 jira-install-2b

次は管理者アカウントの登録です。こちらも、特に迷うことはないと思います。 install-jira-3

最後に、メールサーバの設定です。すぐに利用できるSMTPがあるのであれば、その設定を行ってください。適切なSMTPサーバがない場合は、ひとまず「後で」を選択しておきましょう。EC2のlocalhostからのメール送信はかなり制限があるので、お薦めしません。 install-jira-4

以上でインストールウィザードは完了です。以下の画面からデモプロジェクトを作ってみるもよし、プロジェクトを作成するもよし、スキップするのもまた一興。 jira-installed

タイムゾーンの設定

最後に一つだけ。EC2サーバのタイムゾーンはTokyoリージョンだろうと何だろうと、とにかくUTCになっています。そのため、今インストールしたJIRAも、デフォルトのタイムゾーンがUTCです。恐らく日本で使うと思いますので、この設定だけ調整しておきましょう。右上の「管理」をクリックして、管理画面に遷移します。 setting-jira-1

システムというカテゴリの中から「一般設定」を選択します。 setting-jira-2

管理画面では、Linuxにおけるsudo時のように、適宜パスワードを確認されますので、適切に応答します。 setting-jira-3

次の画面で、タイムゾーンがUTCになってしまっていることを確認。 setting-jira-4

一番下にある「設定の編集」ボタンを押下。 setting-jira-5

タイムゾーンについて、地域を「アジア」にし、タイムゾーンを「(GMT+09:00) Tokyo」にして保存すれば、完了です。 2013-01-31_2314-setting-jira-6