Fwd: [FRnOG] [TECH] Automatisation des comparaisons de "show ... blah blah"
Bonjour, Voici comment le faire pour JUNOS avec Ansible. Je n’ai pas eu l’occasion de tester avec EOS, mais la meme approche s'applique au deux NOS sans gros changement. Comme il y deux NOS, je ne presente pas ci dessous l'approche qui a ete développé specifiquement pour repondre a ce besoin dans un contexte Junos only (Jsnapy). My 2 cents. Exécution de commandes show. Sauvegarde des outputs. Revue par un humain. Il y a plusieurs outils. Exemple : Ce playbook https://github.com/ksator/ junos-automation-with-ansible/blob/master/junos_cli/pb_ collect_cli_output.yml prend en input la liste des commandes show ici https://github.com/ksator/junos-automation-with-ansible/ blob/master/junos_cli/cli.yml et l’exécute sur cet inventaire https://github.com/ksator/junos-automation-with-ansible/blob/master/hosts et sauve l’output ici https://github.com/ksator/ junos-automation-with-ansible/tree/master/junos_cli/cli pour une revue par un humain. La meme chose peut etre faite avec un module ansible pour EOS. Puis ajouter un push automatisé vers un server Git (Revue par un humain sur le serveur Git via les fonctions « history »): Exemple : on fait exactement la meme chose que dans la section précédente. En plus, a la fin, on demande au contenu d’automatisation de faire un git add/push/commit pour uploader le tout vers un repo git: https://github.com/ksator/junos-automation-with-ansible/ blob/master/shell/pb_git.yml Ainsi les data collectes sont sur le serveur git en on voit les diff facilement. Il y a aussi un autre workflow qui consiste a: Exécution des commandes show. Comparaison automatisée des output VS un état désiré décrit (par exemple, l’état des session BGP doit être « Established »). La source of Truth est l’état décrit, et non plus le réseau. Ce n'est pas ce qui est demande mais c'est une approche interressante aussi. Il y a plusieurs outils. Exemple : Ce playbook https://github.com/ksator/ junos-automation-with-ansible/blob/master/junos_command/pb_ check_op_states.yml passe des commandes show et parse l‘output et vérifie si la condition décrite est vraie. Dans cet exemple, le playbook vérifie que les interfaces sont up, que les voisins LLDP sont ceux souhaites (pas d’erreur de câblage), que les sessions BGP sont established, que des routes sont apprises en BGP, et que les ping vers des routes apprises en BGP repondent … L’inventaire est la https://github.com/ksator/ junos-automation-with-ansible/blob/master/hosts et les variables (description de la liste de voisins BGP/LLDP …) sont la https://github.com/ksator/junos-automation-with-ansible/ tree/master/host_vars La meme chose peut etre faite avec un module ansible pour EOS. Exemple, avec Napalm dans le cas ou un getter Napalm existe pour les deux network operating system. Ce fichier est un template qui décrit l’état désiré https://github.com/ksator/junos-automation-with-NAPALM/ blob/master/validate.j2 sous la forme de l’output du getter. Ce template est « renderisé » pour chaque device, et le getter est exécuté, et la réponse du getter est comparée avec le template « renderisé ». Ceci peut se faire en python https://github.com/ksator/ junos-automation-with-NAPALM/blob/master/validator.py ou ansible https://github.com/ksator/junos-automation-with-NAPALM/ blob/master/pb.install-conf.yml#L33-L53 Bien cordialement, Khelil *From:* frnog-requ...@frnog.org [mailto:frnog-requ...@frnog.org ] *On Behalf Of *marc celier *Sent:* Monday, March 19, 2018 11:11 AM *To:* frnog@frnog.org *Subject:* [FRnOG] [TECH] Automatisation des comparaisons de "show ... blah blah" Bonjour, Nous devons mener une maintenance sur l'ensemble du reseau, ce qui implique un nombre important d'equipements. avant et apres la maintenance nous devons executer un nombre important de commandes "show" et realiser des comparaisons visuels pour detecter un eventuel changement ou dysfonctionnement. c'est pas Top car on peut toujours manquer une info critique a cause de la masse de donnees a comparer. J'imagine qu'il y a des outils comme Ansible ou la commande diff qui pourrait etre un debut de piste, mais n'ayant jamais travaille avec ces outils je n'ai pas une claire vision de la solution globale. si vous avez deja mis en place quelque chose de similaire pouvez vous s'il vous plait partager votre experience et pistes en la matiere (environnement Juniper et Arista) - execution des commandes show - comparaison des commandes show -generation d'un rapport sur les differences Je vous remercie par avance. --- Liste de diffusion du FRnOG http://www.frnog.org/
Fwd: [FRnOG] [TECH] Automatisation des comparaisons de "show ... blah blah"
Bonjour, Voici comment le faire pour JUNOS avec Ansible. Je n’ai pas eu l’occasion de tester avec EOS, mais la meme approche s'applique au deux NOS sans gros changement. Comme il y deux NOS, je ne presente pas ci dessous l'approche qui a ete développé specifiquement pour repondre a ce besoin dans un contexte Junos only (Jsnapy). My 2 cents. Exécution de commandes show. Sauvegarde des outputs. Revue par un humain. Il y a plusieurs outils. Exemple : Ce playbook https://github.com/ksator/ junos-automation-with-ansible/blob/master/junos_cli/pb_ collect_cli_output.yml prend en input la liste des commandes show ici https://github.com/ksator/junos-automation-with-ansible/ blob/master/junos_cli/cli.yml et l’exécute sur cet inventaire https://github.com/ksator/junos-automation-with-ansible/blob/master/hosts et sauve l’output ici https://github.com/ksator/ junos-automation-with-ansible/tree/master/junos_cli/cli pour une revue par un humain. La meme chose peut etre faite avec un module ansible pour EOS. Puis ajouter un push automatisé vers un server Git (Revue par un humain sur le serveur Git via les fonctions « history »): Exemple : on fait exactement la meme chose que dans la section précédente. En plus, a la fin, on demande au contenu d’automatisation de faire un git add/push/commit pour uploader le tout vers un repo git: https://github.com/ksator/junos-automation-with-ansible/ blob/master/shell/pb_git.yml Ainsi les data collectes sont sur le serveur git en on voit les diff facilement. Il y a aussi un autre workflow qui consiste a: Exécution des commandes show. Comparaison automatisée des output VS un état désiré décrit (par exemple, l’état des session BGP doit être « Established »). La source of Truth est l’état décrit, et non plus le réseau. Ce n'est pas ce qui est demande mais c'est une approche interressante aussi. Il y a plusieurs outils. Exemple : Ce playbook https://github.com/ksator/ junos-automation-with-ansible/blob/master/junos_command/pb_ check_op_states.yml passe des commandes show et parse l‘output et vérifie si la condition décrite est vraie. Dans cet exemple, le playbook vérifie que les interfaces sont up, que les voisins LLDP sont ceux souhaites (pas d’erreur de câblage), que les sessions BGP sont established, que des routes sont apprises en BGP, et que les ping vers des routes apprises en BGP repondent … L’inventaire est la https://github.com/ksator/ junos-automation-with-ansible/blob/master/hosts et les variables (description de la liste de voisins BGP/LLDP …) sont la https://github.com/ksator/junos-automation-with-ansible/ tree/master/host_vars La meme chose peut etre faite avec un module ansible pour EOS. Exemple, avec Napalm dans le cas ou un getter Napalm existe pour les deux network operating system. Ce fichier est un template qui décrit l’état désiré https://github.com/ksator/junos-automation-with-NAPALM/ blob/master/validate.j2 sous la forme de l’output du getter. Ce template est « renderisé » pour chaque device, et le getter est exécuté, et la réponse du getter est comparée avec le template « renderisé ». Ceci peut se faire en python https://github.com/ksator/ junos-automation-with-NAPALM/blob/master/validator.py ou ansible https://github.com/ksator/junos-automation-with-NAPALM/ blob/master/pb.install-conf.yml#L33-L53 Bien cordialement, Khelil *From:* frnog-requ...@frnog.org [mailto:frnog-requ...@frnog.org ] *On Behalf Of *marc celier *Sent:* Monday, March 19, 2018 11:11 AM *To:* frnog@frnog.org *Subject:* [FRnOG] [TECH] Automatisation des comparaisons de "show ... blah blah" Bonjour, Nous devons mener une maintenance sur l'ensemble du reseau, ce qui implique un nombre important d'equipements. avant et apres la maintenance nous devons executer un nombre important de commandes "show" et realiser des comparaisons visuels pour detecter un eventuel changement ou dysfonctionnement. c'est pas Top car on peut toujours manquer une info critique a cause de la masse de donnees a comparer. J'imagine qu'il y a des outils comme Ansible ou la commande diff qui pourrait etre un debut de piste, mais n'ayant jamais travaille avec ces outils je n'ai pas une claire vision de la solution globale. si vous avez deja mis en place quelque chose de similaire pouvez vous s'il vous plait partager votre experience et pistes en la matiere (environnement Juniper et Arista) - execution des commandes show - comparaison des commandes show -generation d'un rapport sur les differences Je vous remercie par avance. --- Liste de diffusion du FRnOG http://www.frnog.org/