SUR CETTE PAGE
Exemple : récupérer la configuration du candidat pré-héritage dans un script de validation
Cet exemple montre comment construire un script de validation pour récupérer la configuration du candidat pré-héritage pour une session de configuration normale ou privée.
Exigences
Équipement de routage, de commutation ou de sécurité exécutant Junos OS version 12.2 ou ultérieure.
Aperçu
Dans Junos OS, lorsqu’une configuration de candidat est validée, elle est inspectée par chaque script de validation actif. L’entrée normale d’un script de validation est la configuration post-héritage du candidat, dans laquelle toutes les valeurs des groupes de configuration ont été héritées par leurs cibles et les parties inactives de la configuration ont été supprimées.
Parfois, un script de validation nécessite d’accéder à la configuration du candidat pré-héritage plutôt qu’à la configuration post-héritage qu’il reçoit par défaut. Étant donné que les sessions de configuration normales utilisent la base de données de candidats régulière, et que les sessions de configuration privées utilisent une base de données privée dédiée pour les candidats, l’emplacement de la base de données des candidats dépend du type de session.
Dans un script de validation, l’appel de procédure <get-configuration>
distante (RPC) avec l’attribut récupère la database="candidate"
configuration normale du candidat pré-héritage. Le <get-configuration>
RPC dispose également d’un database-path
attribut, qui est utilisé pour spécifier l’emplacement de la base de données de configuration pré-héritée pour une session de configuration normale ou privée. Cet attribut est une alternative à l’attribut et indique le database
fichier de base de données à charger. Les scripts de validation peuvent appeler le <get-configuration>
RPC avec l’attribut database-path
pour récupérer la configuration de candidat pré-héritage spécifique à cette session.
La variable $junos-context
globale contient l’élément commit-context/database-path
qui stocke l’emplacement de la configuration candidat pré-héritage de la session. Dans une session de configuration normale, l’élément <database-path>
contient l’emplacement de la base de données de candidats normale :
<junos-context> <commit-context> <database-path>/var/run/db/juniper.db</database-path> </commit-context> </junos-context>
Dans une session de configuration privée, l’élément <database-path>
contient l’emplacement de la base de données de candidats privée spécifique à une session. Par exemple :
<junos-context> <commit-context> <commit-private/> <database-path>/var/run/db/private/juniper-1396.db</database-path> </commit-context> </junos-context>
Pour construire un script de validation qui récupère la configuration de candidature pré-héritage spécifique à cette session, incluez le <get-configuration>
RPC dans le script de validation et définissez l’attribut <database-path>
sur $junos-context/commit-context/database-path
. Pour les sessions de configuration normales, le script de validation récupère la configuration normale du candidat pré-héritage, et pour les sessions de configuration privées, le script de validation récupère la configuration privée du candidat pré-héritage.
Si un script de validation inclut à la fois les database
attributs et les database-path
attributs dans la <get-configuration>
balise, l’attribut prend la database
priorité.
Configuration
Configuration du script de validation
Procédure étape par étape
Pour construire un script de validation qui récupère la configuration du candidat pré-héritage spécifique à cette session :
Dans un éditeur de texte, ajoutez la plate-forme de script de validation à un fichier.
version 1.0; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match configuration { }
Créez une variable qui stocke le
<get-configuration>
RPC avec l’attributdatabase-path
défini sur$junos-context/commit-context/database-path
.var $rpc = <get-configuration database-path=$junos-context/commit-context/database-path>;
Ajoutez une instruction qui appelle le
<get-configuration>
RPC et stocke la configuration résultante dans une variable.var $config = jcs:invoke( $rpc );
-
Reportez-vous aux niveaux hiérarchiques et aux déclarations souhaités dans la configuration du candidat pré-héritage à l’aide de constructions XPath normales, par exemple :
var $hostname = $config/system/host-name;
Incluez toutes les déclarations requises pour appliquer vos règles de configuration personnalisées pendant le processus de validation.
Copiez le script dans le répertoire /var/run/scripts/commit sur l’équipement.
En mode configuration, configurez l’instruction
file
pour activer le script de validation.[edit system scripts commit] user@R1# set file script-name.slax
Émettez la
commit
commande pour valider la configuration.[edit] user@R1# commit
Le script de validation est exécuté pendant l’opération de validation.
Résultats
version 1.0; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match configuration { var $rpc = <get-configuration database-path=$junos-context/commit-context/database-path>; var $config = jcs:invoke( $rpc ); ... <!-- commit script rules --> }