web-dev-qa-db-ja.com

Jenkins / Slack統合

Slackチャネル#buildsで通知を送信するようにJenkinsを構成する必要があります。 SlackでJenkins CI統合を構成しました。その結果、「abcdefgh666」というトークンがあり、「設定手順」を展開すると、チームドメインが「mysuperteam」であることがわかります。 slackにURL http://mysuperteam.slack.com で接続します

ステップ3で立ち往生しています。 Slack doc のスクリーンショットは次のとおりです。

slack screen

しかし、Jenkinsバージョンでは、ビューは次のようになります。

my screen

もちろん、[接続のテスト]ボタンは常に失敗を返します。ジェンキンスのログでは、私はこれを何度も持っています:

Mar 30, 2017 2:14:38 PM WARNING jenkins.plugins.slack.StandardSlackService publish
Error posting to Slack
Java.lang.IllegalStateException: Target Host is null
    at org.Apache.http.util.Asserts.notNull(Asserts.Java:46)
    at org.Apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.Java:125)
    at org.Apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.Java:185)
    at org.Apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.Java:82)
    at org.Apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.Java:106)
    at jenkins.plugins.slack.StandardSlackService.publish(StandardSlackService.Java:126)
    at jenkins.plugins.slack.SlackNotifier$DescriptorImpl.doTestConnection(SlackNotifier.Java:510)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:606)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.Java:335)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.Java:175)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.Java:108)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.Java:124)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:876)
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.Java:236)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:876)
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.Java:236)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.Java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.Java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:876)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.Java:649)
    at org.kohsuke.stapler.Stapler.service(Stapler.Java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.Java:790)
    at org.Eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.Java:812)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1669)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.Java:135)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.Java:126)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.Java:80)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.Java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.Java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.Java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.Java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.Java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.Java:93)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.Java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.Java:67)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.Java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.Java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.Java:171)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.Java:49)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.Java:82)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.Java:30)
    at org.Eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.Java:1652)
    at org.Eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.Java:585)
    at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:143)
    at org.Eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.Java:553)
    at org.Eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.Java:223)
    at org.Eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.Java:1127)
    at org.Eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.Java:515)
    at org.Eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.Java:185)
    at org.Eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.Java:1061)
    at org.Eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.Java:141)
    at org.Eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.Java:97)
    at org.Eclipse.jetty.server.Server.handle(Server.Java:499)
    at org.Eclipse.jetty.server.HttpChannel.handle(HttpChannel.Java:311)
    at org.Eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.Java:257)
    at org.Eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.Java:544)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.Java:77)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1145)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:615)
    at Java.lang.Thread.run(Thread.Java:745)

資格情報メニューを使用して直接トークンを入力しないようにしました。「ベースURL」フィールドに「slack.com」を入力しようとしました。「Is Bot User?」をオンまたはオフにしようとしました。フィールド、「 http://mysuperteam.slack.com 」を「ベースURL」フィールドに入力しようとしました。

私の設定は正しいですか? JenkinsがSlackに接続できない原因は何ですか?

11
Antwane

最後に、問題は一時的なバグでした。私たちの構成は有効であり、数日後の再テストはうまくいくようです。

Team SubdomainおよびIntegration Tokenの入力には、Slackアプリの管理ページにある情報を入力しました。さらに、Jenkinsがプッシュ通知を送信するChannelの名前を設定します。

global config

Slack Webhooks Settingsには何も設定していません。

webhooks

重要:「テスト接続」ボタンをクリックする前に、設定を保存してください。

バージョン:Jenkins 2.46/Slack Notification Plugin 2.2。 https://github.com/jenkinsci/slack-plugin にある設定情報

4
Antwane

「baseUrl」を空のままにし、「TestConnection」を介してテスト前に保存します。

11
Taejun Jang

同じ問題があり、スラックインターフェイスで着信Webhookを作成する必要があることがわかりました( https://slack.com/apps/A0F7XDUAZ-incoming-webhooks
しかし、それでも機能しません...

編集: https://github.com/jenkinsci/slack-plugin のインストール手順を誤って解釈している可能性がありますが、いずれにしても最新ではありません

1
Banibal

Windows環境でサービスとしてJenkinsを実行しています。 Jenkinsがファイアウォールと企業プロキシの背後にあるため、「407-プロキシ認証が必要です」というエラーが発生しました。この問題は、ドメインIDを使用してJenkinsサービスを開始することで解決しました。

0
Karthik