ryandaniels.connectivity_test
ansible-role-testowania-koneksji
Użyj nc (netcat), aby testować problemy sieciowe z określonym adresem IP i portem (TCP lub UDP).
Dynamically określa adres IP źródłowy na podstawie adresu IP docelowego z dostępnej trasy.
Domyślnie używa protokołu TCP. Możesz określić protocol: udp
, jeśli do testu potrzebny jest UDP.
Testowane dystrybucje
- Ubuntu 18.04 / 16.04
- CentOS / RHEL: 7.x, 6.5, 5.9
Wymagania
Polecenia systemowe:
- nc (netcat) - zostanie zainstalowane, jeśli nie jest obecne
- ip
- awk
Ustawienia domyślne
- Włącz debugowanie
debug_enabled_default: false
- Timeout
connectivity_test_wait_default: 5
- Argument UDP do użycia, jeśli w konfiguracji określono 'udp'
connectivity_test_udp_command: "-u"
- Proxy
proxy_env: []
Przykładowy plik konfiguracyjny (group_vars/xxx/connectivity-test-vars.yml)
Protokół TCP używany jest domyślnie (nie trzeba go określać).
---
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 }
Przykładowy Playbook connectivity-test.yml
---
- hosts: '{{inventory}}'
become: yes
roles:
- connectivity-test
Użycie
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts
Pomiń instalację pakietów (jeśli już są dostępne - przyspiesza zadanie)
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts --skip-tags connectivity_install_pkg
Przykładowe wyjście
TASK [setup] *******************************************************************
ok: [centos7]
TASK [connectivity-test : Instalacja pakietów zależnych w systemach opartych na RedHat] *
ok: [centos7] => (item=[u'nc'])
TASK [connectivity-test : Pobierz adres IP źródłowy na podstawie adresu IP docelowego] ***************
ok: [centos7] => (item=adres ip źródłowy: 127.0.0.1, adres ip docelowy: 127.0.0.1)
ok: [centos7] => (item=adres ip źródłowy: 127.0.0.1, adres ip docelowy: 127.0.0.1)
ok: [centos7] => (item=adres ip źródłowy: 192.168.56.9, adres ip docelowy: 192.168.56.10)
TASK [connectivity-test : debug] ***********************************************
TASK [connectivity-test : testowanie łączności sieciowej] ***************************
ok: [centos7] => (item=adres ip źródłowy: 192.168.56.9, adres ip docelowy: 192.168.56.10, port: 22, protokół: tcp, czas: 2019-07-09 23:02:56.518272, stdout: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, stderr: Połączenie z 192.168.56.10 port 22 [tcp/ssh] powiodło się!
)
ok: [centos7] => (item=adres ip źródłowy: 127.0.0.1, adres ip docelowy: 127.0.0.1, port: 53, protokół: udp, czas: 2019-07-09 23:03:12.337049, stdout: , stderr: Połączenie z 127.0.0.1 port 53 [udp/domain] powiodło się!
)
failed: [centos7] (item=adres ip źródłowy: 192.168.56.9, adres ip docelowy: 192.168.56.10, port: 5000, protokół: tcp, czas: 2019-07-09 23:03:33.893978, stdout: , stderr: nc: połączenie z 192.168.56.10 port 5000 (tcp) zakończone czasem: Operacja w toku
)
TASK [connectivity-test : debug] ***********************************************
PODSUMOWANIE GRY *********************************************************************
centos7 : ok=3 zmieniono=0 nieosiągalne=0 niepowodzenia=1
Ręczny sposób
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 "Adres IP źródłowy: $sIP";
for i in $dIP;
do date;
nc -v -w 3 -s "$sIP" "$i" "$dPORT";
echo " ";
done
O projekcie
Role to test for network issues to specified IP and port (TCP or UDP) from your Ansible hosts.
Zainstaluj
ansible-galaxy install ryandaniels.connectivity_test
Licencja
mit
Pobrania
5k
Właściciel
Ansible all the things