FessでJIRA/Confluenceを高速に横断検索する
この記事では、全文検索サーバー Fessを利用してJIRAの課題(issue)やConfluenceのwikiコンテンツ等を横断検索する方法を紹介します。
これはFess上で実際にissueの検索を行っている画面のスクリーンショットです。
JIRA/Confluenceとは?
JIRAはAtlassian社が開発したソフトウェアで、課題管理、進捗管理、スケジュール管理など、プロジェクト全般を広く管理することができます。
Confluenceは同じくAtlassian社のソフトウェアで、JIRAと連携して、wikiで情報共有を行うことができます。
導入手順
FessでJIRA/Confluenceを横断検索するための手順を説明します。
導入の流れは次のようになります。
- プラグイン追加
- Fessの起動
- 認証設定
- クローラの設定・実行
1. プラグイン追加
Fessの現バージョン(12.2.0)には、デフォルトでは含まれていない機能であるため、自分で追加する必要があります。
ここからfess-ds-atlassian-12.2.0.jarをダウンロードします。
ダウンロードしたjarファイルは[Fessのパス]/app/WEB-INF/lib/
に配置します。
2. Fessの起動
このページを参考にFessを起動します。
JIRAのサーバー版を利用している場合、デフォルトではhttp://localhost:8080/
で起動します。
Fessもデフォルトではhttp://localhost:8080/
で起動するため、そのままでは衝突してしまいます。
衝突を避けるには、例えばFessを起動する際、
$ ./bin/fess -Dfess.port=8081
というような感じで、ポート番号を指定すればよいです。
3. 認証設定
データを取得するために認証情報をパラメータとして与える必要があり、そのための設定を行います。
認証方法としてはBasic認証またはOAuthを利用します。
3A. Basic認証の場合
利用しているAtlassian製品のアカウントのユーザー名とパスワードをパラメータとして与えます。
ここでは、特にJIRA/Confluence側で設定することはありません。
3B. OAuthの場合
Atlassian製品のOAuthについてはこのページ通りに行います。
認証情報として必要になるのは、config.properties
内の「secret」「jira_home」「consumer_key」「private_key」「access_token」です。
このチュートリアルにはJIRAのOAuthについて掲載されていますが、Confluenceでも同様の方法で認証することが出来ます。
以下、やる事だけを簡単にまとめました。
3B-1. RSA鍵生成
openssl genrsa -out jira_privatekey.pem 1024
openssl req -newkey rsa:1024 -x509 -key jira_privatekey.pem -out jira_publickey.cer -days 365
openssl pkcs8 -topk8 -nocrypt -in jira_privatekey.pem -out jira_privatekey.pcks8
openssl x509 -pubkey -noout -in jira_publickey.cer > jira_publickey.pem
3B-2. OAuthTutorialClientの設定
hg clone https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples
cd atlassian-oauth-examples/java
mvn clean compile assembly:single
cd target
java -jar OAuthTutorialClient-1.0.jar requestToken
最後のコマンドではエラーが出ますが、config.properties
を生成しているだけなので気にしなくて大丈夫です。
生成されたtarget
内のconfig.properties
は次の様に設定します。
jira_home=http\://localhost\:8080
consumer_key=OauthKey
private_key=MIICdw...AQE\=
jira_home
はJIRAのURL、
consumer_key
はそのままOauthKey
、
private_key
はjira_privatekey.pcks8
の中身から改行を削除したもの
に設定します。
若干エスケープが必要な文字があるので注意してください。
3B-3. JIRA/Confluence側の設定
アプリケーションリンクの設定(/plugins/servlet/applinks/listApplicationLinks
)を開きます。
「リンクするアプリ〜」に適当なURL(例: http://example.com/
)を入力して、新しいリンクを作成します。「入力したURLから応答がありません。」と言われますが続行します。
Link applicationsダイアログで必要事項を適当に入力して続行します。
必要事項を入力して続行します。
コンシューマーキーはconfig.properties
と同じOauthKey
にします。
公開鍵はjira_publickey.pem
の中身を貼り付けます。
3B-4. OAuth Dance
java -jar OAuthTutorialClient-1.0.jar requestToken
これを実行すると次のように出力されます。
Token: xe8yADzgduOc1GwbLcKUQbyAbKlPhVTv
Token secret: lGk0heoiVWKgyEVM1R5ANTJVfKMkKuiS
Retrieve request token. Go to http://localhost:8080/plugins/servlet/oauth/authorize?oauth_token=xe8yADzgduOc1GwbLcKUQbyAbKlPhVTv to authorize it.
指定されたURLを開き、「許可」すると、確認コードが表示されます。
確認コードを利用してアクセストークンを取得します。
java -jar OAuthTutorialClient-1.0.jar accessToken cEzTBX
これでJIRA/Confluence側のOAuthの設定が完了します。
4. クローラの設定・実行
JIRA/Confluenceをクロールするための設定をします。
公式ドキュメントのこのページも参考にしてください。
4-1. クローラの設定
Fessの管理画面を開き、クローラ > データストア
と移動し、新規作成をします。
新規作成画面では、
- 名前
- ハンドラ
- パラメータ
- スクリプト
の4項目を設定して、作成を完了します。
「名前」には好きな文字列を入力してください。
「ハンドラ」はJiraDataStore(ConfluenceDataStore)を選択してください。
「パラメータ」は次のようなフォーマットで入力してください。
home=http://localhost:8080
oauth.consumer_key=OauthKey
oauth.private_key=MIICdw...QE=
oauth.secret=cEzTBX
oauth.access_token=W1jjOV...ye
キーと値の説明は次のようになります。
キー | 値 |
---|---|
home | JIRA/ConfluenceのURL |
oauth.consumer_key | コンシューマーキー (OAuth) |
oauth.private_key | 秘密鍵 (OAuth) |
oauth.secret | 認証キー (OAuth) |
oauth.access_token | アクセストークン (OAuth) |
basicauth.username | ユーザ名 (Basic認証) |
basicauth.password | パスワード (Basic認証) |
issue.jql | JQL (JIRAのみ) (任意) |
oauth.*
については、config.properties
の中身と対応しています。
また、この例ではOAuthを利用していますが、Basic認証またはOAuthのどちらかの認証情報が必要です。
「スクリプト」はJIRAとConfluenceで異なります。
JIRA
url=issue.view_url
title=issue.summary
content=issue.description + issue.comments
last_modified=issue.last_modified
取得出来る値のキーと値の説明は次のようになります。
キー | 値 |
---|---|
issue.view_url | issueを閲覧するURL |
issue.summary | issueの要約 |
issue.description | issueの説明 |
issue.comments | issueのコメント |
issue.last_modified | issueの最終更新日時 |
Confluence
url=contentview_url
title=content.title
content=content.body + content.comments
last_modified=content.last_modified
キー | 値 |
---|---|
content.view_url | ページを閲覧するURL |
content.title | ページのタイトル |
content.body | ページの中身 |
content.comments | ページのコメント |
content.last_modified | ページの最終更新日時 |
4-2. ジョブスケジューラの作成
4-1で作成したクロールをクリックすると、クロール設定が開き、そこから「新しいジョブの作成」をします。
後からでも変更はできるので、とりあえず試す場合はそのままの設定で大丈夫です。
詳しいジョブスケジューラの設定については、このページを参考にしてください。
4-3. クローラの実行
システム > スケジューラ
と移動し、4-2で作成したジョブを開きます。
その画面から、「今すぐ開始」をします。
状態が「実行中」から「有効」になるまで待ちます。
4-4. 検索のテスト
これでFessでJIRA/Confluenceを横断検索することが出来るようになりました。
Author And Source
この問題について(FessでJIRA/Confluenceを高速に横断検索する), 我々は、より多くの情報をここで見つけました https://qiita.com/deka0106/items/af797e89404c83d95a4b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .