🧘
JenkinsからSlackへ通知ができない問題の解決
1. 環境
- Jenkins:2.275
- Jenkinsが稼働しているサーバー:CentOS release 6.10
2. 調査
Jenkinsのログの確認
-
Jenkinsの左メニューから「Jenkinsの管理」を選択
-
「システムログ」を選択
-
「すべてのログ」をクリックしてログを確認したところ、下記エラーを発見。
unable to find valid certification path to requested target
訳すと、「要求されたターゲットへの有効な証明書のパスが見つからない」ということらしい。
- 「jenkins」、「slack」、「unable to find valid certification path to requested target」といったキーワードを頼りにググる。
その結果、Slack( www.slack.com )の証明書をJVMに手動でインポートすれば良いことがわかりました。
3. Slackの証明書をJVMへ手動でインポート
- opensslコマンドでSlack( www.slack.com )の証明書を取得
# openssl s_client -connect www.slack.com:443
- 実行結果の中から「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までをコピーしファイルに保存する。
# vi /tmp/slack.crt
- 2で作成した証明書ファイルをインポート
sudo keytool -import -alias slack -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/slack.crt
4. Jenkinsを再起動
以上で無事JenkinsからSlackへの通知ができるようになりました。
Discussion