GitLab と連携する Jira
Jira Software とは
Jira Software は、あらゆるタイプのチームが作業を管理するのを支援するために設計された製品ファミリーの一部です。元々、Jira はバグおよび Issue トラッカーとして設計されました。しかし今日、Jira は要件管理やテストケース管理からアジャイルソフトウェア開発まで、あらゆる種類のユースケース向けの強力な作業管理ツールに進化しています。
Jira のさまざまな用途について詳しくは、Get started with Jira Software をご覧ください。
Jira Server のセットアップ方法
- Jira Server のインストール用に GitLab Sandbox Cloud を使用して新しいホストを作成します。これは GitLab インスタンスとは別にすべきです。GitLab 連携で HTTPS を使用するように Jira をセットアップするので、この新しいホストでポート 443 が利用可能であることを確認します。
前提となるソフトウェア
- Jira は java JVM を使用するため Java をインストールする必要があります。
- HTTPS の証明書を生成するために certbot および python3-certbot-apache をインストールする必要があります。
Jira と前提条件のインストール
Jira は Java JVM を使用するため Java をインストールします
apt install openjdk-11-jdk openjdk-11-jreインストール用に Jira ソフトウェアを保存するフォルダを作成します。
mkdir jira && cd jiraAtlassian Jira Web サイト からダウンロードしたい Jira のバージョンを選択します。
サポートされているすべての GitLab 連携をテストできるよう、Jira 8.13 バージョンを使用します。ただし、これは OAuth2.0 連携では機能しないので、後で接続テストのために Jira をアップグレードします。
ダウンロードしたい Jira バージョンを選択します。

Submit ボタンを承諾し右クリックしてダウンロード URL を取得します。(ファイルダウンロード時に「リンクのアドレスをコピー」を選択)
wget <URL>コマンドで Jira インストーラーをダウンロードします。例:wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.7-x64.bin
以下を使ってスクリプトを実行可能に変更します
chmod a+x atlassian-jira-software-8.13.7-x64.binインストーラーを実行し、OpenJDK のインストールを求められた場合は Y を入力します。
sudo ./atlassian-jira-software-8.13.7-x64.bin
インストール手順に従い、インストールで尋ねられたすべての質問に対してデフォルトを入力します。

Jira セットアップを実行します。30 日間のトライアル期間がアクティベートされます。Jira を手動でセットアップを選択します。
localhost:8080 で Jira がセットアップされ、アクセスできるようになりました。
使用前に Jira をセットアップする必要があります。ブラウザからアクセスした後、
I'll set it up myselfを選択します。
次のステップで
Built-in (for evaluation or demonstration)を選択します。
データベースの作成を待つ間、atlassian アカウントにログインし https://my.atlassian.com/product を開きます。サーバー用のトライアルライセンスを生成します。

次のページで、Product に
Jira Software、License type にJira Software (Data Center)を選択します。残りのフィールドには任意の詳細を入力します。Server IDは、サーバーがデータベースのセットアップを完了したときに取得できます。
データベース作成が完了した後、次のセクションはアプリケーションプロパティの設定です。デフォルトのままにし、
Nextをクリックします。
生成されたライセンスキーをコピーして貼り付け、Jira セットアップでライセンスを更新します。


