Cisco France Blog

CLI templates Catalyst Center – Les bases

4 min read



Il peut arriver un moment où les workflows de configuration et les belles GUI ne permettent pas de délivrer les configurations customisées requises, parfois élaborées et validées depuis de nombreuses années. Pour ces cas, les CLI templates de Catalyst Center sont l’outil idéal. Le principe est simple: vous placez votre configuration CLI dans un template et Catalyst Center va l’appliquer pour vous sur les équipements désirés (commutateurs, routeurs, wireless lan controller…) Pour ceux qui n’ont pas suivi l’actualité, Catalyst Center est le nouveau nom de Cisco DNA Center, pour coller avec la dénomination Catalyst omniprésente sur les réseaux d’entreprise.

Dans le menu Tools / Template Hub, vous allez avoir la liste de tous les templates créés sur Catalyst Center et vous pouvez les classer dans des répertoires ou projets. Vous pouvez les classer par type d’équipement, language de programmation utilisé (Jija/Velocity), niveau de commit… Nous allons voir tous ces concepts progressivement.

Voyons les étapes pas à pas. Premièrement je vais créer un projet pour travailler.

Dès que le projet est créé on me propose tout de suite de créer un premier template, la première étape consiste à déclarer les caractéristiques du template:

  • Nom
  • Projet associé (répertoire pour classer le template)
  • Type de template (regular ou composite). Un template composite est simplement une séquence de templates regular. Cela permet d’appliquer plusieurs templates successivement tout en gardant des blocs fonctionnels distincts.
  • Langage de programmation utilisé (Jinja / Velocity)
  • Les équipements concernés (Catalyst 9300 dans l’exemple ci-dessous). On peut choisir évidemment d’appliquer le template à plusieurs catégories d’équipements différents
  • Des tags
  • Une description

Une fois que cette étape est passée, vous pouvez simplement renseigner les lignes CLI que vous désirez appliquer sur l’équipement. Dans ce premier test je vais faire quelque chose de très simple: appliquer une description sur une interface définie. Oui c’est simpliste et l’utilité à ce stade peut être douteuse mais on verra au fur et à mesure comment gagner en profondeur avec des variables et un peu de programmation. Ne vous inquiétez pas si vous êtes frustrés on passera la seconde dans un prochain article. Notez que je n’ai pour le moment trouvé aucune limite aux templates!

 

Une étape très importante va être de faire un commit du template. Ce n’est qu’une fois le commit fait que le contenu est utilisable en production. Il vous est ainsi possible de travailler sur vos templates, de les modifier sans impacter la production. Les templates vont donc avoir un numéro de version et on pourra suivre les changements à travers une description du commit, exactement comme vous seriez amenés sur du code.

A ce stade nous avons notre premier template prêt à l’emploi, nous allons maintenant voir comment l’appliquer sur des équipements. Il faut comprendre que nous voulons avoir pour cela une démarche programmatique: hors de question d’appliquer le template sur des équipements un à un. Nous allons définir une logique d’application de template dans Catalyst Center via les Network Profiles.

J’ai créé ci-dessous un Network Profile ENFR-ST (ST comme Site Torino, ne cherchez pas trop à comprendre mon lab!) dans lequel je peux avoir plusieurs template. Chaque template correspond à des types de devices et des tags différents.

Je définis ensuite à quels sites mon Network profile s’applique (ici Torino et tous ses étages).

Comprenez bien qu’à ce stade, je n’ai encore configuré aucun équipement. On dissocie complètement les étapes de design et d’implémentation en production. Une fois que notre logique est proprement définie, un simple provisioning de l’équipement suffira à appliquer le bon template. Bref on passe un peu de temps en amont à définir la logique qui va bien puis on simplifie au maximum les étapes pour la mise en production.

Puisque notre template était associé au tag “Reseauxblog”, je dois taguer l’équipement avec ce même label “Reseauxblog” pour qu’il hérite du template. Notez que cela est facultatif, il est aussi possible de ne pas mettre de tag et dans ce cas tous les équipements sont pris en compte. Le tag permet de gagner en finesse pour mieux cibler les équipements à configurer.

Un simple provisioning de l’équipement sera suffisant pour appliquer le template. Puisque notre logique d’association a été préalablement définie dans un Network Profile, le bon template sera automatiquement appelé. Nous voyons que notre interface est vierge de configuration avant provisioning.

ST-C9300-1#sh run int tw1/0/1
Building configuration...

Current configuration : 404 bytes
!
interface TwoGigabitEthernet1/0/1
end

A ce stade je fais un provisioning de l’équipement.

Le template est automatiquement appelé lors de la seconde étape “Advanced Configuration”. Comme je n’ai pas défini de variable je n’ai ici rien à faire.

Je peux décider de pousser la configuration immédiatement, ou de le programmer pour une date ultérieure. Comme je suis ici en phase de test je décide de faire un “generate configuration preview” pour voir la tâche qui va être programmée et la configuration qui va être poussée.

Je peux voir la configuration résultante qui va être poussée dans les “Work Items” de Catalyst Center (pas de surprise ici mais rassurez-vous on va aller plus loin ensuite…)

Depuis ce menu je peux directement pousser la configuration sur l’équipement, et la configuration est poussée comme on peut l’attendre…

ST-C9300-1#sh run int tw1/0/1
Building configuration...

Current configuration : 429 bytes
!
interface TwoGigabitEthernet1/0/1
 description RESEAUXBLOG
end

C’est tout pour ce premier article sur ce sujet. Je ne reviendrai plus sur ces concepts dans les articles suivants qui iront beaucoup plus loin sur les templates. Nous verrons notamment les variables, la programmation, la compliance… Le modèle est très souple et vous arriverez toujours à faire ce que vous voulez!

Pour les impatients qui ne peuvent pas attendre la suite, n’hésitez pas à lire le user guide sur les CLI templates.

Authors

Jerome Durand

Technical Solutions Architect

Laisser un commentaire