サーバ

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

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

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

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

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

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

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

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

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

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database jira410 character set utf8;
Query OK, 1 row affected (0.07 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" />

JDBC ドライバ mysql-connector-java-5.0.4-bin.jar を lib 以下にコピー。MySQLのドライバは同梱されているのでドライバのコピーは不要でした。

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 の起動
バージョン4.1から起動時に以下の様に Because you have issues! というファンキーなロゴが表示されるようになったみたいです。


MMMMMMMMMM .,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMM. OMM. ~MM.. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMDMMZ7MMMMMMMMN7DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMDMMMMMMMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMZ IMMM ..MMN= ,8MO 8 IN +DM8 ?MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMM ..OI . 8I...MMMO 8 IN M7 ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMN, . +MMMMMO 8 IN =O M~ ~..$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMM~... +MMMMMMO 8 IN . . IN I..+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMI . OMMMMMMMO 8 IN := ,O =8 MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMD ... .MMMMMMO 8 IN =O + .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMM, =N. .7MMMM~. 8 IN =O :. =M. .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMM, . MMD. .+MMM= :$M IN =O , IM: .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
____ _ _ _
| _ \ | | (_) | |
| |_) | ___ ___ __ _ _ _ ___ ___ _ _ ___ _ _ | |__ __ ___ _____ _ ___ ___ _ _ ___ ___| |
| _ | / _ \/ __/ _` | | | / __|/ _ \ | | | |/ _ \| | | | | '_ \ / _` \ \ / / _ \ | / __/ __| | | |/ _ \/ __| |
| |_) | __/ (_| (_| | |_| \__ \ __/ | |_| | (_) | |_| | | | | | (_| |\ V / __/ | \__ \__ \ |_| | __/\__ \_|
|____/ \___|\___\__,_|\__,_|___/\___| \__, |\___/ \__,_| |_| |_|\__,_| \_/ \___| |_|___/___/\__,_|\___||___(_)
__/ |
|___/

JIRA Standalone Edition
Version : 4.1

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

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

関連記事:
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 へアップデート