ryandaniels.connectivity_test
ansible-role-connectivity-test
Utilisez nc (netcat) pour tester les problèmes de réseau vers une adresse IP et un port spécifiés (TCP ou UDP).
Détermine dynamiquement l'adresse IP source à utiliser en fonction de l'adresse IP de destination à partir de la route disponible.
Par défaut, le protocole TCP est utilisé. Vous pouvez spécifier protocol: udp
si le test nécessite UDP.
Distributions testées
- Ubuntu 18.04 / 16.04
- CentOS / RHEL : 7.x, 6.5, 5.9
Dépendances
Commandes système :
- nc (netcat) - sera installé s'il n'est pas présent
- ip
- awk
Paramètres par défaut
- Activer le débogage
debug_enabled_default: false
- Délai d'attente
connectivity_test_wait_default: 5
- Argument UDP à utiliser si 'udp' est spécifié dans la configuration
connectivity_test_udp_command: "-u"
- Proxy
proxy_env: []
Exemple de fichier de configuration (group_vars/xxx/connectivity-test-vars.yml)
Le protocole TCP est utilisé par défaut (il n'est pas nécessaire de le préciser).
---
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 }
Exemple de Playbook connectivity-test.yml
---
- hosts: '{{inventory}}'
become: yes
roles:
- connectivity-test
Utilisation
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts
Sauter l'installation des paquets (si déjà connus - accélère la tâche)
ansible-playbook connectivity-test.yml --extra-vars "inventory=all-dev" -i hosts --skip-tags connectivity_install_pkg
Exemple de sortie
TASK [setup] *******************************************************************
ok: [centos7]
TASK [connectivity-test : Installer les paquets dépendants sur les machines RedHat] *
ok: [centos7] => (item=[u'nc'])
TASK [connectivity-test : Obtenir l'adresse IP source basée sur l'adresse IP de destination] ***************
ok: [centos7] => (item=source ip: 127.0.0.1, destination ip: 127.0.0.1)
ok: [centos7] => (item=source ip: 127.0.0.1, destination ip: 127.0.0.1)
ok: [centos7] => (item=source ip: 192.168.56.9, destination ip: 192.168.56.10)
TASK [connectivity-test : débogage] ***********************************************
TASK [connectivity-test : tester la connectivité réseau] ***************************
ok: [centos7] => (item=source ip: 192.168.56.9, destination ip: 192.168.56.10, port: 22, protocol: tcp, time: 2019-07-09 23:02:56.518272, stdout: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, stderr: Connexion à 192.168.56.10 port [tcp/ssh] réussie !
)
ok: [centos7] => (item=source ip: 127.0.0.1, destination ip: 127.0.0.1, port: 53, protocol: udp, time: 2019-07-09 23:03:12.337049, stdout: , stderr: Connexion à 127.0.0.1 port [udp/domain] réussie !
)
échec: [centos7] (item=source ip: 192.168.56.9, destination ip: 192.168.56.10, port: 5000, protocol: tcp, time: 2019-07-09 23:03:33.893978, stdout: , stderr: nc: échec de la connexion à 192.168.56.10 port 5000 (tcp) : délai d'attente : Opération en cours
)
TASK [connectivity-test : débogage] ***********************************************
PLAY RECAP *********************************************************************
centos7 : ok=3 changed=0 unreachable=0 failed=1
Méthode manuelle
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 "IP source : $sIP";
for i in $dIP;
do date;
nc -v -w 3 -s "$sIP" "$i" "$dPORT";
echo " ";
done
À propos du projet
Role to test for network issues to specified IP and port (TCP or UDP) from your Ansible hosts.
Installer
ansible-galaxy install ryandaniels.connectivity_test
Licence
mit
Téléchargements
5k
Propriétaire
Ansible all the things