サーバ

JIRA 4.2 のインストール/アップグレード(バージョン 4.1 から)

JIRA はAtlassian社のJava ベースのバグトラッキングシステムで、ApacheCodehausでも使われています。
とっつきやすさと高機能をうまく両立しており、また見た目が洗練されている素晴らしい製品です。
オープンソースプロジェクトへは無償ライセンスを提供してくれるので私のプロジェクトでも使っています

今回はアップグレードですが、新規インストールの手順もほとんど同じです。

JIRA のバージョンは 4.1 から 4.2 になりました。

1. 現行 JIRA のバックアップ、新規インスタンスでインポート
既存 JIRA インスタンスより、
ADMINISTRATION > Import & Export > Backup Data to XML
File name: /Users/yusukey/jirabackup101021.xml > "Backup"

無事成功すると Data exported to: /Users/yusukey/jirabackup101021.xml と表示されます。
ここで現行インススタンスはシャットダウンします。

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspaより atlassian-jira-enterprise-4.2-standalone.tar.gz をダウンロードしました。

3. MySQL への接続設定
既存データベースに接続させることもできるけれども、最適なスキーマを作るには新規にデータベースを用意した方が良いとのことです。

$ ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 190447
Server version: 5.1.48 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database jira420 character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> ^DBye

conf/server.xml 内に以下の様に記述し、コネクションプールを設定&コンテクストパスを"/jira"に設定。

<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<!-- <Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:${catalina.home}/database/jiradb"
username="sa"
password=""
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20"
/>
-->
<Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
username="yusukey"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jira410?useUnicode=true&amp;characterEncoding=UTF8"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20" />

4. JIRA のデータソース設定
atlassian-jira/WEB-INF/classes/entityengine.xml を修正
接続 DB を hsql から mysql に、schema-name を削除。

99:    <datasource name="defaultDS" field-type-name="hsql"
100: schema-name="PUBLIC"

99: <datasource name="defaultDS" field-type-name="mysql"
100: <!--削除-->

5. メールセッションの設定
conf/server.xml 内に以下の様に追記してメールセッションを有効にします。

<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<Resource name="mail/jiraMail"
auth="Container"
type="javax.mail.Session"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="jira@yusuke.homeip.net"
password="****"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>

また、atlassian-jira/WEB-INF/lib/ 以下の activation-1.1.1.jar と mail-1.4.1.jar を lib/ 直下に移動します。

atlassian-jira-enterprise-4.1$ mv ./atlassian-jira/WEB-INF/lib/activation-1.1.1.jar lib/
atlassian-jira-enterprise-4.1$ mv ./atlassian-jira/WEB-INF/lib/mail-1.4.1.jar lib/

これは Tomcat レベルでメールセッションを設定する場合、クラスパスの階層の兼ね合いから JIRAの WEB-INF/lib 以下に JavaMail 関連のライブラリがあるとメール送信時に NoClassDefFoundError が発生してしまうからです。
JIRA の管理画面で smtp サーバを設定する場合はこの手順は不要です。
しかし、JIRA の管理画面からは Gmail 等 SSL しか受け付けない SMTP サーバを設定する場合必要になります。
参考:
Using Gmail as a JIRA Mail Server
Configuring JIRA to Send SMTP Mail

6. jira.home の設定
atlassian-jira/WEB-INF/classes/jira-application.properties の jira.home に任意のディレクトリを絶対パスで指定します。

jira.home=/Users/yusukey/jirahome

7. 起動パラメータの調整
ヒープサイズ、Permanent領域サイズを bin/setenv.sh では以下のように設定しました。
JVM_MINIMUM_MEMORY="170m"
JVM_MAXIMUM_MEMORY="170m"
JIRA_MAX_PERM_SIZE=160m

8. JIRA の起動
startup.sh とかから起動。

9. データのインポート
JIRA にアクセスし、インポート。
Import Existing Data
File name: /Users/yusukey/jirabackup101021.xml

10. アップグレード完了!
以上でバージョンアップが完了。

関連記事:
JIRA 4.1 のインストール/アップグレード(バージョン 4.0.2 から) – 侍ズム
JIRA 4.0.0 から JIRA 4.0.2 へのアップグレード – 侍ズム
アトラシアン(Atlassian)製品の価格と購入方法
Atlassian が JIRA4 をリリース – 指名ユーザライセンス制を導入 – 侍ズム
JIRA 3.13.1 へ FishEye プラグイン 2.3 をインストール
JIRA をバージョン 3.13.1 へアップデート – 侍ズム
FishEye 1.6.3 のインストール
JIRA をバージョン 3.12.3 へアップデート