ryandaniels.connectivity_test
ansible-role-connectivity-test
Verwende nc (netcat), um Netzwerkprobleme zu einer angegebenen IP und einem Port (TCP oder UDP) zu testen.
Bestimmt dynamisch die Quell-IP, die basierend auf der Ziel-IP aus der verfügbaren Route verwendet wird.
Standardmäßig wird das TCP-Protokoll verwendet. Du kannst protocol: udp
angeben, wenn UDP für den Test benötigt wird.
Getestete Distributionen
- Ubuntu 18.04 / 16.04
- CentOS / RHEL: 7.x, 6.5, 5.9
Abhängigkeiten
Befehle des Betriebssystems:
- nc (netcat) - wird installiert, wenn nicht vorhanden
- ip
- awk
Standardeinstellungen
- Debug aktivieren
debug_enabled_default: false
- Timeout
connectivity_test_wait_default: 5
- UDP-Argument, das verwendet wird, wenn 'udp' in der Konfiguration angegeben ist
connectivity_test_udp_command: "-u"
- Proxy
proxy_env: []
Beispielkonfigurationsdatei (group_vars/xxx/connectivity-test-vars.yml)
Standardmäßig wird das TCP-Protokoll verwendet (muss nicht angegeben werden).
---
connectivity_test_destinations:
- { ip: 192.168.56.10, port: 22 }
- { ip: 192.168.56.10, port: 5000 }
- { ip: 127.0.0.1, port: 53, protocol: udp }
Beispiel-Playbook connectivity-test.yml
---
- hosts: '{{inventory}}'
become: yes
roles:
- connectivity-test
Verwendung
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts
Pakete installieren überspringen (wenn bereits bekannt - beschleunigt die Aufgabe)
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts --skip-tags connectivity_install_pkg
Beispielausgabe
TASK [setup] *******************************************************************
ok: [centos7]
TASK [connectivity-test : Installiere abhängige Pakete auf RedHat-basierten Maschinen] *
ok: [centos7] => (item=[u'nc'])
TASK [connectivity-test : Hole Quell-IP basierend auf Ziel-IP] ***************
ok: [centos7] => (item=Quell-IP: 127.0.0.1, Ziel-IP: 127.0.0.1)
ok: [centos7] => (item=Quell-IP: 127.0.0.1, Ziel-IP: 127.0.0.1)
ok: [centos7] => (item=Quell-IP: 192.168.56.9, Ziel-IP: 192.168.56.10)
TASK [connectivity-test : debug] ***********************************************
TASK [connectivity-test : teste die Netzwerkverbindung] ***************************
ok: [centos7] => (item=Quell-IP: 192.168.56.9, Ziel-IP: 192.168.56.10, Port: 22, Protokoll: tcp, Zeit: 2019-07-09 23:02:56.518272, stdout: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, stderr: Verbindung zu 192.168.56.10 22 Port [tcp/ssh] erfolgreich!
)
ok: [centos7] => (item=Quell-IP: 127.0.0.1, Ziel-IP: 127.0.0.1, Port: 53, Protokoll: udp, Zeit: 2019-07-09 23:03:12.337049, stdout: , stderr: Verbindung zu 127.0.0.1 53 Port [udp/domain] erfolgreich!
)
failed: [centos7] (item=Quell-IP: 192.168.56.9, Ziel-IP: 192.168.56.10, Port: 5000, Protokoll: tcp, Zeit: 2019-07-09 23:03:33.893978, stdout: , stderr: nc: Verbindung zu 192.168.56.10 Port 5000 (tcp) zeitlich begrenzt: Vorgang läuft jetzt.
)
TASK [connectivity-test : debug] ***********************************************
PLAY RECAP *********************************************************************
centos7 : ok=3 changed=0 unreachable=0 failed=1
Manuelle Methode
dIP="192.168.56.10 192.168.56.13";
dPORT="5000";
sIP=$(/sbin/ip route get "$(echo $dIP|awk -F" " 'NR==1{print $1}')"|awk 'NR==1{print $NF}');
uname -n;
echo "Quell-IP: $sIP";
for i in $dIP;
do date;
nc -v -w 3 -s "$sIP" "$i" "$dPORT";
echo " ";
done
Über das Projekt
Role to test for network issues to specified IP and port (TCP or UDP) from your Ansible hosts.
Installieren
ansible-galaxy install ryandaniels.connectivity_test
Lizenz
mit
Downloads
5k
Besitzer
Ansible all the things