Exemples de configlet CLI
Des configlets par défaut sont ajoutés lors du démarrage du serveur ou de la migration des données. Ces configlets par défaut sont ajoutés uniquement lors du démarrage et de la migration des données du serveur initial. L’utilisateur peut effectuer toutes les opérations habituelles sur Xpath et Regex par défaut, y compris le fonctionnement de suppression.
L’ajout de configlets par défaut pendant la migration comporte les conditions suivantes :
13.1 à 13.3 :
Des configlets par défaut sont ajoutés si une entité portant le même nom n’existe pas dans 13.1.
Les configlets par défaut sont remplacés si une entité portant le même nom existe dans 13.1.
13.3 vers les versions ultérieures :
Les configlets par défaut ne sont pas ajoutés ou écrasés si le configlet par défaut est modifié ou supprimé par l’utilisateur dans 13.3.
Exemple 1 : Définition de la description d’une interface physique
Context: /device/interface-information/physical-interface Ce configlet est conçu pour l’interface physique.
Configlet
interfaces { $INTERFACE{ description "$DESC"; } }
Parameters
Paramètre |
Détails |
---|---|
$INTERFACE |
Il s’agit d’une variable par défaut et la valeur correspond au nom de l’interface à partir de laquelle le configlet est invoqué. Ce n’est pas le cas si le configlet est invoqué à partir de l’espace de travail Cli Configlets, car l’exécution n’est pas associée à une interface spécifique. |
$DESC |
Un champ texte pour obtenir la chaîne de description. La valeur est apportée au moment de l’exécution. |
Lors de l’application de la cli Configlet, l’utilisateur doit saisir les paramètres. Par exemple, l’utilisateur doit saisir une valeur pour $DESC.
Prenons notre exemple d’interface ge-0/1/3 et les valeurs suivantes sont données en entrée.
Paramètre |
Valeur |
---|---|
$DESC |
TEST DESC |
La chaîne de configuration générée serait
interfaces { ge-0/1/3{ description "TEST DESC"; } }
Exemple 2 : Définition du vlan d’une interface logique, où l’id vlan est sélectionné parmi un ensemble prédéfini de valeurs
Context: /device/configuration/interfaces/interface/unit Cette CLI Configlet est destinée à l’interface logique
CLI Configlet
interfaces { $INTERFACE { vlan-tagging; unit $UNIT{ vlan-id $VLANID.get(0); } } }
##Since VLAN id will be given as a selection field, the value would be a collection and to get the first selected value, use .get(0)
Paramètre |
Détails |
---|---|
$INTERFACE |
Il s’agit d’une variable par défaut et la valeur correspond au nom de l’interface à partir de laquelle le configlet CLI est invoqué. Cela serait nul si le configlet CLI est invoqué à partir de l’espace de travail CLI Configlets car l’exécution n’est pas associée à une interface spécifique. |
$UNIT |
Il s’agit d’une variable par défaut et la valeur correspond au nom d’unité de l’interface logique à partir de laquelle le configlet CLI est invoqué. Cela serait nul si le configlet CLI est invoqué à partir de l’espace de travail CLI Configlets car l’exécution n’est pas associée à une interface logique spécifique. |
$VLANID |
Il s’agit d’un champ de sélection et la valeur sera choisie au moment de l’exécution. Type: Champ de sélection Selection Values: 0,1,2,3 Default Value: 3 |
Lors de l’application de la cli Configlet, l’utilisateur doit saisir les paramètres. Par exemple, l’utilisateur doit saisir une valeur pour $VLANID.
Prenons notre exemple d’interface ge-0/1/3.3 et les valeurs suivantes sont données en entrée.
Étant donné que $VLANID est défini comme un champ de sélection, l’utilisateur doit sélectionner une valeur forme une liste. La liste des options est spécifiée par valeurs de sélection Xpath ou dans le champ Valeurs de sélection. La sélection par défaut dans la liste est de 3 comme défini dans le champ de valeur par défaut.
Paramètre |
Valeur |
---|---|
$VLANID |
2 |
La chaîne de configuration générée serait
interfaces { ge-0/1/3 { vlan-tagging; unit 3{ vlan-id 2; } } }
Exemple 3 : Définition d’une description sur toutes les interfaces d’un équipement
Context: NULL ou/équipement. Ciblant un équipement, le contexte d’un équipement peut être null ou /device
CLI Configlet
interfaces { #foreach($INTERFACENAME in $INTERFACENAMES) $INTERFACENAME { description "$DESC"; } #end }
Paramètre |
Détails |
---|---|
$INTERFACENAMES |
Variable invisible avec un XPath configuré pour récupérer tous les noms d’interface. Configured values XPath: /device/interface-information/physical-interface/name/text() |
$DESC |
Un champ texte pour obtenir la chaîne de description. La valeur est apportée au moment de l’exécution. |
L’entrée suivante est donnée lors de l’exécution du configlet CLI
Paramètre |
Valeur |
---|---|
$DESC |
TEST DESC |
La chaîne de configuration générée serait (lorsque l’unité possède trois interfaces physiques, ge-0/0/0, ge-0/0/1 et ge-0/0/2).
interfaces { ge-0/0/0 { description "TEST DESC"; } ge-0/0/1 { description "TEST DESC"; } ge-0/0/2 { description "TEST DESC"; } }
Exemple 4 : Définition d’une configuration dans tous les PIC appartenant à un équipement et dans certaines configurations uniquement sur le premier PIC de FPC 0
Context: NULL ou/équipement. Ciblant un équipement, le contexte d’un équipement peut être null ou /device
##$ELEMENTS : /équipement/châssis-inventory/chassis/chassis-module[starts-with(name,"FPC »)]
/nom/texte() | /équipement/châssis-inventory/châssis/module de châssis
[starts-with(name,"FPC »)]/chassis-sub-module[starts-with(name,"PIC »)]/name/text()
##this contient la liste de tous les PIC et PIC dans l’ordre transversal « Depth-First ».
Le réseau ##Hierarchy est un réseau en 2 dimensions utilisé pour stocker la hiérarchie FPC-PIC, chaque ligne contenant des PIC appartenant à un FPC unique. Le premier élément est le FPC.
CLI Configlet
#set( $HIERARCHY = [] ) #set( $LOCALARRAY = []) #foreach ( $ELEMENT in $ELEMENTS ) #if($ELEMENT.startsWith("FPC")) ## Create a new array for each FPC with the first element as FPC #set( $LOCALARRAY = [$ELEMENT]) #set( $result = $HIERARCHY.add($LOCALARRAY)) #elseif($ELEMENT.startsWith("PIC")) ## Add the PIC in the current Local array., This is the array of the parent FPC #set( $result = $LOCALARRAY.add($ELEMENT)) #end #end chassis { redundancy { failover on-disk-failure; graceful-switchover; } aggregated-devices { ethernet { device-count 16; } } #foreach ($HIERARCHYELEMENT in $HIERARCHY ) $HIERARCHYELEMENT.get(0) { #set($HIERARCHYELEMENTSIZE = $HIERARCHYELEMENT.size() - 1) #foreach ($HIERARCHYELEMENTINDEX in [1..$HIERARCHYELEMENTSIZE] ) $HIERARCHYELEMENT.get($HIERARCHYELEMENTINDEX){ ## Set the tunnel services setting for the first PIC in FPC 0 #if($HIERARCHYELEMENTINDEX == 1 && $HIERARCHYELEMENT.get(0) == "FPC 0") tunnel-services { bandwidth 1g; } #end traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } #end } #end }
Parameters
Paramètre |
Détails |
---|---|
$ELEMENTS |
Il s’agit d’un champ invisible et la valeur ne peut pas être définie par l’utilisateur au moment de l’exécution. Les valeurs sont prises sous la forme d’un XPath prédéfini Type: Champ invisible Configured Value XPath: /équipement/châssis-inventory/chassis/chassis-module[starts-with(name,"FPC »)] /name/text()/device/chassis-inventory/chassis/chassis-module[commence par (nom,"FPC »)] /sous-module/châssis[starts-with(name,"PIC »)]/name/text() Ce XPath renvoie la liste des PIC et PIC est l’ordre « Depth First Traversal ». |
Lors de l’exécution de ce configlet CLI, le XPath de $ELEMENTS param renvoie la liste des PIC et PIC présents dans l’équipement. Les valeurs sont par exemple [FPC 0,PIC 0,PIC 1, FPC 1, PIC 0, PIC 1] Cet ordre implique l’association
FPC 0
PIC 0
PIC 1
FPC 1
PIC 0
PIC 1
Lorsque la cli Configlet est exécutée, nous obtenons la chaîne de configuration suivante
chassis { redundancy { failover on-disk-failure; graceful-switchover; } aggregated-devices { ethernet { device-count 16; } } fpc 1 { pic 0 { tunnel-services { bandwidth 1g; } traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } pic 1 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } } fpc 2 { pic 0 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } pic 1 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } } }
Exemple 5 : Arrêt de la description d’une interface physique
Context: /device/interface-information/physical-interface Cette CLI Configlet est destinée à l’interface physique
CLI Configlet
interfaces { #if( $INTERFACENAME == 'ge-0/0/0') #terminate('Should not change description for ge-0/0/0 interfaces.') #{else} $INTERFACENAME { unit 0 { description "Similar desc"; family ethernet-switching; } } #end }
Paramètre |
Détails |
---|---|
$INTERFACENAME |
Variable avec un XPath configuré pour récupérer tous les noms d’interface. Configured Value XPath: //device/interface-information/physical-interface/name/text() |
Lorsque vous utilisez des $INTERFACE, des $UNIT, des chemins de valeur configurés, des params invisibles, des champs de sélection ; la définition variable de l’éditeur de configlet doit contenir .get(0) afin d’extraire la valeur du tableau. Par exemple : $INTERFACE.get(0)
Exemple 6 : Suppression de la configuration d’une interface physique
Context: /device/interface-information/physical-interface Ce configlet CLI peut être utilisé pour supprimer la configuration activée sur l’interface physique afin de prendre en charge la gestion des défaillances de liaison IEEE 802.3ah.
CLI Configlet
protocols { oam { ethernet { link-fault-management { delete: interfaces ge-0/0/0; } } } }
Assurez-vous d’insérer l’instruction delete:
au niveau hiérarchique approprié pour éviter que la configuration nécessaire ne soit supprimée de l’équipement.