サーバ

JIRA 5.2 のインストール/アップデート(バージョン 5.0.4 から) #JIRA #atlassian

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

今回は5.0.4から5.2へのアップグレードをしました、新規インストールの手順もほとんど同じ。

1. 現行 JIRA のバックアップ、新規インスタンスでインポート
既存 JIRA インスタンスより、
ADMINISTRATION > Import & Export > Backup System
File name: jirabackup121114 > "Backup"

無事成功すると Data exported to:
/Users/yusukey/jirahome/export/jirabackup121114.zip
と表示されます。(JIRA4.4からはzipで圧縮されるようになった)
ここで現行インススタンスはシャットダウンします。

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/downloadより atlassian-jira-5.2.tar.gz をダウンロードします。

3. データベースの作成
ウチではMySQLを使っているので以下の様な感じ。

./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 71
Server version: 5.X.XXMySQL 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 jira520 character set utf8;
Query OK, 1 row affected (0.03 sec)

以前データベースへのコネクションプールの設定は conf/server.xml 内にしていましたがこれはJIRAの管理画面から設定するように変更になりました。

4. JIRA Configuration Toolによるデータソース、JIRA_HOMEの設定
以前はatlassian-jira/WEB-INF/classes/entityengine.xmlを手動してデータベース接続先を指定していましたが、JIRA4.4以降ではJIRA Configuration Toolという簡単なGUIで設定をできるようになりました。Configuration Toolはbin/config.shまたはconfig.batで起動できます。
または初回起動後にWebUIで設定することもできるそうです。

Configuration Toolの画面

今回、JIRAはMySQLのJDBCドライバを同梱しなくなったようで以下のように古いJIRAインスタンスから手動でlibディレクトリに配置する必要がありました。Configuration Tool起動後でも大丈夫。

cp ../jira-5.0.4/lib/mysql-connector-java-5.1.10.jar lib

データベース接続の設定内容は $JIRA_HOME/dbconfig.xml に、またJIRA HOMEはatlassian-jira/WEB-INF/classes/jira-application.propertiesに保存され、手動で変更することも可能です。

ちなみにdbconfig.xmlの内容はこんな感じになります。

<?xml version=”1.0″ encoding=”UTF-8″?>

<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>mysql</database-type>
<jdbc-datasource>
<url>jdbc:mysql://localhost:3306/jira520?useUnicode=true&amp;characterEncoding=UTF8</url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<username>mysqluser</username>
<password>********</password>
<pool-size>15</pool-size>
<validation-query>select 1</validation-query>
</jdbc-datasource>
</jira-database-config>

以前はMySQLで文字化け対策としてJDBCURLに useUnicode=true&characterEncoding=UTF8 と指定していましたが、Configuration Toolは自動的にこれらを追加してくれるみたいです。

5. server.xmlの設定
ウチのサーバではApacheをフロントに立ててAJPで接続しているのでAJPコネクタをセットアップします。また使わないHTTPコネクタは無効に設定。


<Server port="9005" shutdown="SHUTDOWN">
.
.
.
<!--
<Connector port="8080"
.
.
.

</Engine>
<Connector port="9009"
maxHttpHeaderSize="8192" maxThreads="20" minSpareThreads="20" maxSpareThreads="20" useBodyEncodingForURI="true"
protocol="AJP/1.3" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="600000" disableUploadTimeout="true" />
</Service>
</Server>

6. JIRA の起動
startup.sh より起動。start-jira.sh というスクリプトもあるけど何が違うのかは不明。

7. データのインポート
JIRA にアクセスし、インポート。
以前は必要なかったのですがエクスポートしたファイルは JIRA_HOMEのimportディレクトリに配置しておく必要があるようです。

jirahome/export$ cp jirabackup121114.zip ../import/

Import Existing Data
File name: jirabackup121114.zip

便利!

インポート中の状況表示

今回接続先DBを間違えて古いものを指定しまい、データのインポート時に以下のようなエラーが発生してしまいました。

Unexpected error occurred during import: org.ofbiz.core.entity.GenericEntityException: while inserting: [GenericEntity:UserHistoryItem][id,12752][username,nekogeko][data,project=”AVT” and fixVersion=”1.0″ order by priority desc, createdDate][entityId,49631403][lastViewed,1327518254570][type,JQLQuery] (SQL Exception while executing the following:INSERT INTO userhistoryitem (ID, entitytype, entityid, USERNAME, lastviewed, data) VALUES (?, ?, ?, ?, ?, ?) (Deadlock found when trying to get lock; try restarting transaction))

JIRA_HOME/dbconfig.xml を手動で修正してJIRAを再起動してインポートしなおしたら復旧しました。

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

9. メールセッションの設定
以前、JIRA の管理画面からは Google Apps 等 SSL しか受け付けない SMTP サーバを設定することはできず、server.xmlにメールセッションというのを設定しておく必要があったのですが今回から(?) PROTOCOL: SECURE_SMTP というのを指定することで SSL で SMTP サーバに接続できるようになりました。

メールサーバの設定画面

関連記事:
JIRA 5.0.4 のインストール/アップデート(バージョン 4.4.3 から) #JIRA #atlassian – 侍ズム #samuraism
JIRA 4.4.3 のインストール/アップデート(バージョン 4.4 から) #JIRA #atlassian – 侍ズム #samuraism
JIRA 4.4 のインストール/アップデート(バージョン 4.3.4 から) #JIRA #atlassian – 侍ズム
JIRA 4.3.4 のインストール/アップデート(バージョン 4.3 から) – 侍ズム
JIRA 4.3 のインストール/アップデート(バージョン 4.2.2 から) – 侍ズム
JIRA 4.2.2 のインストール/アップデート(バージョン 4.2.0 から) – 侍ズム
JIRA Git Plugin のインストール – 侍ズム
JIRA 4.2 のインストール/アップグレード(バージョン 4.1 から) – 侍ズム
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 へアップデート