0

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?

Répondre

0

Ainsi, au lieu d'ouvrir tous les accès, a ajouté l'itinéraire à utiliser une passerelle/route pour accéder uniquement serveur events.pagerduty.com

/sbin/route add -net 50.0.0.0/8 x.x.x.x dev eth0 
/sbin/route add default gw x.y.z.someIP 
/sbin/route add -net 50.0.0.0 netmask 255.0.0.0 gw x.y.z.ip 

et maintenant de maître donné Jenkins, je suis en mesure de voir/accéder uniquement au serveur events.pagerduty.com/ses adresses IP.

x.y.z.ip est ce que vous aurez à mettre.