Jenkins 2,82events.pagerduty.com:443 relient expiré
maître Jenkins - A partir de cette machine, je n'ai pas accès à Internet/monde extérieur.
Serveur esclave Jenkins, les conteneurs docker en cours d'exécution (pour le serveur esclave), ont accès au monde extérieur/Internet.
J'ai installé PagerDuty Plugin et l'ai configuré correctement dans un travail pour envoyer une notification par échec et lorsque l'état est redevenu normal.
Lorsque j'ai exécuté le travail, j'ai l'erreur suivante mesg 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
Je me suis connecté sur la machine esclave premier et a essayé de ping l'IP à côté de events.pagerduty.com serveur (comme indiqué ci-dessus) et ping a bien fonctionné. Faire telnet sur le port 443 (ssh) a également donné une sortie valide. Comme les serveurs esclaves sont en fait des conteneurs docker, je suis allé à l'intérieur du serveur esclave de conteneur et j'ai fait la même chose (ping, telnet sur 443 pour les IP events.pagerduty.com, nslookup et nc/ncat etc et la sortie Cela semble bon).
Ici, je suis dans l'hôte de conteneur esclave docker dire que je courais docker exec -it shenazi_ninza bash
et je suis maintenant dans l'hôte/l'IP du conteneur:
[email protected]:/data# hostname
da5ca3fef1c8
[email protected]:/data# hostname; hostname -i
da5ca3fef1c8
172.17.137.77
[email protected]:/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
[email protected]:/data#
[email protected]:/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.
[email protected]:/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.
[email protected]:/data# ^C
[email protected]:/data# nc -v -w 1 events.pagerduty.com 443
Connection to events.pagerduty.com 443 port [tcp/https] succeeded!
[email protected]:/data#
intégration PagerDuty dans la configuration de l'emploi Jenkins est disponible sous la zone POST Built Actions
. Ma question est, est-ce que tout le travail ne fonctionne pas sur le serveur esclave (l'esclave du conteneur aka d'où j'ai accès au monde extérieur et Im capable de se connecter au serveur de events.pagerduty.com)?
Il semble que Jenkins exécute quelque chose sous la section POST Build Data
, sur l'instance maître Jenkins d'où je n'ai pas accès à events.pagerduty.com (ping/telnet etc)? Comme nous ne voulons pas que le maître de Jenkins ait accès au monde extérieur, comment ce problème peut-il être résolu afin que je puisse être averti si une construction échoue pour ce travail?