annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 
cancel
972
Visites
0
Compliment
1
Commentaires
Jimena Saez
Community Manager
Community Manager

banner_fr_hp_WEB_900x150_molino_aug_2019_qna.png

Ci-dessous vous retrouverez les questions qui ont été répondues par nos experts durant le webcast.

Ce webcast explique l'avantage de l'automatisation grâce à Python et IOS-XE, et présente divers exemples pour sa réalisation. Cette vidéo inclut deux démonstrations en live expliquées en détail par notre expert Francesco Molino.

Nos experts : Francesco Molino (présentateur) et Xavier Crèvecœur (question manager)  

Pour plus d'informations, visitez la section de Routage et Commutation

download-document-french.png watch-video-french.png join-discussion-french.png

Cliquez sur les boutons pour accéder aux contenus proposés


Sujets abordés lors de la présentation : Python, IOS-XE, IOx, Docker, API et .

Automatisation grâce à Python et IOS-XE

 

Q: ­Comment gérez-vous l'installation de toutes les librairies nécessaires lorsque vous souhaitez partager vos scripts avec vos collaborateurs ? A l'aide de Maven ?

R: J’utilise des containers Docker pour partager mes scripts en utilisant des docker-registry locaux (VM Linux) ou Gitlab avec des repositories privée. Cela me permet de gérer l’environnement (packages Linux, patch de sécurité...) sur lequel les scripts seront exécutés et les librairies qui seront à intégrer. Également, cela me permet de gérer le « versionning » en fonction des bugs et évolutions.

Q: ­Sur quel type d'équipement ou quelle version IOS-XE est disponible IOx ?

R: IOx est disponible depuis IOS-XE version 16.5.1 sur les switches 3650, 3850 et sur les plateformes ISR4300, ASR, CSR. Il y a quelques limitations sur les switches (voir les slides de la présentation).

Q: Quel est l'impact Mémoire, CPU sur l'utilisation de Python sur les équipements ?

R: Les ressources utilisées vont dépendre du script lui-même et des différentes actions qui seront exécutés et le nombre de threads en parallèle. Pour la partie IOx, vous pouvez gérer les ressources à attribuer à la machine mais vous ne pourrez pas attribuer TOUTES les ressources du routeur car une protection des limites est instaurée par défaut.

Q: ­Quelles différences ou avantages entre ciscoconfparse et les autres librairies présentées ? ­

R: ­­­Ciscoconfparse est une librairie qui va parser la configuration d’un équipement Cisco mais l’output d’une commande show. TextFSM permet de parser n’importe quel output (configuration, show) pour des équipements Cisco et autres vendeurs, le tout basé sur des templates faisant appels à du regex (https://github.com/networktocode/ntc-templates)

Q: ­Est-ce possible d'avoir l’accès au code (php+Python) utilisé pour la deuxième démo ?

R: ­Oui, dès que le post sera ouvert je mettrai les scripts PHP et Python des 2 démos. Je posterai également la configuration EEM du CSR1000v. NOTE : Retrouvez les liens aux fichiers sur le commentaire de l'expert ci-dessous.↓ 

Q: Pour quelqu'un qui vient du réseau et non formé au dev, ça semble assez difficile à prendre en main. Non ? ­

R: Alors, comme on dit ici au Québec, la réponse est noui, dans le sens oui et non ça veut dire qu’au départ ça peut paraitre une grosse montagne mais il faut prendre les choses petit à petit. Il y avait des cours vidéo qui étaient publié par GNS3, qui permettaient de montrer étapes par étapes comment construire un script en commençant par la connexion jusqu’à la modification de configuration. D’autres institutions ont les mêmes types de cours. Au-delà de ça, il y a les espaces communautaires qui peuvent également vous aider (GitHub, Cisco DevNet, Communauté Cisco…). Après c’est sûr qu’il faut apprendre le langage de programmation, mais grâce aux différents forums, cela peut aller assez vite avec de la motivation et du temps. Le but final de notre métier n’est pas de devenir un développeur de grosses applications mais d’automatiser certaines tâches. Pour la partie API, vous pouvez utiliser l’outil Postman qui va exécuter les requêtes et qui vous permettra d’extraire le code Python de celles-ci en choisissant la librairie Requests ou http.client.

Q: ­J’aimerai savoir si on peut utiliser des applications PC (C#) pour l'interfacer avec Python ou c'est juste du PHP ?

R: Oui, vous pouvez appeler du code Python depuis n’importe quel autre langage de programmation.

Q: ­Pourquoi ne pas juste utiliser un requirements.txt ? (Pour le partage entre personnes)

R: Le but étant de gérer non seulement les packages/librairies à installer mais aussi l’environnement (packages Linux, updates et patch de sécurité) depuis lequel est exécuté le script. Pour ces 2 raisons, Docker est la réponse la plus adaptée.

Q: Les librairies Python recommandées ?

R: Comme indiqué dans les slides, il y a des librairies comme Netmiko, TextFSM, Jinja, Requests qui vont vous permettre de gérer les bases de l’automatisation. Vous pouvez également utiliser les frameworks tels que Nornir et Ansible. Je ne suis pas très fan d’Ansible et préfère de loin Nornir car il permet d’aller plus loin et est plus « scalable ».

Q: Est-ce que on peut avoir les fichiers .py des scripts de la démo ?

R: Oui, je les mettrai sur le forum. NOTE : Retrouvez les liens aux fichiers sur le commentaire de l'expert ci-dessous.↓  

Q: Est-ce que cela peut causer un trou de sécurité d'avoir accès à Linux dans un Router ?

R: Bien évidement comme tout. Dès que vous ouvrez des portes sur un systèmes, s’il n’est pas protégé correctement (updates, patchs, firewall), les risques de failles sont présents. Dans guestshell, vous pouvez utiliser iptables pour ouvrir/fermer des portes et protéger la source ainsi que la destination du trafic.

Commentaires
Francesco Molino
VIP Alumni
VIP Alumni

Bonjour,

 

Comme promis, voici les liens pour télécharger les scripts d'exemples pour les 2 démos.

Gardez en mémoire, que pour la démo 2, le mot de passe dans la table 'credentials' en encode en mode base64.

Cela est important car le script python va decoder cette valeur et lui servira de mot de passe pour accéder à l'équipement; donc si vous mettez le mot de passe en clair, le script ne pourra pas se connecter.

 

Sur les 2 démos, le routeur CSR1000v a été utilisé avec la version 16.9.3.

Pour la démo 2, le serveur web utilisé est Apache2

 

Démo1 --> Téléchargement

Démo2 --> Téléchargement

 

 

Si vous avez des questions, n'hésitez pas.

Mise en Route
Bienvenue dans la Communauté !

La communauté est un hub pour vous connecter avec vos pairs et les spécialistes Cisco, pour demander de l'aide, partager votre expertise, développer votre réseau et évoluer professionnellement.
Vous êtes un nouvel arrivant ? Cliquez ici pour en savoir plus.

Nous voulons que votre navigation soit la meilleure, donc vous trouverez des liens pour vous aider à être rapidement familiarisé avec la Communauté Cisco :