Jira Admin ユーザーを作成し、次のステップに進みます。
セットアップを続行し、テストプロジェクトを作成します。“GITLAB”。
テストに使用するテスト Issue を作成します。
HTTPS 接続を有効にするための Let’s Encrypt 証明書の追加
NOTE: HTTPS 接続は DVCS Connector に 必須 です
証明書を生成できるよう certbot をインストールします
sudo apt-get update && apt-get upgrade sudo apt-get install certbotオプションで Certbot Apache プラグインをインストールできます:
sudo apt-get install python3-certbot-apacheドメイン用の証明書を生成します。プロンプトが表示されたらメールアドレスを入力します。
sudo certbot certonly --standalone -d www.example.com
すべて順調にいけば、新しい SSL が以下の場所に発行されます。以下のディレクトリに移動してファイルを表示します。
cd /etc/letsencrypt/live/example.com ls以下のリストが表示されるはずです:
- cert.pem
- chain.pem
- fullchain.pem
- privkey.pem
NOTE:
Problem binding to port 80: Could not bind to IPv4 or IPv6.エラーが発生した場合は、ポート 80 を使用しているアプリケーションの PID を確認し、そのポートで実行中のアプリケーションを停止してから証明書の生成を再試行します。
# Check with lsof lsof -i :80 # You can also use netstat -antlup | grep 80 # If it's Apache, you can run the following: systemctl stop apache2 systemctl disable apache2
キーペアと証明書を Java Keystore に変換する
NOTE:
残りの例では、dwainaina-gitlab-jira-test-runner.sr.gitlab.support をドメインとして使用します。
フルチェーンと秘密鍵の両方を含む PKCS12 を作成します。これには OpenSSL がインストールされている必要があります。
openssl pkcs12 -export -out /tmp/dwainaina-gitlab-jira-test-runner.sr.gitlab.support.p12 \ -in /etc/letsencrypt/live/dwainaina-gitlab-jira-test-runner.sr.gitlab.support/fullchain.pem \ -inkey /etc/letsencrypt/live/dwainaina-gitlab-jira-test-runner.sr.gitlab.support/privkey.pem \ -name tomcat値は適切に置き換えてください。
nameにはtomcatを指定しています。エイリアスは好きなものに変更できますが、この名前を覚えておいてください。以下のコマンドで
.p12ファイルを.jksファイルに変換します。<your-domain-name>をドメイン名に、<password>を.p12ファイルの生成に使用したパスワードに置き換えます:keytool -importkeystore \ -deststorepass <password> -destkeypass <password> -destkeystore /tmp/<your-domain-name>.jks \ -srckeystore /tmp/<your-domain-name>.p12 -srcstoretype PKCS12 -srcstorepass <password> \ -alias tomcat生成された JKS ファイルを /opt/atlassian/jira/conf にコピーします
cp /tmp/dwainaina-gitlab-jira-test-runner.sr.gitlab.support.jks /opt/atlassian/jira/conf/ディレクトリを
/opt/atlassian/jira/conf/に変更し、server.xmlを編集します。server.xmlファイルを編集する前に、すぐにロールバックする必要がある場合に備えて、まずバックアップを取ることを検討してください。cd /opt/atlassian/jira/conf cp server.xml server_backup.xml vim server.xmlHTTP を無効にするためコメントアウトします。
<!-- <Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false"/> -->server.xmlの</Service>ブロックの閉じ括弧の直前に以下を追加します<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" sslEnabledProtocols="TLSv1.2,TLSv1.3" clientAuth="false" useBodyEncodingForURI="true" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" keyAlias="tomcat" keystoreFile="conf/dwainaina-gitlab-jira-test-runner.sr.gitlab.support.jks" keystorePass="Jira_PASSWORD" keystoreType="JKS" />keyAlias、keystoreFile、keystrokePassの値は適切に置き換えてください。すべてのリクエストが HTTPS で処理されるよう、conf フォルダの
web.xmlを編集して以下を追加します。やはりweb.xmlファイルを編集する前に、すぐにロールバックする必要がある場合に備えて、まずバックアップを取ることを検討してください。cd /opt/atlassian/jira/conf cp web.xml web_backup.xml vim web.xml<web-app ... version="3.1">タグの直後に以下の行を追加します:<security-constraint> <web-resource-collection> <web-resource-name>all-except-attachments</web-resource-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspa</url-pattern> <url-pattern>/browse/*</url-pattern> <url-pattern>/issues/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>Optional: Jira ホームディレクトリがデフォルトの場所にない場合は Jira ホームディレクトリを指定 します:
vim <installation-directory>/atlassian-jira/WEB-INF/classes/jira-application.properties jira.home = /PATH/TO/JIRA-HOMEtomcat を再起動し、サイトが HTTPS で利用可能か確認します。tomcat という名前のサービスが見つからない場合は、jira サービスを再起動します:
systemctl status jira systemctl restart jira systemctl status jiraNOTE: tomcat を再起動した後でも HTTPS ポートにアクセスできない場合があります。以下のコマンドを実行してポートを有効化し、設定を適用します:
echo 'net.ipv4.ip_unprivileged_port_start=0' > /etc/sysctl.d/50-unprivileged-ports.conf sysctl --systemこれでサイトが HTTPS アドレスとして利用できるはずです。設定に使用した認証情報を使用してログインしてください。
NOTE: それでも HTTPS でサイトにアクセスできない場合は、
/opt/atlassian/jira/conf/<your-domanin-name>.jksファイルの権限を確認します。すべてのユーザーが少なくともファイルを読めるようにする必要があります。<your-domain-name>をドメイン名に置き換えます。ll /opt/atlassian/jira/conf/<your-domanin-name>.jks #If you need to change permissions, set it to at least 444 and restart the jira service chmod 444 /opt/atlassian/jira/conf/<your-domanin-name>.jks #Restart the jira service for changes to take effect systemctl status jira systemctl restart jira systemctl status jira
Jira チケットの一般的なトラブルシューティング手順
- ドキュメントに記載されている一般的な既知のエラーをご確認ください: Jira - Troubleshooting と Troubleshooting your DVCS connection
- お客様がどの連携について言及しているかを明確にしてください。GitLab Jira Integration と Jira Development Panel integration があります。
- お客様の Jira バージョンを取得することも役立ちます。特に: Cloud か Server か?Server ならどのバージョン?(Note: 8.14 以降は リンク方法が異なります)
- 設定を確認し、手順を確認します。
NOTE:
一部のお客様は 2 つの連携の設定を混同しており、例えば GitLab Jira Integration で作成された
jiraユーザーを Jira Development Panel 用の DVCS アカウントのセットアップ用 Term/Account として使用している場合があります。これは通常 0 リポジトリしか持たないjiraユーザーの個人 Namespace のリポジトリをロードします。 - 設定がすべて正しい場合、エラーが発生している場所に応じてログを取得する必要があるかもしれません。Jira のログファイル を確認し、エラーを再現しながら
tail JIRA_HOME/log/atlassian-jira.logを実行する必要があるかもしれません。Jira DVCS connection has wrong oauth scope: Issue when integrating with Jira DVCSの場合、回避策 を確認してください。 - 役立つ Rails チートコード のリストもあります。これは GitLab 上の Jira 設定の値を確認する必要がある場合に便利です。
bfd74782)