Prise en charge d’IPv6 dans les scripts d’automatisation Python
À partir de Junos OS version 19.3R1, les appareils exécutant Junos OS avec prise en charge FreeBSD mise à niveau utilisant IPv6 dans les scripts d’automatisation Python, y compris les scripts commit, event, op et SNMP, les scripts Juniper Extension Toolkit (JET) et les scripts d’action YANG. La prise en charge d’IPv6 permet aux scripts d’automatisation Python d’établir des connexions et d’effectuer des opérations à l’aide d’adresses IPv6.
Par exemple, le script op suivant utilise Junos PyEZ pour se connecter à l’hôte à l’adresse IPv6 spécifiée et imprimer le nom d’hôte de l’équipement et les informations sur l’interface ge-0/0/0. Le script récupère le nom d’utilisateur à partir des entrées de script et demande le mot de passe de l’utilisateur.
from jnpr.junos import Device from lxml import etree from junos import Junos_Context import jcs user = Junos_Context['user-context']['user'] password = jcs.get_secret('Enter user password: ') try: with Device(host='2001:db8::2', user=user, password=password) as dev: print (dev.facts['hostname']) int_info = dev.rpc.get_interface_information({'format':'text'}, interface_name='ge-0/0/0', terse=True) print (etree.tostring(int_info, encoding='unicode')) except Exception as err: print (err)
Pour exécuter le script, configurez l’instruction language python
or language python3
et le nom du fichier de script.
[edit] user@host# set system scripts language python3 user@host# set system scripts op file connect-ipv6.py user@host# commit and-quit
Lorsque vous exécutez le script, il imprime le nom d’hôte du périphérique distant et des informations sur l’interface ge-0/0/0.
user@host> op connect-ipv6.py Enter user password: r2 <output> Interface Admin Link Proto Local Remote ge-0/0/0 up up ge-0/0/0.0 up up inet6 2001:db8::2/32 fe80::5668:a3ff:fe16:79ef/64 multiservice </output>