Remplacer des modèles dans les données de configuration à l’aide du protocole NETCONF ou Junos XML
À partir de la version 15.1R1 de Junos OS, dans une session de protocole NETCONF ou Junos XML avec un équipement exécutant Junos OS, vous pouvez remplacer les variables et les identifiants dans la configuration en incluant l’attribut lors de l’exécution replace-pattern
d’une <load-configuration>
opération. L’attribut replace-pattern
remplace le modèle donné par un autre modèle global ou au niveau de la hiérarchie ou de l’objet indiqué dans la configuration. Par exemple, vous pouvez utiliser cette fonctionnalité pour rechercher et remplacer toutes les occurrences d’un nom d’interface lorsqu’un PIC est déplacé vers un autre emplacement du routeur. La fonctionnalité de l’attribut est identique à celle de la replace pattern
commande du mode de configuration dans l’interface cli de Junos OS.
L’opération de modèle de remplacement ne peut être utilisée qu’avec les données de configuration formatées en tant qu’éléments de balise XML Junos.
Pour remplacer un modèle, une application cliente émet les éléments et balise et inclut les <rpc>
éléments de balise XML Junos de base décrits dans Création, modification ou suppression d’éléments de configuration à l’aide du protocole XML Junos.<load-configuration>
Au niveau de la hiérarchie ou de l’objet où vous souhaitez remplacer le modèle, incluez les attributs suivants :
-
replace-pattern
— Modèle à remplacer. -
with
— Modèle de remplacement. -
upto
—(Facultatif) Nombre d’occurrences à remplacer. Si vous omettez cet attribut ou que vous le définissez sur zéro, l’équipement remplace toutes les instances du modèle dans l’étendue spécifiée.
L’emplacement des attributs dans la configuration détermine l’étendue du remplacement, comme décrit dans les sections suivantes.
Remplacement des modèles à l’échelle mondiale dans la configuration
Pour remplacer globalement un modèle dans la base de données de configuration du candidat ou dans la base de données de configuration ouverte, incluez les replace-pattern
attributs et with
dans la balise d’ouverture <configuration>
.
<rpc> <load-configuration> <configuration replace-pattern="pattern1" with="pattern2" [upto="n"]> </configuration> </load-configuration> </rpc>
Par exemple, le RPC suivant remplace toutes les instances de 172.17.1.5 par 172.16.1.1 :
<rpc> <load-configuration> <configuration replace-pattern="172.17.1.5" with="172.16.1.1"> </configuration> </load-configuration> </rpc>
Après avoir exécuté le RPC, vous pouvez comparer la configuration du candidat mise à jour à la configuration active pour vérifier le remplacement du modèle. Vous devez valider la configuration pour que les modifications prennent effet.
<rpc> <get-configuration compare="rollback" rollback="0" format="text"> </get-configuration> </rpc> <rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <configuration-information> <configuration-output> [edit groups global system ntp] - boot-server 172.17.1.5; + boot-server 172.16.1.1; [edit groups global system ntp] + server 172.16.1.1; - server 172.17.1.5; </configuration-output> </configuration-information> </rpc-reply>
Remplacement de modèles au sein d’une hiérarchie ou d’un objet conteneur sans identifiant
Pour remplacer un modèle sous un niveau hiérarchique spécifique, y compris tous ses enfants (ou un objet conteneur qui a des enfants mais aucun identifiant), une application cliente inclut les replace-pattern
attributs et with
dans la balise vide qui représente le niveau hiérarchique ou l’objet conteneur.
<rpc> <load-configuration> <configuration> <!-- opening tag for each parent element --> <level-or-object replace-pattern="pattern1" with="pattern2" [upto="n"]/> <!-- closing tag for each parent element --> </configuration> </load-configuration> </rpc>
Le RPC suivant remplace les instances de fe-0/0/1 par ge-1/0/1 au niveau hiérarchique [edit interfaces]
:
<rpc> <load-configuration> <configuration> <interfaces replace-pattern="fe-0/0/1" with="ge-1/0/1"/> </configuration> </load-configuration> </rpc>
Après avoir exécuté le RPC, vous pouvez comparer la configuration du candidat mise à jour à la configuration active pour vérifier le remplacement du modèle. Par exemple :
<rpc> <get-configuration compare="rollback" rollback="0" format="text"> </get-configuration> </rpc> <rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <configuration-information> <configuration-output> [edit interfaces] - fe-0/0/1 { - unit 0 { - family inet { - address 10.0.1.1/27; - } - } - } + ge-1/0/1 { + unit 0 { + family inet { + address 10.0.1.1/27; + } + } + } </configuration-output> </configuration-information> </rpc-reply>
Remplacement de modèles par un objet de configuration doté d’un identifiant
Pour remplacer un modèle par un objet de configuration doté d’un identifiant, une application cliente inclut les replace-pattern
attributs et with
dans la balise d’ouverture de l’objet, qui renferme ensuite l’élément de balise d’identification pour cet objet. Dans l’exemple suivant, l’élément de balise d’identification est <name>
:
<rpc> <load-configuration> <configuration> <!-- opening tag for each parent element --> <container-tag replace-pattern="pattern1" with="pattern2" [upto="n"]> <name>identifier</name> </container-tag> <!-- closing tag for each parent element --> </configuration> </load-configuration> </rpc>
Le RPC suivant remplace les instances de « 4.5 » par « 4.1 », mais uniquement pour l’interface fe-0/0/2 sous la [edit interfaces]
hiérarchie :
<rpc> <load-configuration> <configuration> <interfaces> <interface replace-pattern="4.5" with="4.1"> <name>fe-0/0/2</name> </interface> </interfaces> </configuration> </load-configuration> </rpc>
Après avoir exécuté le RPC, vous pouvez comparer la configuration du candidat mise à jour à la configuration active pour vérifier le remplacement du modèle. Par exemple :
<rpc> <get-configuration compare="rollback" rollback="0" format="text"> </get-configuration> </rpc> <rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <configuration-information> <configuration-output> [edit interfaces fe-0/0/2 unit 0 family inet] + address 10.0.4.1/30; - address 10.0.4.5/30; </configuration-output> </configuration-information>