Webhook を設定
ServiceNowインスタンスで Jenkins から必要な更新を受信するように Webhook アプリケーションを設定します。
始める前に
Jenkins v2 スポークの認証キーを作成
Jenkins からの要求を承認するための認証キーを作成します。
始める前に
必要なロール:admin
手順
- 移動先 すべて > システム定義 > スクリプト - バックグラウンド.
-
[スクリプトを実行 (サーバー上で実行される JavaScript)] テキストフィールドで、次のコマンドを入力します。
gs.info(GlideSecureRandomUtil.getSecureRandomString(32)); - [スクリプトを実行] をクリックします。
-
後で使用するために生成された値をコピーして記録します。
Webhook の認証キーを指定
ServiceNowインスタンスに Webhook の認証キーを指定して、Jenkins からの要求を承認します。
始める前に
必要なロール:admin
手順
- 移動先 すべて > Jenkins v2 > Webhook クライアントの詳細.
- [新規] をクリックします。
-
フォームに、これらの値を入力します。
表 : 1. Jenkins Webhook クライアントの詳細フォーム フィールド 説明 認証キー 生成された認証キー詳細については、「Jenkins v2 スポークの認証キーを作成」を参照してください。 名前 Webhook クライアントレコードを識別する名前です。 - [送信] をクリックします。
Jenkins での認証キーを指定
Jenkins での認証キーを指定して、Jenkins から更新を受信します。
始める前に
必要なロール:admin
手順
- Jenkins アカウントにログインします。
- Webhook を構成するジョブをクリックして開きます。
- [構成] をクリックします。
-
[バインディング] タブで、[追加] をクリックし、[Jenkins] を選択します。
プラグインの使用の詳細については、「 認証情報のバインディング」を参照してください。
-
フォームのフィールドに入力します。
表 : 2. Jenkins 認証情報プロバイダーフォーム フィールド 説明 種類 シークレットテキスト を選択します。 シークレット 認証キーを入力します。 詳細については、「Jenkins v2 スポークの認証キーを作成」を参照してください。 ID レコードを識別するための一意の識別子を指定します。 - [追加] をクリックします。
-
[ビルド後のアクション] タブで、タスクを設定し、ServiceNowインスタンスで更新を受信するスクリプトを指定します。
- サンプルWindows スクリプト:
curl "https://<instance-name>.service-now.com/api/sn_jenkinsv2_spoke/jenkins_v2_webhook/build_status" -X POST -H "content-type:application/json" -H "jenkinsKey: %<ID>%" -d "{\"Job_Name\":\"%JOB_NAME%\",\"Job_Path\":\"%JOB_URL%\",\"Build_Number\":\"%BUILD_NUMBER%\"}" - サンプルシェルスクリプト:
curl "https://<instance-name>.service-now.com/api/sn_jenkinsv2_spoke/jenkins_v2_webhook/build_status" -X POST -H "content-type:application/json" -H "jenkinsKey: ${<ID>}" -d "{\"Job_Name\":\"${JOB_NAME}\",\"Job_Path\":\"${JOB_URL}\",\"Build_Number\":\"${BUILD_NUMBER}\"}"
注:プラグインの使用の詳細については、「 ビルド後のタスク」を参照してください。スクリプト内の ID は、Jenkins 認証情報プロバイダーフォームで指定した ID です。 - サンプルWindows スクリプト:
- [適用] をクリックします。
サブフローに説明を入力
Jenkins v2 スポークのサブフローにわかりやすい説明を入力します。
始める前に
必要なロール:admin。
手順
- 移動先 すべて > Jenkins v2 > Webhook 応答サブフロー.
- [新規] をクリックします。
-
フォームに、これらの値を入力します。
フィールド 説明 説明 サブフローの説明です。 サブフロー Jenkins v2 スポークに必要なサブフローです。 - [送信] をクリックします。
ディシジョンテーブルに回答を入力
ディシジョンテーブルに記載されている条件に対する回答としてサブフローが提供されます。指定された条件が満たされたら、関連するサブフローがトリガーされます。
始める前に
必要なロール:admin
手順
- 移動先 すべて > システム定義 > ディシジョンテーブル.
- Jenkins v2 Spoke のレコードを開きます。
- [意思決定] タブで、[新規] をクリックします。
-
フォームに、これらの値を入力します。
表 : 3. 意思決定フォーム フィールド 説明 ラベル ルーティングポリシーを識別する一意のラベルです。 デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。 条件 Jenkins で必要なイベントが発生したときに満たされるべき条件です。サポートされているフィールドの詳細については、Jenkins v2 スポークを参照してください。 回答 指定された条件が満たされるとトリガーされるサブフローです。 - 検索アイコン (
) をクリックします。
- ドキュメントリストから必要なサブフローを選択します。注:テーブル名が Jenkins v2 Webhook 回答サブフロー [sn_jenkinsv2_spoke_webhook_answer_subflow] であることを確認します。
- 検索アイコン (
- [送信] をクリックします。
Webhook をカスタマイズ
Webhook ルーティングポリシーを作成し、要件に応じてサブフローをカスタマイズします。
始める前に
必要なロール:admin
手順
- 移動先 すべて > Flow Designer > デザイナー.
- [サブフロー] をクリックします。
- 必要なデフォルトのサブフローのコピーを作成します。
-
Jenkins Webhook 応答サブフローをカスタマイズ:プロセスビルド情報のサブフローを要件に応じでカスタマイズして、公開します。
サブフローの作成および使用の詳細については「サブフローのビルド」を、ルーティングポリシーおよびサブフローがサポートするフィールドについては、「Jenkins v2 スポーク」を参照してください。
- 移動先 Jenkins v2 > Webhook 応答サブフロー.
- [新規] をクリックします。
-
フォームのフィールドに入力します。
フィールド 説明 説明 サブフローの説明です。 サブフロー Jenkins v2 スポークに必要なサブフローです。 -
[送信] をクリックします。
注:これらのルーティングポリシーは意思決定テーブルに保存されます。ユーザーは、これらのテーブルのデータを直接更新または変更しないように注意してください。
- 移動先 システム定義 > ディシジョンテーブル.
- Jenkins v2 Spoke のレコードを開きます。
- [意思決定] タブで、[新規] をクリックします。
-
フォームの各フィールドに入力します。
表 : 4. 意思決定フォーム フィールド 説明 ラベル ルーティングポリシーを識別する一意のラベルです。 デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。 条件 Jenkins で必要なイベントが発生したときに満たされるべき条件です。サポートされているフィールドの詳細については、Jenkins v2 スポークを参照してください。 回答 指定された条件が満たされるとトリガーされるサブフローです。 - 検索アイコン (
) をクリックします。
- ドキュメントリストから必要なサブフローを選択します。注:テーブル名が Jenkins v2 Webhook 回答サブフロー [sn_jenkinsv2_spoke_webhook_answer_subflow] であることを確認します。
- 検索アイコン (
- [送信] をクリックします。