SUR CETTE PAGE
Utiliser Junos PyEZ pour configurer des équipements Junos
RÉSUMÉ Vous pouvez utiliser l’utilitaire Junos PyEZ Config
ou les tables et vues Junos PyEZ pour configurer les équipements Junos.
Junos PyEZ vous permet d’apporter des modifications de configuration structurées et non structurées sur les équipements Junos. Le compte d’utilisateur utilisé pour apporter des modifications à la configuration doit disposer des autorisations nécessaires pour modifier les parties pertinentes de la configuration sur chaque appareil. Si vous ne définissez pas d’utilisateur, l’utilisateur est défini par défaut sur $USER
.
Les sections suivantes comparent les modifications de configuration structurées et non structurées et fournissent des détails sur le processus de configuration de Junos PyEZ lors de modifications de configuration non structurées à l’aide de l’utilitaire Config
ou de modifications de configuration structurées à l’aide de Tables and Views.
Comprendre les modifications de configuration structurées et non structurées
Les modifications de configuration non structurées, qui consistent à charger des données de configuration statiques ou modélisées au format texte ASCII, éléments XML Junos, commandes Junos OS set
ou notation d’objet JavaScript (JSON), sont effectuées à l’aide de l’utilitaire jnpr.junos.utils.config.Config
. En revanche, les modifications de configuration structurées utilisent les tables et vues de configuration Junos PyEZ pour définir des ressources spécifiques à configurer, par exemple, un compte d’utilisateur Junos OS. Lorsque vous ajoutez la table à l’infrastructure Junos PyEZ, Junos PyEZ crée dynamiquement une classe de configuration pour la ressource, ce qui vous permet de configurer cette ressource par programmation sur un périphérique.
Lorsque vous utilisez l’utilitaire Config
pour apporter des modifications de configuration non structurées sur des équipements Junos, vous pouvez modifier n’importe quelle partie de la configuration, mais vous devez utiliser l’un des formats acceptés pour les données de configuration ainsi que la syntaxe correcte pour ce format. Les utilisateurs qui sont familiers avec les formats de configuration pris en charge et qui souhaitent avoir la possibilité de modifier n’importe quelle partie de la configuration peuvent privilégier cette méthode pour les modifications de configuration. L’utilitaire Config
vous permet également de revenir à une configuration précédemment validée ou de charger la configuration de secours existante.
Les modifications de configuration structurées, en revanche, nécessitent que vous créiez des tables et des vues pour définir des ressources spécifiques et vous permettent uniquement de configurer les ressources définies sur l’appareil. Lorsque vous définissez une ressource structurée, vous pouvez spécifier les instructions de configuration qu’un utilisateur peut configurer pour la ressource, ainsi que des vérifications de type et de contrainte pour vous assurer que les utilisateurs fournissent des valeurs acceptables pour les données dans leur application Junos PyEZ. Une fois qu’une table et une vue ont été créées, elles peuvent facilement être partagées et réutilisées. Un utilisateur de Table peut configurer la ressource par programmation sur un appareil, et l’utilisateur n’a aucune connaissance des formats de configuration pris en charge ou de leur syntaxe.
Le Tableau 1 récapitule les deux méthodes prises en charge par Junos PyEZ pour modifier la configuration.
Type de modification de la configuration |
Utilitaire |
Portée |
Format des données de configuration |
Informations complémentaires |
---|---|---|---|---|
Structuré |
Tableaux et vues |
Limité aux instructions de configuration définies dans le tableau et la vue |
– |
Permet d’apporter des modifications de configuration ciblées Ne nécessite aucune connaissance des formats de configuration ou de leur syntaxe |
Non structurées |
|
N’importe quelle partie de la configuration |
|
Soutient:
|
Cette rubrique traite du processus de configuration général ainsi que des opérations et des éléments communs aux deux méthodes de configuration. Pour plus d’informations sur l’exécution des mises à jour de configuration à l’aide de l’utilitaire Config
ou de Tables and Views, reportez-vous à la documentation spécifique à cette méthode de configuration.
Pour plus d’informations sur l’utilisation de l’utilitaire Config
pour apporter des modifications de configuration non structurées, consultez les rubriques suivantes :
Utiliser l’utilitaire de configuration Junos PyEZ pour configurer des équipements Junos
Exemple : Utilisation de Junos PyEZ pour charger des données de configuration à partir d’un fichier
Pour plus d’informations sur l’utilisation des tables et vues de configuration pour apporter des modifications de configuration structurées, consultez les rubriques suivantes :
Comprendre le processus de configuration générale
Junos PyEZ vous permet d’apporter des modifications à la configuration des équipements Junos. Une fois la connexion à l’appareil établie, vous créez un objet ou Table, selon la méthode de Config
configuration que vous préférez, et vous l’associez à l’objet Device
. Par exemple :
Objet de configuration
from jnpr.junos import Device from jnpr.junos.utils.config import Config with Device(host='dc1a.example.com') as dev: cu = Config(dev)
Objet Table
from jnpr.junos import Device from myTables.ConfigTables import ServicesConfigTable with Device(host='dc1a.example.com') as dev: sct = ServicesConfigTable(dev)
Par défaut, Junos PyEZ met à jour la configuration globale candidate (également appelée base de données de configuration partagée). Le processus de base pour apporter des modifications de configuration consiste à verrouiller la base de données de configuration, à charger les modifications de configuration, à valider la configuration pour qu’elle soit active, puis à déverrouiller la base de données de configuration. Lorsque vous utilisez l’utilitaire Junos PyEZ Config
pour apporter des modifications de configuration non structurées dans la base de données de configuration partagée, vous pouvez effectuer les actions suivantes en appelant les méthodes d’instance appropriées décrites ici :
-
Verrouillez la configuration à l’aide de
lock()
-
Modifiez la configuration en effectuant l’une des actions suivantes :
-
Appelez
load()
lors du chargement d’une nouvelle configuration complète ou de la modification de parties spécifiques de la configuration -
Appelez
rollback()
pour revenir à une configuration précédemment validée, comme décrit dans Restaurer la configuration -
Appelez
rescue()
pour charger la configuration de secours, comme décrit dans Charger la configuration de secours
-
-
Validez la configuration à l’aide
commit()
de , comme décrit dans Valider la configuration et Utiliser Junos PyEZ pour valider la configuration -
Déverrouillez la configuration à l’aide de
unlock()
Si vous utilisez Tables et vues pour apporter des modifications de configuration structurées sur un périphérique, vous pouvez choisir d’appeler les lock()
méthodes , load()
, commit()
et unlock()
individuellement, ou vous pouvez appeler la set()
méthode, qui appelle automatiquement toutes ces méthodes.
La load()
méthode exécute la même fonction pour les objets Table et Config
les objets, mais vous fournissez des paramètres différents en fonction du type d’objet qui appelle la méthode.
Comment spécifier le mode de configuration
Par défaut, Junos PyEZ met à jour la configuration globale candidate. Vous pouvez également spécifier un mode de configuration différent à utiliser lors de la modification de la base de données de configuration. Pour spécifier un mode autre que le mode par défaut, vous devez créer l’objet Config
ou Table à l’aide d’un gestionnaire de contexte (with ... as
syntaxe) et définir l’argument mode
sur le mode souhaité. Les modes pris en charge sont , exclusive
dynamic
, private
, batch
, et ephemeral
.
Lorsque vous spécifiez un mode autre que le mode par défaut, le gestionnaire de contexte gère l’ouverture et le verrouillage, ainsi que la fermeture et le déverrouillage de la base de données. Cela permet de s’assurer que vous ne laissez pas involontairement la base de données dans un état verrouillé. Dans ces cas, il vous suffit d’appeler les load()
méthodes et commit()
pour configurer l’appareil.
Les exemples suivants apportent des modifications de configuration à l’aide du configure private
mode :
from jnpr.junos import Device from jnpr.junos.utils.config import Config with Device(host='dc1a1.example.com') as dev: with Config(dev, mode='private') as cu: cu.load('set system services netconf traceoptions file test.log', format='set') cu.pdiff() cu.commit()
from jnpr.junos import Device from myTables.ConfigTables import ServicesConfigTable with Device(host='dc1a.example.com') as dev: with ServicesConfigTable(dev, mode='private') as sct: sct.ftp = True sct.ssh = True sct.telnet = True sct.append() sct.load() sct.pdiff() sct.commit()
Le gestionnaire de contexte gère l’ouverture et le verrouillage de la base de données de configuration en private
mode , exclusive
, dynamic
, batch
ou ephemeral
. Ainsi, l’appel des lock()
méthodes or set()
dans l’un de ces modes entraîne une LockError
exception.
Junos PyEZ vous permet de mettre à jour la base de données de configuration éphémère sur les équipements qui prennent en charge cette base de données. La base de données éphémère est une base de données de configuration alternative qui fournit une interface de programmation rapide pour effectuer des mises à jour de configuration sur les équipements Junos.
La base de données de configuration éphémère est une fonctionnalité avancée qui, si elle est mal utilisée, peut avoir un impact négatif sérieux sur le fonctionnement de l’appareil. Pour plus d’informations, reportez-vous à la section Présentation de la base de données de configuration éphémère.
Pour ouvrir et configurer l’instance par défaut de la base de données de configuration éphémère, incluez l’argument mode='ephemeral'
. Par exemple :
from jnpr.junos import Device from jnpr.junos.utils.config import Config with Device(host='router1.example.com') as dev: with Config(dev, mode='ephemeral') as cu: cu.load('set protocols mpls label-switched-path to-hastings to 192.0.2.1', format='set') cu.commit()
Pour ouvrir et configurer une instance définie par l’utilisateur de la base de données de configuration éphémère, incluez l’argument mode='ephemeral'
, puis définissez-le ephemeral_instance
sur le nom de l’instance.
from jnpr.junos import Device from jnpr.junos.utils.config import Config with Device(host='router1.example.com') as dev: with Config(dev, mode='ephemeral', ephemeral_instance='eph1') as cu: cu.load('set protocols mpls label-switched-path to-hastings to 192.0.2.1', format='set') cu.commit()
Comment spécifier l’opération de chargement
Dans Junos PyEZ, vous pouvez charger les modifications de configuration en utilisant plusieurs des mêmes opérations de chargement que celles prises en charge dans l’interface de ligne de commande de Junos OS. Vous spécifiez l’opération de chargement souhaitée en incluant ou en omettant les paramètres appropriés dans la méthode lors de l’apport set()
de modifications de configuration structurées à l’aide de tables et de vues, ou dans la méthode pour les load()
modifications de configuration structurées ou non structurées. Le Tableau 2 récapitule les paramètres requis pour chaque type d’opération de chargement.
Étant donné que les load override
opérations et load update
nécessitent une configuration complète, les overwrite=True
arguments et update=True
ne doivent pas être utilisés lors de la modification de la configuration à l’aide de tables, qui ne modifient que des instructions spécifiques dans la configuration.
Opération de chargement |
Argument |
Description |
Première version prise en charge de Junos PyEZ |
---|---|---|---|
|
|
Fusionnez la configuration chargée avec la configuration existante. |
1.0 |
|
|
Remplacez l’ensemble de la configuration par la configuration chargée. |
1.0 |
|
|
Chargez les données de configuration à partir d’un fichier de correctif. |
2.4.0 |
|
– |
Fusionnez la configuration chargée avec la configuration existante, mais remplacez les instructions de la configuration existante par celles qui spécifient la |
1.0 |
|
|
Chargez une configuration complète et comparez-la à la configuration existante. Chaque élément de configuration différent dans la configuration chargée remplace son élément correspondant dans la configuration existante. Lors de l’opération de validation, seuls les processus système affectés par les éléments de configuration modifiés analysent la nouvelle configuration. |
2.1.0 |
Création de l’objet Config ou Table en tant que propriété de l’instance d’appareil
La Device
méthode class bind()
vous permet d’attacher diverses instances et méthodes à l’instance Device
. Dans votre application Junos PyEZ, vous avez la possibilité de lier l’objet Config
ou Table à l’instance Device
. La fonctionnalité des méthodes ne change pas, mais l’exécution de la méthode diffère légèrement. Par exemple :
En tant que variable autonome :
with Device(host='dc1a.example.com') as dev: cu = Config(dev) cu.lock()
En tant que propriété liée :
with Device(host='dc1a.example.com') as dev: dev.bind( cu=Config ) dev.cu.lock()