DOCS
インテグレーションガイド / JIRA Software
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
JIRA Softwareは、組織内のチーム間のコラボレーションを可能にするプロジェクト管理ツールです。 このガイドでは、JIRAで作成された新しいインシデントがPagerDutyに新しいインシデントを作成し、JIRAで「完了」したインシデントはPagerDutyで解決になるように、JIRAとPagerDutyを設定するプロセスについて説明します。
PagerDutyでの設定
- ConfigurationメニューからServicesを選択します。
- Servicesページ上での設定:インテグレーションのための新しいサービスを作成する場合は、+Add New Serviceをクリックします。既存のサービスにインテグレーションを追加する場合は、インテグレーションを追加したいサービスの名前をクリックします。 その後、Integrations タブをクリックし、+New Integrationボタンをクリックします。
- Integration Typeメニューからアプリを選択します。 このガイドを使用してJIRAと統合するには、integration typeとしてJIRA Softwareを選択してください。 次に、Integration Nameを入力します。インテグレーション用の新しいサービスを作成する場合は、「General Settings」で、新しいサービスのNameを入力します。 次に、Incident Settingsで、新しいサービスのEscalation Policy、Notification Urgency、Incident Behavior を指定します。
- Add ServiceまたはAdd Integrationボタンをクリックして、新しいインテグレーションを保存します。 あなたはサービスのIntegrationsページにリダイレクトされます。
- .新しいインテグレーションのためのIntegration URLをコピーします。
JIRAでの設定
注意:下記の手順を実行するには、JIRAの管理者である必要があります。
- AdministrationメニューのSystemを選択します。
- 左側のメニューのAdvancedのリンクグループにあるWebHooksをクリックし、右上隅にあるCreate a WebHookをクリックします。 新しいWebhookにNameを付け、StatusがEnabledに設定されていることを確認してから、前の手順3でコピーしたIntegration URLをURLフィールドに貼り付けます。Issueの列の下にあるcreatedとupdatedをチェックして、JIRAがこのwebhookを使用して、問題が起きたときにPagerDuty内にインシデントを作成したり、問題にJIRA側で完了とマークした時にPagerDuty内で対応するインシデントが解決されたことにするといったことができるようにします。 デフォルトでは、JIRA側でのすべての問題が含まれますが、イベントチェックボックスの上のテキスト領域に(JQLを使ってして)検索条件を入力することで、特定の問題をフィルタリングできます。
電子メールベースのインテグレーションのためのガイド
必要に応じて、電子メールベースのサービスを作成してJIRAと統合することもできます。 このガイドでは、PagerDutyとJIRAアカウントを設定する方法について説明します。これにより、JIRAで新しい問題が作成されたときに、PagerDutyインシデントがトリガされます。同様に、PagerDutyがJIRAの中にチケットを作るように設定する方法も説明します。https://github.com/ryanhoskin/pd2jira にあるオープンソースのツールを使います。
PagerDutyでの設定
- アカウントのConfigurationタブで、プルダウンメニューからServicesを選択します。
- Add New Serviceをクリックします。
- あなたのサービスのNameを入力します。さらにEscalation Policyを選択します。 Integration Typeメニューの横にある「Select a tool」にJIRAと入力します。 Add Serviceをクリックしてください。
- Integration Settingsセクションで Integration Emailをコピーします。
JIRAでの設定
- PagerDutyとインテグレ―トするには、まずさっき作成したPagerDuty電子メールサービスに関連付けてJIRAユーザを作成する必要があります。 JIRAは一般公開されていないプロジェクトでは電子メール通知を送信できないため、ユーザを作成する必要があります。Settingsアイコンをクリックし、User managementを選択します。
- Create userをクリックします。
- ユーザーのusernameとnameを入力します。 新しいユーザーの電子メールアドレスとして、ステップ6(上記)のemail addressを使用します。 完了したら、Create userボタンをクリックします。 注:ユーザーを作成するとすぐに、PagerDutyで作成した新しいサービス内のインシデントがトリガーされます。 それを受けたりインシデントを解決したりすることができます。
- 次に、新しいNotification Scheme(通知スキーム)を作成するか、新しいユーザーを既存の通知スキームに追加する必要があります。 このガイドでは、新しい通知スキームを作成します。Settingsアイコンをクリックし、Issuesを選択します。
- 左側のメニューでNotification Schemesを選択し、Add Notification Schemeを選択します。
- 通知スキームのnameを入力し、Addボタンをクリックします。
- Operationsの下のAddをクリックして、問題が作成されたときの新しい通知を追加します。
- Single Userラジオボタンをオンにして、作成したPagerDutyアカウントに関連付けられているユーザーを選択します。 次に、Addボタンをクリックします。
- 次に、PagerDutyに通知するプロジェクトにこの通知スキームを関連付ける必要があります。 Settingsアイコンをクリックし、Projectsを選択します。
- PagerDutyに関連付けたいプロジェクトを選択します。 このガイドでは、PagerDutyでインシデントをトリガするためにのみ使用される「Customer Critical」というプロジェクトを使用しています。
- 左側のメニューでNotificationsをクリックし、ActionsメニューのUse a different schemeを選択します。
- 作成した通知スキームを選択して、Associateを選択します。
- プロジェクトで新しいJIRAの問題(訳注:issue)を作成したら、今度はPagerDutyでインシデントが発生します!
PagerDutyインシデントを使ったJIRAチケットのオープン
どんなサービスからのPagerDutyインシデントでもそれがトリガーされた時にJIRAチケットが開かれるようにしたい場合は、次のオープンソースツールを以下の手順に従って使ってください。:https://github.com/ryanhoskin/pd2jira
- あなたはこれをHerokuでホストすることも、自分でホストすることもできます。これを自分でホストする場合は、PHPスクリプトの先頭に変数を設定する必要があります。これを済ませたら、5に進んでください。Herokuでホストする場合は、2に進みます。
- 最初にHerokuアカウントを設定する必要があります。 JIRAインシデントをトリガしたいHerokuアカウントとPagerDutyサービスを設定したら、https://github.com/ryanhoskin/pd2jira にアクセスして、「Deploy to Heroku」をクリックします。
- Herokuでは、JIRA_USERNAME(JIRAチケットを作成するJIRA内のユーザーのユーザー名)、JIRA_PASSWORD(JIRA内でのユーザーのパスワード)、JIRA_SUBDOMAIN、JIRA_PROJECT(JIRAチケットを生成したいプロジェクトのプレフィックス)、JIRA_ISSUE_TYPE(PagerDutyに作らせたいissueのタイプ。例えばBug、Deliverableなど)、PAGERDUTY_API_TOKEN(あなたのPagerDuty APIアクセスページにあります)、PAGERDUTY_SUBDOMAINなどの情報が必要です。アプリ名は空白のままにすることも、名前を選択することもできますが、その他のフィールドはすべて完全に埋める必要があります。
- この情報を入力したら、ページの下部にあるDeployをクリックします。 アプリのデプロイが完了したら、View Itを右クリックしてリンクアドレスをコピーするか、 View Itをクリックし、ブラウザのアドレスバーからURLをコピーしてください。
- PagerDutyサービスにアクセスし、Integrationsタブに移動し、New Extensionをクリックしてください。ドロップダウンリストから「Generic Webhook」を選択します。 あなたのwebhookの名前を入力し、 Endpoint URLにURL(Herokuから、または自分でホストする場合は、PHPスクリプトがあるURL)を貼り付けます。 Heroku URLに貼り付ける場合は、最後にpd2jira.phpを追加して、完成した製品がhttps://[YOUR-APP-NAME] .herokuapp.com/ pd2jira.phpと読めるようにします。 テストするには:JIRA webhookを追加したPagerDutyサービスでインシデントをトリガーします。 インシデントでは、JIRA ticket numberとJIRAのチケットへのlinkが表示されます。 リンクをクリックすると、JIRAのチケットが表示されます。そこには、要約(PagerDutyservice name、incident #、インシデントsummary)、変数の中であなたが指定したユーザーにセットされたreporter、PagerDutyインシデントへのリンクを含む説明が表示されます。
よくある質問
このインテグレーションでサポートされるJIRAのバージョンは?
現時点では、このインテグレーションではJIRA Softwareのみがサポートされます。
このインテグレーションは、どのようなJIRAイベントをサポートしていますか?
現在のバージョンでは、JIRAで問題が作成されたときに新しいPagerDutyインシデントがトリガされ、JIRAの問題が「完了」とマークされたときにPagerDutyインシデントが解決になります。
PagerDutyのインシデントが解決されたら、JIRAのチケットは自動的にクローズされますか?
いいえ。しかし、これはオープンソースの統合であり、あなたのユースケースを満たすように変更できます。
JIRAチケットがクローズされたときにPagerDutyインシデントが自動的に解決されますか?
はい、JIRAサービスの電子メール解析機能を設定していれば、JIRAチケットが終了したときにPagerDutyでインシデントを自動的に解決にできます。 次のドキュメントでは、JIRA統合用の電子メール解析機能を設定する方法について説明します:JIRA Email Parsing Guide。
JIRAを複数のPagerDutyサービスに結びつけるように設定するにはどうすればよいですか?
JIRAを複数のPagerDutyサービスに関連付けるには、JIRA内のPagerDutyユーザーを複数の通知スキームに関連付ける必要があります。それ以後は複数の通知スキームは、異なるJIRAプロジェクトに関連付けられます。