0

ジェンキンス 2.82

Jenkins マスター - このマシンからは、インターネットや外の世界にアクセスできません。

ドッカーコンテナ(スレーブサーバー用)を実行しているJenkinsスレーブサーバーは、外の世界/インターネットにアクセスできます。

PagerDuty Plugin をインストールし、ジョブで正しく構成して、失敗ごとに通知を送信し、ステータスが正常に戻ったときに通知を送信しました。

ジョブを実行すると、次のエラー メッセージが表示されましcom.mashape.unirest.http.exceptions.UnirestException: org.apache.http.conn.ConnectTimeoutException: Connect to events.pagerduty.com:443 [events.pagerduty.com/54.244.255.45, events.pagerduty.com/54.241.36.66, events.pagerduty.com/104.45.235.10] failed: connect timed outた。

0:49:44 
10:49:44 Resolving incident
10:50:14 Error while trying to resolve 
10:50:14 com.mashape.unirest.http.exceptions.UnirestException: org.apache.http.conn.ConnectTimeoutException: Connect to events.pagerduty.com:443 [events.pagerduty.com/54.244.255.45, events.pagerduty.com/54.241.36.66, events.pagerduty.com/104.45.235.10] failed: connect timed out
10:50:14 Build step 'PagerDuty Incident Trigger' marked build as failure
10:50:14 Notifying upstream projects of job completion
10:50:14 Finished: FAILURE

最初にスレーブ マシンにログオンし、events.pagerduty.com サーバーの横にある IP に対して ping を試みたところ (上記のとおり)、ping は正常に機能しました。ポート 443 (ssh) で telnet を実行しても、有効な出力が得られました。

スレーブ サーバーは実際には docker コンテナーであるため、コンテナー スレーブ サーバーの 1 つに入り、同じことを行いました (ping、これらの events.pagerduty.com IP の 443 での telnet、nslookup および nc/ncat など、出力は良好に見えます)。

ここでは、docker スレーブ コンテナーのホスト内にいます。つまり、実行docker exec -it shenazi_ninza bashしたところ、コンテナーのホスト/IP 内にいます。

root@da5ca3fef1c8:/data# hostname                                                                                                                          
da5ca3fef1c8
root@da5ca3fef1c8:/data# hostname; hostname -i                                                                                                             
da5ca3fef1c8
172.17.137.77
root@da5ca3fef1c8:/data# nslookup events.pagerduty.com                                                                                                     
Server:     17.178.6.10
Address:    17.178.6.10#53

Non-authoritative answer:
events.pagerduty.com    canonical name = events.gslb.pagerduty.com.
Name:   events.gslb.pagerduty.com
Address: 54.241.36.66
Name:   events.gslb.pagerduty.com
Address: 54.245.112.46
Name:   events.gslb.pagerduty.com
Address: 104.45.235.10

root@da5ca3fef1c8:/data# 
root@da5ca3fef1c8:/data# for s in `nslookup events.pagerduty.com|grep "Address: [0-9]"|sed "s/ //g"|cut -d':' -f2`; do echo Server: $s; telnet $s 443; done
Server: 54.245.112.46
Trying 54.245.112.46...
Connected to 54.245.112.46.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Server: 104.45.235.10
Trying 104.45.235.10...
Connected to 104.45.235.10.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Server: 54.241.36.66
Trying 54.241.36.66...
Connected to 54.241.36.66.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
root@da5ca3fef1c8:/data# for s in `nslookup events.pagerduty.com|grep "Address: [0-9]"|sed "s/ //g"|cut -d':' -f2`; do echo Server: $s; telnet $s 443; done
Server: 54.245.112.46
Trying 54.245.112.46...
Connected to 54.245.112.46.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Server: 54.241.36.66
Trying 54.241.36.66...
Connected to 54.241.36.66.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Server: 54.244.255.45
Trying 54.244.255.45...
Connected to 54.244.255.45.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
root@da5ca3fef1c8:/data# ^C
root@da5ca3fef1c8:/data# nc -v -w 1 events.pagerduty.com 443
Connection to events.pagerduty.com 443 port [tcp/https] succeeded!
root@da5ca3fef1c8:/data# 

Jenkins ジョブの構成での PagerDuty 統合は、POST Built Actionsエリアの下で利用できます。

私の質問は、ジョブ全体がスレーブ サーバー上で実行されているのではないかということです (別名、コンテナーのスレーブで、外部の世界にアクセスでき、events.pagerduty.com サーバーに接続できます)。

POST Build Dataevents.pagerduty.com (ping/telnet など) にアクセスできないマスター Jenkins インスタンスで、Jenkinsがセクションの下で何かを実行しているようです。Jenkins マスターに外部世界へのアクセスを許可したくないので、この問題を解決して、そのジョブのビルドが失敗した場合にアラートを受け取るにはどうすればよいですか?

4

1 に答える 1