SUR CETTE PAGE
Développer des applications JET sur l’équipement
Aperçu
Les applications JET écrites en langageS C, C++ et Python peuvent être exécutées sur l’équipement. Vous pouvez développer les applications dans la VM JET téléchargée, puis les déployer sur l’équipement exécutant Junos OS. Vous pouvez signer des applications JET sur l’équipement pour montrer qu’elles peuvent être fiables.
La date de fin de vie et de fin de support de Python 2.7 est le 1er janvier 2020. Le chemin officiel de mise à niveau pour Python 2.7 est vers Python 3. Comme la prise en charge de Python 3 est ajoutée aux équipements exécutant Junos OS pour les différents types de scripts sur l’équipement, nous vous recommandons de migrer les types de scripts pris en charge de Python 2 vers Python 3.
À partir de Junos OS version 21.1R1 et Junos OS Evolved version 22.3R1, Python 2.7 n’est plus pris en charge et l’instruction set system scripts language python
est obsolète. Utilisez l’instruction à la set system scripts language python3
place.
La figure 1 montre le workflow de développement d’applications pour les applications JET non signées et sur l’équipement.

Voir aussi
Développer des applications JET non signées
Les applications JET non signées ne peuvent être écrites qu’en Python.
Pour développer une application JET non signée :
(Facultatif) Téléchargez et configurez la VM JET. Voir Configurer la VM JET.
Développez votre application en Python.
Emballez votre application. Voir le package des applications JET.
-
Configurez l’instruction
language
sur l’équipement Junos. Par exemple, pour utiliser Python 3 pour exécuter un script JET prenant en charge Python 3 :[edit] user@device# set system scripts language python3
Voir Comprendre les scripts d’automatisation Python pour les équipements exécutant Junos OS pour plus d’informations.
Exécutez l’application sur un équipement fonctionnant sous Junos OS.
Développer des applications JET signées
Vous pouvez développer des applications signées en C, C++ ou Python.
Pour développer une application signée :
Téléchargez les packages dont vous avez besoin et configurez la VM JET. Voir Configurer la VM JET.
Demandez un certificat de signature. Voir Demander un certificat de signature.
Développez l’application.
Configurez la licence si votre application est écrite en C ou C++. Cette étape est facultative pour les applications écrites en Python. Pour plus de détails, voir Configuration de l’application JET et de sa licence sur un équipement exécutant Junos OS .
Créez le package et signez le package à l’aide du certificat acquis.
Déployez l’application sur un équipement exécutant Junos OS.
Demander un certificat de signature
Pour développer et distribuer des applications JET, vous devez installer un certificat de signature de package sur la VM JET en exécutant le script de demande de certificat. Ce script vous aide à créer une clé de signature et une demande de certificat à utiliser avec JET.
Ne partagez jamais la clé de signature avec qui que ce soit, y compris Juniper Networks. La clé permet à n’importe qui de signer des applications en qui votre routeur fera confiance. Par conséquent, traitez la clé avec le même niveau de sécurité que le mot de passe racine des routeurs. Une fois que vous avez obtenu votre clé de signature, enregistrez-la dans un fichier en dehors de la VM.
Le script de demande de certificat demande les informations suivantes :
Ville, état et pays.
Votre organisation et votre unité. L’organisation ne doit pas être vague. Il ne peut pas y avoir de traits d’union (« - »).
Type de certificat : spécifiez si le certificat est commercial ou privé. Les entités non-Juniper doivent utiliser des services commerciaux. Les certificats privés ne sont attribués que lorsque l’organisation est Juniper.
Préfixe fournisseur : il s’agit du nom unique attribué par Juniper à chaque partenaire JET.
Chaîne utilisateur : il s’agit d’une spécification supplémentaire de votre choix. Il peut s’agir d’une chaîne spécifiant l’équipe de développement ou le nom du projet. La chaîne utilisateur peut être composée d’une lettre minuscule suivie d’une ou plusieurs minuscules ou chiffres (par exemple, teamjet2).
Portée du déploiement : l’étendue du déploiement est la chaîne attribuée par Juniper pour différencier plusieurs certificats pour le même partenaire JET. Cela définit la période de validité du certificat généré. Le champ d’application peut être commercial ou d’évaluation. Si aucun ne vous est assigné, laissez-le vide.
Numéro d’index : ce numéro est connu sous le nom de numéro de génération de certificat. Il sera 1 pour votre certificat initial. Lorsqu’un certificat expire et que vous en demandez un nouveau, ce numéro est incrémenté.
Adresse e-mail : l’adresse e-mail du contact du certificat sera intégrée au certificat. Nous vous recommandons d’utiliser l’adresse e-mail d’un département ou d’une unité de votre organisation. Nous vous recommandons de ne pas utiliser d’adresse e-mail personnelle.
Pour créer une application signée, demandez des certificats et copiez-les comme expliqué dans la procédure suivante. Cette procédure est facultative si vous souhaitez créer une application non signée.
Pour demander manuellement un certificat :
Créez le répertoire /usr/local/junos-jet/certs s’il n’existe pas déjà sur votre équipement.
Dans un terminal vm, exécutez la
jet-certificate-request
commande.Le script vous amène à répondre à une série de questions. Répondez aux questions et appuyez sur Entrée après chaque réponse. Consultez les exigences pour chaque réponse ci-dessus.
En fonction de vos réponses, le script génère deux fichiers dans le répertoire /usr/local/junos-jet/certs : certname_key.pem et certname_req.pem. C’est certname le nom du certificat.
Le nom du certificat doit suivre le format ORGANISATION-UTILISATEUR-TYPE-NUMBER. Les quatre paramètres sont obligatoires, sinon vous verrez l’erreur suivante :
ERROR: CN has invalid format; regex: ^([a-z0-9]+)-([a-z0-9]+)-(commercial|private)-([1-9][0-9]*)$ Expected format: ORGANIZATION-USER-TYPE-NUMBER organization: [a-z0-9]+ Must be "juniper" for type is "private" user: [a-z0-9]+ type: commercial|private number: [1-9][0-9]*
Enregistrez le certnamefichier _key.pem en dehors de la VM. C’est votre clé de signature. Assurez-vous que personne en dehors de votre organisation de développement n’y ait accès. Ne partagez jamais la clé de signature avec qui que ce soit, y compris Juniper Networks.
La clé permet à n’importe qui de signer des applications en qui votre routeur fera confiance. Par conséquent, traitez la clé avec le même niveau de sécurité que le mot de passe racine des routeurs.
Envoyez le certnamefichier _req.pem à JET Certificate Processing à l’adresse mailto:jet-cert@juniper.net. Ce fichier contient votre demande de certificat. Le demandeur doit être autorisé à demander des certificats de signature au nom de son organisation. Le traitement des certificats JET vous enverra immédiatement votre certificat.
Lorsque vous recevez votre certificat, enregistrez-le et copiez-le dans le répertoire /usr/local/junos-jet/certs.certname
Vérifiez que le certificat et la clé de signature sont disponibles dans le répertoire /usr/local/junos-jet/certs .
Compiler des applications 64 bits
JET prend en charge les applications 64 bits pour Junos OS avec FreeBSD et Junos OS avec FreeBSD mis à niveau. Lorsque vous êtes prêt à emballer votre application, utilisez les commandes suivantes pour compiler des applications 64 bits à utiliser avec l’architecture de processeur AMD64 ou ARM64 64 bits.
Pour compiler l’application à utiliser avec AMD64 et Junos OS avec FreeBSD :
Vérifiez que vous disposez de la chaîne d’outils GCC, qui doit être incluse dans le package JET.
Utilisez la commande
mk-amd64 application name
pour créer le package d’application.
Pour compiler l’application à utiliser avec AMD64 et Junos OS avec FreeBSD mis à niveau :
Vérifiez que vous disposez de la chaîne d’outils Clang, qui doit être incluse dans le package JET.
Utilisez la commande
mk-amd64,bsdx application name
pour créer le package d’application.
Pour compiler l’application à utiliser avec ARM64 et Junos OS avec FreeBSD mis à niveau :
Vérifiez que vous disposez de la chaîne d’outils Clang, qui doit être incluse dans le package JET.
Utilisez la commande
mk-arm64,bsdx application name
pour créer le package d’application.
Exemple : développer un package C signé
Une fois que vous avez configuré la VM JET et obtenu une certification de signature, vous êtes prêt à créer le sandbox de développement dans la VM et à commencer à développer votre application signée sur l’équipement. Utilisez cet exemple pour créer des applications C echoclient et echoserver.
Exemple : développer un package Python signé sans dépendances C
Une fois que vous avez configuré la VM JET et obtenu une certification de signature, vous êtes prêt à créer le sandbox de développement dans la VM et à commencer à développer votre application signée sur l’équipement. Utilisez cet exemple pour développer un package Python signé sans dépendances C.
Configurez l’équipement Junos et installez le package.
Passez en mode configuration.
root@device> configure Entering configuration mode [edit] root@device#
-
Configurez l’ID du fournisseur de l’application, le type de licence et l’étendue du déploiement sur l’équipement Junos, si nécessaire. Utilisez la même licence fournisseur que celle que vous avez utilisée pour la packager.
root@device# set system extensions providers 12345 license-type juniper deployment-scope commercial
Pour plus d’informations, voir Configuration de l’application JET et de sa licence sur un équipement exécutant Junos OS.
-
Passez au mode opérationnel et installez le package copié sur l’équipement Junos.
root@device# exit root@device> request system software add /var/tmp/SamplePyApp-x86-32-20180828.231545_user.tgz
Note:Cette étape échouera si
providers
elle n’est pas configurée. Vérifiez que le package a bien été installé.
root@device> show version Hostname: device Model: mx480 … … JET app SamplePyApp [20180828.231545_user]
Passez en mode configuration.
root@device> configure Entering configuration mode [edit] root@device#
Configurez les arguments de ligne de commande via la CLI Junos OS. Si un script Python JET est disponible dans le répertoire /var/db/scripts/jet/ sur un équipement exécutant Junos OS, vous pouvez configurer les arguments de ligne de commande pour le fichier et fournir les arguments à partir de l’interface CLI Junos.
Voici les arguments de l’application.
import argparse def main(): parser = argparse.ArgumentParser(description='This is a demo script.') parser.add_argument('-arg1', required=True) parser.add_argument('-arg2', required=True) args = parser.parse_args() print args.arg1 print args.arg2 if __name__ == '__main__': main()
Configurez les arguments de ligne de commande dans la CLI. Dans cet exemple, le nom du script est
cmdline_args.py
.root@device# set system extensions extension-service application file cmdline_args.py arguments "-arg1 jet -arg2 application"
Validez la configuration et quittez le mode opérationnel.
root@device# commit root@device# exit
Exécutez l’application.
root@device> request extension-service start cmdline_args.py Extension-service application 'cmdline_args.py' started with PID: 12345 jet application
Exemple : développer un package Python signé avec des dépendances C
Une fois que vous avez configuré la VM JET et obtenu une certification de signature, vous êtes prêt à créer le sandbox de développement dans la VM et à commencer à développer votre application signée sur l’équipement. Utilisez cet exemple pour développer un package Python signé avec des dépendances C.