0% ont trouvé ce document utile (0 vote)
82 vues120 pages

DevNet: Infra & Automatisation Cisco

Transféré par

Hiba Inoubli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
82 vues120 pages

DevNet: Infra & Automatisation Cisco

Transféré par

Hiba Inoubli
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Module 7: Infrastructure et

automatisation
Contenu Pédagogique d'instructeur

DevNet Associate v1.0


Contenu pédagogique de l'instructeur - Guide de planification du
module 7
Cette présentation PowerPoint est divisée en deux parties :
• Guide de planification de l'enseignant

• Informations pour vous aider à vous familiariser avec le module


• Outils pédagogiques
• Présentation en classe pour le formateur

• Diapositives facultatives que vous pouvez utiliser en classe


• Commence à la diapositive 10
Remarque: Supprimez le guide de planification de cette présentation avant de la
partager.
Pour obtenir de l'aide et des ressources supplémentaires, consultez la page d'accueil de
l'instructeur et les ressources du cours pour ce cours. Vous pouvez également visiter le
site de développement professionnel sur [Link], la page Facebook officielle
de Cisco Networking Academy ou le groupe FB Instructor Only.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 2
À quoi s'attendre dans ce module
Pour faciliter l'apprentissage, les caractéristiques suivantes peuvent être incluses dans ce
module :
Fonctionnalité Description
Travaux Pratiques Travaux Pratiques conçus pour travailler avec des équipements physiques.
Questionnaires sur le Des évaluations automatiques qui intègrent les concepts et les compétences
module acquises tout au long de la série de rubriques présentées dans le module.
Résumé du module Récapte brièvement le contenu du module.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 3
Vérifiez vos connaissances

• Les activités Vérifiez votre compréhension sont conçues pour permettre aux élèves de
déterminer rapidement s'ils comprennent le contenu et s'ils peuvent poursuivre ou s'ils ont
besoin de revoir.
• Les exercices du module Vérifiez votre compréhension ne sont pas comptés dans la note
finale des candidats.
• Il n'existe aucune diapositive distincte pour ces exercices dans le fichier PPT. Ils sont
répertoriés dans les notes de la diapositive qui apparaissent avant ces exercices.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 4
Module 7 : Activités
Quelles sont les activités associées à ce module?

N° de page Type d'exercice Nom de l'exercice Facultatif ?

7.0.3 de prototypage Installer la machine virtuelle CSR1000v Recommandation

7.4.7 de prototypage Utiliser Ansible pour Sauvegarder et configurer un périphérique Recommandation

7.4.8 de prototypage Utiliser Ansible pour automatiser l'installation d'un serveur Web Recommandation

7.6.3 de prototypage Test automatisé avec PYATS et Génie Recommandation

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 5
Module 7 : Meilleures pratiques
Avant d'enseigner le contenu du module 7, l'enseignant doit:
• Passez en revue les activités et les évaluations de ce module.
• Essayez d'inclure autant de questions que possible pour maintenir l'intérêt des élèves
pendant la présentation en classe.

Rubrique 7.1
• Demandez aux élèves s'ils connaissent les termes « automatisation » et « infrastructure ».
Familiarisez-vous avec l'automatisation de l'infrastructure.
• Discutez de la nécessité de l'automatisation.
• Décrivez brièvement certains cas d'automatisation à la classe.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 6
Module 7 : Meilleures pratiques (suite)
Rubrique 7.2
• Demandez si les participants savent ce que sont DevOps et SRE. Demandez-leur de
partager leur compréhension. Si les participants ne sont pas au courant, expliquez les
termes.
• Discutez de l'importance de DevOps Divide.
• Explain the evolution and core principles of DevOps.

Rubrique 7.3
• Discutez des scripts d'automatisation et de ses outils de base.
• Expliquer l'automatisation des procédures
• Précisez la classe sur l'exécution de scripts localement et à distance.
• Expliquez l'automatisation du cloud, les CLI et les SDK du cloud.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 7
Module 7 : Meilleures pratiques (suite)
Rubrique 7.4
• Demandez aux participants de dresser la liste des outils d'automatisation populaires en
fonction de leurs connaissances. Décrivez les outils d'automatisation populaires tels que
Ansible, Marionnette et Chef.
• Découvrez ce que les participants savent sur les puissantes capacités des outils
d'automatisation, puis expliquez-leur les capacités.
• Discutez des concepts critiques des outils d'automatisation.

Rubrique 7.5
• Demandez si les participants savent pourquoi l'infrastructure est stockée sous forme de
code. S'ils ne sont pas au courant, expliquez la raison et discutez de la même chose.
• Discutez des GitOps, du déploiement bleu/vert et des tests canaris.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 8
Module 7 : Meilleures pratiques (suite)
Rubrique 7.6
• Demandez à la classe de partager sa compréhension des tests automatisés. Mener une
discussion sur le même.
• Discutez des PYATS et de ses caractéristiques

Rubrique 7.7
• Expliquer la simulation réseau et le VIRL.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 9
Module 7: Infrastructure et
automatisation

DevNet Associate v1.0


Objectifs du module
Titre du module : Infrastructure et automatisation
Objectif du module : Comparer les méthodes de test et de déploiement de logiciels dans des
environnements d'automatisation et de simulation.

Titre du Rubrique Objectif du Rubrique


Automatisation de l'infrastructure Décrire les environnements de déploiement qui bénéficient de l'automatisation.
avec Cisco
DevOps et SRE Expliquer les principes du DevOps.

Scripts d'automatisation de base Décrire l'utilisation des scripts dans le cadre de l'automatisation.

Outils d'automatisation Expliquer les outils d'automatisation qui accélèrent le développement et le déploiement du
code.
L'infrastructure comme code Expliquer les bénéfices du stockage de l'infrastructure en tant que code.

Automatisation des tests Expliquer comment les outils d'automatisation permettent de tester les déploiements
d'applications.
Simulation de réseau Décrire l'utilisation de l'environnement de test de simulation d'un réseau Cisco VIRL.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 11
Introduction à l'infrastructure et à l'automatisation
Travaux pratiques - Installer la VM CSR1000v
Dans la rubrique 7.4 de ce module, vous aurez deux laboratoires qui nécessitent une
machine virtuelle différente. Dans ce TP, vous installez cette machine virtuelle, elle est donc
prête pour vous lorsque vous arrivez à la rubrique 7.4.
Au cours de ces travaux pratiques, vous aborderez les points suivants :
• Partie 1 : Installer la machine virtuelle DEVASC-LAB sur VirtualBox

• Partie 2 : Installer la machine virtuelle CSR1000v sur VirtualBox

• Partie 3 : Vérifier les communications avec la machine virtuelle CSR1000v

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 12
7.1 Automatisation de
l'infrastructure avec Cisco

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 13
Infrastructure et automatisation
Introduction à l'automatisation de l'infrastructure
• L'automatisation utilise du code pour configurer, déployer et gérer les applications ainsi que
les infrastructures et services de calcul, de stockage et de réseau sur lesquels elles
s'exécutent.
• Pour l'automatisation avec l'infrastructure Cisco, les plates-formes peuvent s'intégrer aux
outils courants tels que Ansible, Puppet, Chef, etc., ou fournir un accès direct à l'API à
l'infrastructure programmable.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 14
Infrastructure et automatisation
Solutions d'automatisation Cisco
Il existe plusieurs cas d'utilisation pour l'automatisation du réseau. Selon le modèle opérationnel à suivre, il
existe des choix pour contrôler par programme les configurations et l'infrastructure réseau.
Run : Activer des politiques et Fly: Déployer des applications,
Walk: Automatisation en lecture
fournir un libre-service dans des configurations réseau et
seule
plusieurs domaines bien plus encore via CI/CD
• Grâce aux outils • Avec ces scénarios • Pour des automatismes plus
d'automatisation, vous pouvez d'automatisation de l'étape complexes et des exemples
collecter des informations sur Exécuter, les utilisateurs programmables, le stage Fly
la configuration du réseau. peuvent provisionner leurs de DevNet Automation
• On peut utiliser un scénario de propres mises à jour réseau en Exchange est utilisé.
lecture pour auditer les toute sécurité. • Ici, les besoins peuvent être
configurations et effectuer • Les workflows d'intégration gérés en surveillant et en
l'étape naturelle suivante, qui peuvent être automatisés, les gérant de manière proactive
consiste à remettre la configurations réseau les utilisateurs et les appareils,
configuration en conformité. quotidiennes peuvent être tout en obtenant des
• Dans Automation Exchange, gérées et les scénarios informations sur les données
ce changement est classé quotidiens peuvent être de télémétrie.
comme une progression de vol imprégnés.
à pied. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 15
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation ?
• La rapidité et l'agilité permettent à l'entreprise d'explorer, d'expérimenter et d'exploiter des opportunités
avant leur concurrence.
• Les développeurs doivent accélérer chaque phase de création de logiciels : codage et itération, test et
mise en scène. Les pratiques DevOps exigent des développeurs qu'ils déploient et gèrent des
applications en production, de sorte que les développeurs doivent également automatiser ces activités.

Inconvénients des opérations manuelles

• Ajoutons aux coûts, prennent du temps et sont difficiles à mettre à l'échelle.


• Sont sujets à l'erreur humaine, et la documentation destinée aux humains est souvent incomplète et
ambiguë, difficile à tester et rapidement dépassée.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 16
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation ? (suite)
Risques de dépendance
• L'écosystème logiciel d'aujourd'hui est décentralisé. Les développeurs construisent des composants
individuels en fonction de leurs besoins et de leurs intérêts et combinent et associent les composants,
l'infrastructure et les services nécessaires pour offrir des solutions complètes et les exploiter
efficacement à grande échelle.
• Cet écosystème introduit de nouvelles exigences et de nouveaux risques :
• Les composants doivent être en mesure de travailler avec de nombreux autres composants dans de
nombreuses situations différentes, ne montrant pas plus de préférence pour des composants ou
architectures spécifiques qu'il n'est absolument nécessaire.
• Les développeurs de composants peuvent abandonner la prise en charge des fonctionnalités
obsolètes et des intégrations rarement rencontrées. Cela perturbe les processus qui dépendent de
ces fonctionnalités.
• Les configurations d'applications dépendantes ont tendance à se verrouiller dans des piles de
déploiement fragiles et de plus en plus insécurisées.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 17
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation Full - Stack ?
L'automatisation est un composant clé de l'infrastructure fonctionnelle définie par logiciel et des applications
distribuées et dynamiques. Les avantages de l'automatisation complète de la pile sont les suivants :
• Self-service : Automatisation fournit des structures en libre-service qui permettent aux utilisateurs de
demander une infrastructure à la demande.
• Scale on demand: Les applications et les plateformes doivent pouvoir évoluer vers le haut et vers le bas
en fonction des besoins de trafic et de charge de travail et utiliser une capacité hétérogène.
• Observability: Un système observable permet aux utilisateurs d'inférer l'état interne d'un système
complexe à partir de ses résultats.
• Automated problem mitigation: les applications et les plateformes doivent être conçues de manière à
minimiser les effets des problèmes, à s'auto-soigner et à surveiller les événements.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 18
Infrastructure et automatisation
Infrastructure définie par logiciel : un argument pour
l'automatisation
L'infrastructure définie par logiciel est également connue sous le nom de Cloud Computing. Il permet aux
développeurs et aux opérateurs d'utiliser le logiciel pour réquisitionner, configurer, déployer et gérer des
ressources de calcul, de stockage et de réseau nues et virtualisées.

Avantages des paradigmes du cloud • Self-service (plateformes sur demande)


• Spécification étroite, cohérence, répétabilité
• Abstraction de plateforme
Défis rencontrés dans les • Les développeurs doivent prêter une attention particulière à
paradigmes du cloud la conception, à l'architecture et à la sécurité de la
plateforme.
• Le contrôle d'accès est essentiel car les utilisateurs de
cloud disposant de mauvaises autorisations peuvent
endommager considérablement les ressources de leur
organisation.
• Lorsque les ressources cloud peuvent être rapidement
desservies via des opérations manuelles, la consommation
peut être difficile à gérer ©confidentielles
et les decoûts
Cisco sont difficiles à
2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
19

calculer.
Infrastructure et automatisation
Applications distribuées et dynamiques : un autre cas pour
l'automatisation
• Les architectures d'application
modernes sont de plus en plus
distribuées.
• Ils sont constitués de petits
composants relativement légers
que l'on appelle parfois des
microservices.
• Ces composants peuvent être
isolés dans des conteneurs,
connectés via des services de
découverte et de messagerie
(dont la connectivité réseau
abstraite) et soutenus par des
bases de données résilientes et
évolutives (qui conservent l'état).
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 20
Infrastructure et automatisation
Applications distribuées et dynamiques : un autre cas pour
l'automatisation (suite)
Avantages des microservices : Défis des microservices:
• Évolutivité (Scalability)- les microservices • Complexité accrue - Les microservices
peuvent être mis à l'échelle et équilibrés la signifient qu'il y a beaucoup de pièces
charge selon les besoins sur de nombreux mobiles à configurer et à déployer. Il existe
serveurs en réseau ou plusieurs régions de des opérations plus exigeantes, notamment
cloud public géographiquement séparées. la mise à l'échelle à la demande, l'auto-
This eliminates single points of failure. guérison et d'autres fonctionnalités.
• Outils d'automatisation de • L'automatisation est une exigence - les
l'infrastructure- De plus en plus, le méthodes manuelles ne peuvent pas faire
dynamisme des applications basées sur des face de manière réaliste à la complexité du
microservices est assuré par l'infrastructure. déploiement et de la gestion des applications
Ces conteneurs automatisent la mise à dynamiques.
l'échelle à la demande, l'auto-guérison et
plus encore.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 21
Infrastructure et automatisation
Résumé sur l'automatisation de l'infrastructure
Ces besoins commerciaux et techniques, tendances et dynamiques encouragent les
développeurs et les opérateurs à utiliser l'automatisation partout pour les tâches suivantes :
• Gérez toutes les phases de création, de configuration, de déploiement et de gestion du
cycle de vie des applications. Cela inclut le codage, les tests, la mise en scène et la
production.
• Gérez les infrastructures définies par logiciel au nom des applications que vous créez.
• Parallèlement aux applications, pour préserver, mettre à jour et améliorer
continuellement le code d'automatisation. Ce code aide à développer, tester, mettre en
scène, surveiller et exploiter les applications à des échelles de production et dans divers
environnements. De plus en plus, tout ce code peut être traité comme un seul produit de
travail.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 22
7.2 DevOps et SRE

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 23
DevOps et SRE
Introduction à DevOps et SRE
• Pour que l'automatisation complète soit vraiment efficace, elle nécessite des changements
dans la culture organisationnelle, y compris la réduction des divisions historiques entre le
développement (développement) et les opérations (opérations).
• Historiquement, la création d'applications était le travail des développeurs de logiciels (Dev),
et s'assurer que les applications fonctionnent pour les utilisateurs et que l'entreprise était la
province spécialisée des opérations informatiques (Ops).

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 24
DevOps et SRE
DevOps Divide
Le tableau suivant décrit les différentes caractéristiques de Dev et Ops :
Caractéristique
Dév. Ops
s
Les applications et leur mode d'exécution,
Se préoccupe Applications sur mesure et comment
ainsi que l'infrastructure, le système
de elles fonctionnent
d'exploitation, le réseau, etc.
L'entreprise traite Centre de profit : demande des Centre de coûts : fournit et rend compte des
comme ressources ressources
Participe à la Occasionnellement (uniquement lorsque
Régulièrement (point de lance)
rotation sur appel les problèmes sont transmis à dev)
Performance Abstraitement (y compris les mauvaises Concrètement (conformité SLA, problèmes
mesurée mesures) résolus)
Plus large que profond : configuration,
Compétences Plus profond que large : langages, API,
administration, système d'exploitation,
requises architecture, outils, processus, etc.
automatisation, etc.
Déplacer vite, innover, casser les Les investissements
confidentielles de Cisco doivent être largement
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations

Agilité requise 25

choses, réparer plus tard justifiés, les attentes gérées


DevOps et SRE
DevOps Divide (suite)
Dans l'écosystème informatique d'entreprise traditionnel de pré-virtualisation, séparer Dev des
Ops semblait judicieux.
Au début des années 2000, un mouvement a commencé pour traiter Dev et Ops comme une
seule entité :
• Rendez les codeurs responsables du déploiement et de la maintenance.
• Traiter l'infrastructure virtualisée comme un code.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 26
DevOps et SRE
Évolution des DevOps
DevOps a évolué et continue d'évoluer dans de nombreux endroits en parallèle. Certains
événements clés ont façonné la discipline telle que nous la connaissons aujourd'hui.
• Définition des Moments 1 : SRE (Site Reliability Engineering) : institutionnalisation de
SRE par Google en 2003.
• Définition de Moments 2 : Debois and Agile Infrastructure : présentation de Patrick
Debois en 2009 sur l'automatisation de l'infrastructure virtuelle et physique à l'aide du
contrôle de version et de l'application des méthodes Agile.
• Defining Moments 3 : Allspaw and Hammond : Présentation de John Allspaw et Paul
Hammond en 2009 décrivant un ensemble simple de meilleures pratiques DevOps fondées
sur l'idée que Dev et Ops permettent à l'entreprise de coopérer.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 27
DevOps et SRE
Principes fondamentaux de DevOps
Les DEVOP/SRE ont de nombreux principes fondamentaux et pratiques exemplaires :
• Un accent sur l'automatisation

• L'idée que « l'échec est normal »

• Un remaniement de la « disponibilité » en termes de ce qu'une entreprise peut tolérer

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 28
DevOps et SRE
Principes fondamentaux de DevOps
SLOS, SLIS et budgets d'erreurs
• Les deux idées liées à la culture DevOps et SRE sont que les DevOps doivent fournir une
valeur commerciale mesurable et convenue, et la réalité statistique de le faire parfaitement
est impossible.
• Ces idées sont codifiées dans un objectif de niveau de service (OLS) défini en termes de
mesures réelles appelées indicateurs de niveau de service (ILS).
• Les SIL s'alignent à la réalité pratique de la prestation d'un service aux clients.
• La méthodologie SLO/SLI permet une livraison plus rapide et moins coûteuse de valeur
commerciale en supprimant l'obligation de rechercher la perfection. Elle peut également
influer sur le rythme, la portée et d'autres aspects du développement afin d'assurer et
d'améliorer l'adéquation.
• Une façon de modéliser les résultats de SLO/SLI nécessite d'établir un budget d'erreur
pour un service pendant une période donnée, puis de soustraire les échecs pour atteindre
SLO de cette valeur. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 29
DevOps et SRE
Résumé DevOps et SRE
DevOps/SRE coopère avec des technologies telles que la virtualisation et la
conteneurisation, permettant une approche unifiée et un ensemble d'outils unifiés
pour prendre en charge l'ingénierie coordonnée des applications et de
l'infrastructure.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 30
7.3 Les scripts
d'automatisation de base

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 31
Scripts d'automatisation de base
Introduction aux scripts d'automatisation de base
• Des outils d'automatisation puissants comme Ansible, Puppet et Chef apportent facilité
d'utilisation, prévisibilité, discipline et capacité à travailler à grande échelle au travail
DevOps.
• Bien que l'outil d'automatisation fonctionne en partie en enveloppant les fonctionnalités shell,
les utilitaires du système d'exploitation, les fonctions API et d'autres éléments du plan de
contrôle pour la simplicité, l'uniformité, l'enrichissement des fonctionnalités et la compatibilité
dans les scénarios DevOps, ces outils ne résolvent toujours pas tous les problèmes de
déploiement et de configuration.
• Chaque outil d'automatisation dispose d'une ou plusieurs fonctions qui exécutent des
commandes et des scripts de base sur les cibles et renvoient les résultats.
• Il est donc important d'avoir des compétences de base en matière de script d'automatisation.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 32
Scripts d'automatisation de base
Outils de base pour l'automatisation des scripts
Les shells sont omniprésents, donc le script shell est historiquement le socle de l'automatisation.

Bash
• Le Bash est un shell Unix et est un shell par défaut sur la plupart des distributions Linux et sur macOS.
L'utilisation de commandes dans un script Bash est similaire à celle de les utiliser directement à partir de
la ligne de commande.
• Bash peut être utilisé pour l'accès par script à l'interface de ligne de commande AWS, vous pouvez utiliser
les fonctionnalités intégrées et les bibliothèques de langages plus sophistiqués pour analyser des jeux de
données complexes retournés (tels que JSON), gérer de nombreuses opérations parallèles, traiter des
erreurs, gérer les réponses asynchrones aux commandes, etc.

Les langages de programmation au-delà de Bash


• Les langages sophistiqués s'améliorent sur Bash lorsque la complexité et les exigences d'échelle
augmentent. Ils sont utiles lors de la création et de l'exploitation d'infrastructures virtualisées dans des
environnements cloud, à l'aide de kits SDK.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 33
Scripts d'automatisation de base
Automatisation des procédures
• Une procédure impérative est une séquence ordonnée de commandes visant à atteindre un objectif. La séquence peut
inclure le contrôle du débit, les conditions, la structure fonctionnelle, les classes et plus encore.

• Pour assurer l'efficacité et la réutilisation des scripts, on peut :

• Normaliser l'ordre et la présentation des paramètres, des indicateurs et des erreurs.


• Créer une hiérarchie de code qui divise les tâches de manière logique et efficace.
• Créer des scripts de haut niveau pour des déploiements entiers et des scripts de niveau inférieur pour les phases de
déploiement.
• Séparer les données spécifiques au déploiement du code, ce qui rend le code aussi générique et réutilisable que
possible.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 34
Scripts d'automatisation de base
Automatisation des procédures (suite)
• Des scripts procéduraux et des outils de
configuration déclarative soigneusement rédigés
examinent les cibles avant d'effectuer des tâches
sur elles et n'exécutent que les tâches nécessaires
pour atteindre l'état souhaité.
• Cette qualité de logiciel est appelée idempotence.

• Les principes de base de l'idempotence sont :

• Assurez-vous que la modification que vous


souhaitez apporter n'a pas déjà été effectuée
• Accéder à un état dont le fonctionnement a été
vérifié, si possible, avant d'apporter des
modifications
• Test d'idempotence
• Tous les composants d'une procédure doivent
être idempotent
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 35
Scripts d'automatisation de base
Exécution de scripts localement et à distance
Pour configurer des systèmes distants, l'utilisateur doit accéder et exécuter des scripts sur eux. Il y a plusieurs façons de le
faire :

• Stockez les scripts localement, transmettez-les aux machines cibles avec un utilitaire shell comme scp, puis connectez-vous
à la machine distante en utilisant sshet exécutez-les.

• Canalisez des scripts vers une machine distante en utilisant cat | sshet exécutez-les en séquence avec d'autres commandes,
capturant et renvoyant les résultats au terminal, le tout en une seule commande.

• Installez un client de transfert de fichiers sécurisé à usage général comme SFTP, puis utilisez cet utilitaire pour vous
connecter à la machine distante, transférer, définir les autorisations appropriées, puis exécuter le fichier de script.

• Stockez des scripts sur un serveur web, connectez-vous à la machine distante et récupérez-les avec wget, curlou d'autres
utilitaires, ou stockez les scripts dans un dépôt Git.

• Installez une solution complète d'opérations à distance comme VNC ou NoMachine localement, installez son serveur sur la
cible, transmettre/copier, puis exécutez des scripts.

• Si les machines cibles sont provisionnées sur une infrastructure cloud, il existe généralement un moyen d'injecter un script
de configuration via la même commande CLI ou l'action WebUI qui manifeste la plate-forme.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 36
Scripts d'automatisation de base
Automatisation du cloud
• L'automatisation du cloud permet à l'utilisateur de provisionner des hôtes virtualisés, de
configurer des réseaux virtuels et d'autres services de connectivité, de réquisition, puis de
déployer des applications sur cette infrastructure.
• Les fournisseurs de cloud et les communautés open source fournissent souvent des sous-
systèmes spécialisés pour les outils de déploiement populaires, qui extraient un inventaire
complet des ressources d'une infrastructure cloud et le tiennent à jour en temps réel
pendant que l'automatisation apporte des modifications.
• L'utilisateur peut également gérer des ressources cloud à l'aide de scripts écrits en Bash,
Python ou dans d'autres langues.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 37
Scripts d'automatisation de base
Cloud CLI et SDK
Les IaaS et d'autres types de cloud d'infrastructure fournissent également des CLI et des SDK qui
permettent une connexion facile à leurs interfaces sous-jacentes, généralement basées sur REST.

Cisco UCS - un cloud • API RESTful Cisco Intersight


de métal nu • Gamme de kits SDK pour l'API Intersight RESTful, y compris ceux pour
Python et Microsoft PowerShell
• Gamme de modules Ansible
VMware • Datacenter CLI
• vSphere CLI pour Linux et Windows
• PowerCLI pour Windows PowerShell
• Hôte de kits SDK pour les langages populaires, destinés à vSphere
Automation, vCloud Suite et d'autres produits
OpenStack • Client OpenStack (OSC)
• API OpenStack de calcul, d'identité, d'image, de stockage d'objets et de
stockage en bloc
• Kit de développement logiciel OpenStack Python
• Boîte à outils OpenStack
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 38
Scripts d'automatisation de base
Résumé des scripts d'automatisation de base
Les techniques de script d'automatisation de base sont excellentes à avoir dans la
boîte à outils et leur compréhension améliorera l'installation en tant qu'opérateur et
utilisateur de plates-formes d'automatisation matures.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 39
7.4 Les outils
d'automatisation

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 40
Outils d'automatisation
Introduction aux outils d'automatisation
• Dans cette rubrique, les trois outils d'automatisation les plus populaires, Ansible, Puppet et
Chef, sont discutés.
• Il y aura également une option pour installer l'un ou l'ensemble d'entre eux sur le poste de
travail local.
• Pour essayer cela, il faut avoir accès à une station de travail basée sur Linux, comme
Ubuntu ou macOS et se référer à la documentation d'installation de l'outil pour le système
d'exploitation.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 41
Outils d'automatisation
Que font les outils d'automatisation pour nous ?
Que font les outils d'automatisation pour nous ?
Les outils d'automatisation offrent des fonctionnalités puissantes par rapport aux stratégies
d'automatisation ad hoc utilisant BASH, Python ou d'autres langages de programmation. Ces
outils permettent aux développeurs de :
• Simplifier et uniformiser

• Accélérer le développement grâce à des fonctionnalités prêtes à

• Faciliter la réutilisation, séparer les préoccupations et promouvoir la sécurité

• Effectuer la découverte et gérer l'inventaire

• Balance de poignée (Handle scale)

• Mobiliser la communauté

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 42
Outils d'automatisation
Concepts critiques
Idempotence : un aperçu
• Un logiciel Idempotent produit le même résultat souhaitable chaque fois qu'il est exécuté.

• Dans un logiciel de déploiement, Idempotence permet la convergence et la composabilité et permet de :

• Rassembler plus facilement des composants dans des collections qui créent de nouveaux types
d'infrastructure et effectuent de nouvelles tâches opérationnelles.
• Exécuter des collections complètes de construction/déploiement pour réparer en toute sécurité les
petits problèmes d'infrastructure, effectuer des mises à niveau progressives, modifier la configuration
ou gérer la mise à l'échelle.
Procédure par opposition à déclaration
• Le code procédural peut atteindre l'idempotence, mais de nombreux outils de gestion de l'infrastructure, de
déploiement et d'orchestration ont adopté une autre méthode, qui consiste à créer un déclaratif.
• Un déclaratif est un modèle statique utilisé par le middleware qui intègre des détails spécifiques au
déploiement, examine les circonstances actuelles et met l'infrastructure réelle en alignement avec le
modèle, et généralement le chemin le moins long. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 43
Outils d'automatisation
Concepts critiques (suite)
Provisionnement vs. configuration vs. déploiement vs. orchestration
Provisionnement Configuration Déploiement Orchestration
Il s'agit d'obtenir une Cela signifie installer Cela implique la création, Cela peut se référer à plusieurs
infrastructure de calcul, des applications et des l'organisation, choses :
de stockage et de services de base et l'intégration et la • Automatisation construite par
réseau (réelle ou effectuer les opérations, préparation l'utilisateur ou inhérente à la
virtuelle), d'activer les les tâches et les tests d'applications multi- plate-forme visant à gérer les
communications, de la nécessaires pour composants ou de cycles de vie des charges de
mettre en service et de préparer une plate- plates-formes de niveau travail et à réagir
la rendre prête à forme de bas niveau supérieur, souvent sur dynamiquement aux
l'emploi par les pour déployer des plusieurs nœuds. conditions changeantes.
opérateurs et les applications ou une • Des processus ou des
développeurs. plate-forme de niveau workflows qui relient les
supérieur. tâches d'automatisation pour
offrir des avantages
commerciaux, tels que le
libre-service (self-service).
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 44
Outils d'automatisation
Concepts critiques (suite)
Sans état (Statelessness)

L'automatisation fonctionne mieux lorsque les


applications peuvent être rendues sans état.
Cela signifie que leur redéploiement en place ne
détruit ni ne perd aucune trace des données
dont les utilisateurs ou les opérateurs ont
besoin.

Les deux états d'une demande sont les


suivants :

• Pas apatride (Not Stateless) : application


qui enregistre des informations importantes
dans des fichiers ou dans une base de
données sur le fichier local.

• Apatrides (Stateless) : application qui


conserve son état dans une base de données
distincte ou qui fournit un service qui ne
nécessite aucune mémoire d'état entre les
invocations. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 45
Outils d'automatisation
Outils d'automatisation populaires
• Le premier outil d'automatisation moderne a été Puppet qui a été introduit en 2005 comme
open source, puis commercialisé sous le nom de Puppet Enterprise par Puppet Labs en 2011.
• Les outils d'automatisation les plus populaires sont Ansible, Marionnette, Chef. Ils partagent
les caractéristiques suivantes :
• Relativement facile à apprendre

• Disponible en version open source

• Les plugins et les adaptateurs leur permettent de contrôler directement ou indirectement de


nombreux types de ressources
• De nombreuses autres solutions existent également. Les fournisseurs de cloud privés et
publics approuvent souvent leurs propres outils pour une utilisation sur leurs plateformes, tels
que le projet HEAT d'OpenStack, AWS CloudFormation, SaltStack et Terraform.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 46
Outils d'automatisation
Ansible
• Ansible est disponible en open source, et dans une version avec des fonctionnalités
supplémentaires, de IBM/Red Hat, appelée Ansible Tower.
• Ansible est largement géré à partir de la ligne de commande Bash, avec un code
d'automatisation développé et maintenu à l'aide de n'importe quel éditeur de texte standard.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 47
Outils d'automatisation
Ansible (suite)
Architecture Ansible : Simple et Léger

• Le nœud de contrôle s'exécute sur n'importe quelle


machine Linux exécutant Python 2 ou [Link] les mises à
jour du système sont effectuées sur le nœud de contrôle.

• Le nœud de contrôle se connecte aux ressources gérées


via SSH et permet à Ansible de :
• Exécutez des commandes shell sur un serveur distant,
ou effectuez des transactions avec un routeur distant,
ou une autre entité réseau, via son interface REST.
• Injectez des scripts Python dans les cibles et
supprimez-les après leur exécution.
• Installez Python sur les machines cibles si nécessaire.
• Les plugins permettent à Ansible de collecter des faits et
d'effectuer des opérations sur une infrastructure qui ne peut
pas exécuter Python localement.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 48
Outils d'automatisation
Ansible (suite)
Installation d'Ansible

• L'application de nœud de contrôle Ansible est installée sur une machine Linux à partir de son dépôt de paquets public.
Pour installer Ansible sur un poste de travail, reportez-vous à la documentation d'installation appropriée au périphérique.

Structure de code ansible

• Dans la structure de code Ansible, le travail est séparé en fichiers YAML (.yml) qui contiennent une séquence de tâches,
exécutées dans l'ordre de haut en bas. Ansible a des centaines de modules Python pré-construits qui enveloppent des
fonctions au niveau du système d'exploitation et des méta-fonctions.

Playbooks et rôles

• Un playbook Ansible peut être écrit comme un document monolithique avec une série de tâches nommées et modulaires.

• Les développeurs construisent un modèle d'une tâche DevOps complexe à partir de séquences de tâches de playbook de
bas niveau appelées rôles, puis référencez-les dans des playbooks de niveau supérieur, ajoutant parfois des tâches
supplémentaires au niveau du playbook.

• Cette séparation des préoccupations assure la clarté, la réutilisation et la partageabilité des rôles.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 49
Outils d'automatisation
Ansible (suite)
Organisation du projet Ansible

Les projets ansibles sont organisés dans une structure de répertoire imbriquée. La hiérarchie est facilement
placée sous contrôle de version et utilisée pour l'infrastructure de style GITOPS en tant que code.

Les éléments de hiérarchie de dossiers ansibles incluent les fichiers d'inventaire, les fichiers variables, les
fichiers de bibliothèque et d'utilitaires, les fichiers de playbook principaux.

Ansible à l'échelle
• Il existe des défis de taille pour les grandes entreprises, tels que la gestion et le contrôle de l'accès à de
nombreux nœuds Ansible de manière flexible et sécurisée. Cela inclut également la mise en place de
contrôleurs à distance en toute transparence et en toute sécurité sous le contrôle de l'automatisation
centralisée de l'entreprise.
• Pour cela, il existe deux solutions de plan de contrôle : Red Hat Ansible Tower et AWX projet.

• Les implémentations d'Ansible à plus grande échelle bénéficient également d'Ansible Vault, une
fonctionnalité intégrée qui permet le chiffrement des mots de passe et d'autres informations sensibles.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 50
Outils d'automatisation
Ansible (suite)
Ressources de Cisco Ansible

Cisco et la communauté Ansible gèrent de vastes bibliothèques de modules Ansible pour automatiser le
matériel de calcul et de réseau Cisco, y compris :
• Un très grand ensemble de modules intégrés pour configurer les structures d'infrastructure Cisco orientée
application via le contrôleur APIC (Application Policy Infrastructure Controller).
• Contrôle à distance des périphériques réseau Cisco exécutant IOS-XR, ainsi que des modules pour l'envoi
de commandes et la récupération des résultats de ces périphériques via l'interface CLI ou via l'interface
REST standard de NETCONF.
• Modules ansibles pour configurer l'infrastructure Cisco UCS via l'interface REST Intersight.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 51
Outils d'automatisation
Exemple Ansible
• Ansible utilise normalement ssh pour se connecter à des hôtes distants et exécuter des commandes.

• Voyons comment créer un site Web simple sur un hôte distant.

Connaissances préalables requises


• Un hôte cible exécutant un système d'exploitation compatible (tel que le serveur Ubuntu 18.04)

• SSH et authentification par clé configurée sur cet hôte

• Ansible installé sur votre poste de travail local

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 52
Outils d'automatisation
Exemple Ansible (suite)
Construction d'une arborescence de fichiers de projet
Ansible
• Aux fins de cet exercice, le nom d'hôte de la machine cible
(résolution DNS) est la cible.
• Avec votre machine cible accessible en SSH-accessible,
commencez à construire une structure de dossier de base
pour le projet Ansible.
• Au niveau supérieur de votre dossier de projet, vous avez
besoin des éléments suivants :
• Fichier d'inventaire contenant des informations sur la ou les
machines sur lesquelles vous souhaitez déployer.
• Un fichier [Link] de haut niveau, contenant le niveau
d'instructions le plus abstrait.
• Structure de dossier de rôle pour contenir votre rôle de
serveur Web. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 53
Outils d'automatisation
Exemple Ansible (suite)
Création de votre fichier d'inventaire
• Votre fichier d'inventaire pour ce projet peut être très simple. Faites-en le nom d'hôte résoluble par le DNS
de votre machine cible :

• Vous définissez un groupe appelé serveurs Web et y mettez le nom


d'hôte (ou IP) de votre machine cible.
• Vous pouvez ajouter de nouveaux noms d'hôte/IP à ce bloc de groupe
ou ajouter des blocs de groupe supplémentaires pour affecter des
hôtes à des déploiements plus complexes.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 54
Outils d'automatisation
Exemple Ansible (suite)
Création de votre fichier de playbook de niveau supérieur
• Un playbook de niveau supérieur décrit généralement l'ordre, les
autorisations et d'autres détails sous lesquels les actions de configuration de
niveau inférieur, définies dans les rôles, sont appliquées.
• Dans cet exemple, le fichier [Link] identifie les hôtes sur lesquels vous
souhaitez effectuer une opération et les rôles que vous souhaitez appliquer à
ces hôtes.
• La ligne become: true indique à Ansible que vous voulez jouer les rôles en
tant que root, via sudo.
Création de votre rôle de serveurs Web
• L'étape suivante consiste à créer le rôle qui installe et configure votre serveur Web.
• Vous avez déjà créé la structure de dossier pour le rôle en utilisant ansible-galaxy.
• Le code du rôle est contenu dans un fichier appelé [Link] dans le répertoire /tasks du rôle.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 55
Outils d'automatisation
Exemple Ansible (suite)
• Vous pouvez éditer le fichier
rôles/webserver/tasks/[Link] directement, comme
illustré ici.
• Le rôle comporte deux tâches :

• Déployez Apache2.
• Copiez un nouveau fichier [Link] dans la
racine HTML Apache2, en remplaçant la page
[Link] par défaut.
• Dans apt : stanza, vous nommez le paquet, son
état requis et demandez au module apt de mettre
à jour son cache.
• Dans la seconde stanza, la routine de copie
d'Ansible déplace un fichier de votre système
local vers un répertoire sur la cible et modifie
également son propriétaire et ses autorisations. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 56
Outils d'automatisation
Exemple Ansible (suite)
Création de votre fichier [Link]
• Bien sûr, vous devrez également créer un nouveau fichier
[Link] .
• La commande Ansible copy suppose que ces fichiers
seront stockés dans le répertoire /files du rôle qui les
appelle, sauf indication contraire.
• Accédez à ce répertoire et créez le fichier [Link], en
enregistrant vos modifications par la suite.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 57
Outils d'automatisation
Exemple Ansible (suite)
Exécution de votre déploiement
• Maintenant, vous êtes prêt à exécuter votre déploiement. Dans le répertoire de niveau supérieur de votre
projet, vous pouvez le faire avec l'instruction :

• -i nomme votre fichier d'inventaire.

• -unomme votre utilisateur sudo.

• -Kdemande à Ansible de nous demander votre mot de passe sudo, au moment où il commence
l'exécution.
• [Link] le fichier qui régit votre déploiement.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 58
Outils d'automatisation
Exemple Ansible (suite)
• Si tout va bien, Ansible devrait nous demander votre mot de passe DEVENE (mot de passe
sudo), puis retourner les résultats similaires au suivant :

• Et maintenant, si vous visitez l'adresse IP de votre machine cible dans un navigateur, vous
devriez voir votre nouvelle page d'accueil.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 59
Outils d'automatisation
Exemple Ansible (suite)
Procédure pas à pas Ansible CI/CD

Parcourons l'exemple comme s'ils faisaient partie d'un pipeline CI/CD.

• Développeur collaborant avec vous sur GitHub commet un changement sur le site Web tel que dans le fichier [Link] .

• Ensuite, les tests dans le référentiel exécutent des contrôles de syntaxe et de santé mentale ainsi que des règles de
révision de code pour chaque requête d'extraction.

• Ensuite, le système CI/CD prépare un environnement et exécute des tests prédéfinis pour n'importe quel playbook
Ansible. Il doit indiquer la version attendue à chaque fois et l'installer. Voici un exemple de pipeline :

• Une fois que Jenkins a terminé l'exécution de la tâche, vous pouvez recevoir une notification indiquant que tout est prêt pour
la mise en scène et vous pouvez pousser ces modifications vers la production avec un autre pipeline, cette fois pour le
pousser vers la production. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 60
Outils d'automatisation
Travaux pratiques — Utiliser Ansible pour Sauvegarder et
configurer un périphérique
Au cours de ces travaux pratiques, vous aborderez les points suivants :
• Partie 1: Lancer la DEVASC VM et la CSR1000v VM

• Partie 2: Configurer Ansible

• Partie 3: Utiliser Ansible pour sauvegarder une configuration

• Partie 4: Utiliser Ansible pour configurer un périphérique

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 61
Outils d'automatisation
Travaux pratiques — Utiliser Ansible pour automatiser l'installation
d'un serveur Web
Au cours de ces travaux pratiques, vous aborderez les points suivants :
• Partie 1: Lancer la DEVASC VM

• Partie 2: Effectuer une sauvegarde avec Ansible

• Partie 3: Configurer l'adressage IPv6 avec Ansible

• Partie 4: Utiliser Ansible pour installer Apache sur des serveurs Web

• Partie 5: Ajouter des options à votre playbook ansible pour les serveurs Web Apache

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 62
Outils d'automatisation
Puppet
Fondée comme open source en 2005 et commercialisée sous le nom de Puppet Enterprise par Puppet
Labs en 2011.
Architecture components

• Serveur désigné pour héberger les


principaux composants de
l'application.

• Un client sécurisé, également connu


sous le nom d'agent Puppet.

• Modules permettant d'activer les


connexions pour les API cloud et le
matériel qui ne peuvent pas exécuter
un agent.

• Dans les implémentations évolutives,


un agent proxy pour décharger le
travail de connexion directe aux CLI
de périphérique et d'échange
d'informations.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 63
Outils d'automatisation
Puppet (suite)
Installation de Puppet
• Puppet Server nécessite un matériel puissant (ou une grande machine virtuelle) et un client Network
Time Protocol pour être installé, configuré et testé.
• Les agents auront besoin du fichier [Link] configuré pour communiquer avec le serveur Puppet.

• Une fois le service client démarré, le certificat sera signé par le serveur. Le serveur sera désormais en
mesure de rassembler les faits du client et de mettre à jour l'état du client avec toute modification de
configuration.

Structure du code de marionnette


• Puppet stocke les composants d'un projet ou d'une configuration discrète dans une arborescence de
répertoires (/etc/puppetlabs/code/environments).
• Les dossiers subsidiaires sont créés en fonction de la configuration dans [Link] ou par l'opérateur.

• Puppet est livré avec un ensemble de ressources de base intégrées. De nombreuses ressources
supplémentaires pour effectuer toutes sortes d'opérations peuvent être téléchargées et installées à partir
de Puppet Forge à l'aide de la commande du module Puppet. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 64
Outils d'automatisation
Puppet (suite)
Puppet à l'échelle
• Puppet Server est un peu monolithique, et une installation monolithique est recommandée par les
implémentateurs (open source).
• L'étape pour accueillir plus d'hôtes consiste à créer des « maîtres de compilation » supplémentaires, qui
compilent des catalogues pour les agents clients et les placent derrière un équilibreur de charge pour
distribuer le travail.
• Les clients de Puppet Enterprise peuvent accroître leur capacité en remplaçant PuppetDB par une base
de données autonome et personnalisée appelée PE-PostgreSQL.

Ressources de Puppet Cisco

Cisco et la communauté Puppet maintiennent de vastes bibliothèques de modules pour automatiser le


matériel de calcul et de réseau Cisco. Notamment :
• Modules Cisco IOS permettant la gestion de l'infrastructure IOS

• Modules Cisco UCS permettant le contrôle de UCS via UCS Manager


© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 65
Outils d'automatisation
Exemple de Puppet
• Cet exercice explique comment installer Puppet, puis utiliser Puppet pour installer Apache 2 sur un
appareil.
• Cela correspond approximativement au flux de travail normal pour les opérations Puppet dans un
environnement client/serveur automatisé.
• Notez que les modules peuvent être complètement génériques et exempts d'informations spécifiques au
site, puis être appelés séparément et réutilisables pour configurer un nombre quelconque d'hôtes ou de
composants d'infrastructure.

Installation de Puppet Server


• Puppet Server nécessite un matériel puissant (ou une grande machine virtuelle) et un client Network
Time Protocol pour être installé, configuré et testé.
• Les instructions pour l'installation du serveur sont disponibles dans la documentation de Puppet.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 66
Outils d'automatisation
Exemple de Puppet (suite)
Installation du client Puppet
• Lorsque le serveur Puppet Server est en cours d'exécution, vous pouvez installer Puppet Agents sur un
hôte. Par exemple, sur un système Linux de type Debian, vous pouvez installer Puppet Agent à l'aide
d'une seule commande :

Modification
• Une fois installé, Puppet Agent doit être configuré pour
rechercher un serveur Puppet.
• Ajoutez les lignes au fichier /etc/puppet/[Link] qui
indique au client, le nom d'hôte de votre serveur et le nom
du certificat d'authentification que vous allez générer à
l'étape suivante.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 67
Outils d'automatisation
Exemple de Puppet (suite)
• Démarrez le service de marionnettes sur le Client :

• Vous devriez obtenir une réponse similaire à la suivante :

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 68
Outils d'automatisation
Exemple de Puppet (suite)
Signature du certificat

• Les agents Puppet utilisent des certificats pour s'authentifier auprès du serveur avant de récupérer leurs configurations.

• Lorsque le service Client démarre pour la première fois, il envoie une demande à son serveur assigné pour que son
certificat soit signé, ce qui permet la communication.

• Sur le serveur, émettez la commande ca list renvoie une liste de certificats en attente.

La réponse devrait être semblable à la suivante :

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 69
Outils d'automatisation
Exemple de Puppet (suite)
• Vous pouvez ensuite signer le certificat, en activant la gestion du nœud distant :

• La réponse :

• Le serveur et le client sont désormais liés de manière sécurisée et capables de


communiquer.
• Cela permettra au serveur de recueillir des faits à partir du client et vous permettra de créer
sur le serveur des configurations obtenues par le client et utilisées pour converger son état
(toutes les 15 minutes).
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 70
Outils d'automatisation
Exemple de Puppet (suite)
Créer une configuration
• Puppet vous permet de stocker les composants d'un projet ou d'une configuration discrète dans une
arborescence de répertoires.

• Les dossiers subsidiaires sont créés en fonction de la configuration dans [Link] ou par l'opérateur.

• Dans cet exemple, ayant déclaré environnement = production, Puppet a déjà créé un répertoire pour ce site
par défaut, contenant un sous-répertoire de modules dans lequel nous pouvons stocker des projets
secondaires et des manifestes pour les choses que nous devons construire et configurer.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 71
Outils d'automatisation
Exemple de Puppet (suite)
• Vous allez maintenant installer Apache2 sur votre client géré. Les opérations de marionnettes sont
généralement effectuées en tant que root, donc devenez root sur le serveur temporairement en entrant
sudo su -.
• Accédez au dossier /modules dans l'environnement /production .

• Créez une structure de dossier pour contenir le module install apache .

• Dans le dossier manifestes, créez un fichier appelé [Link], qui est un nom de fichier réservé pour l'étape
d'initialisation d'un module.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 72
Outils d'automatisation
Exemple de Puppet (suite)
• La définition de classe ordonne les étapes
que nous voulons effectuer :
• Étape [Link] la ressource de paquet
pour installer le paquet nommé en ensure
=>installed.
• Étape [Link] la ressource de service
à exécuter si son exigence est satisfaite.
Demandez au serveur de s'assurer que
le service est disponible, puis de le
redémarrer automatiquement lorsque le
serveur redémarre.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 73
Outils d'automatisation
Exemple de Puppet (suite)
• Accédez au dossier des manifestes associé.

• Créez un fichier [Link] qui appelle le module et l'applique à la machine cible.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 74
Outils d'automatisation
Exemple de Puppet (suite)
Déploiement de la configuration
Vous disposez de deux options pour déployer la configuration terminée :
• Le redémarrage du serveur Puppet permet désormais de compiler les manifestes et de les
mettre à la disposition de l'agent Puppet sur le périphérique nommé. L'agent va les récupérer
et les appliquer, en installant Apache2 avec le prochain cycle de mise à jour :

• Pour le développement et le débogage, vous pouvez appeler Puppet Agent sur une machine
cible. L'agent interroge immédiatement le serveur, télécharge son catalogue et l'applique. Les
résultats seront similaires aux suivants :

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 75
Outils d'automatisation
Exemple de Puppet (suite)
• L'agent interroge immédiatement le serveur, télécharge son catalogue et l'applique. The
results will be similar to the following:

• Une fois que l'application a été déployée avec succès, entrez l'adresse IP de la machine cible
dans votre navigateur. Cela devrait faire apparaître la page d'accueil par défaut d'Apache 2.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 76
Outils d'automatisation
Chef
• Chef fournit un système complet pour traiter l'infrastructure en tant que code.

• Les produits Chef sont partiellement sous licence, mais sont gratuits pour un usage
personnel (dans le cas de Chef Infra Server, pour moins de 25 nœuds gérés).
• Les produits et solutions de Chef permettent la création, le test, l'organisation, le stockage
du référentiel et l'exécution sur des cibles distantes, soit à partir d'une station de travail Chef
autonome, soit indirectement à partir d'un serveur Chef Infra central.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 77
Outils d'automatisation
Chef (suite)
Chef Architecture -
Composantes
• Chef Workstation
• Chef Infra Client (l'agent
hôte)
• Chef Infra Server
La plupart des tâches de
configuration peuvent
également être effectuées
directement entre Chef
Workstation et les nœuds et
périphériques gérés.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 78
Outils d'automatisation
Chef (suite)
Les composants de Chef Workstation incluent des outils de ligne de commande, l'interaction avec les
serveurs Chef Infra, Test Kitchen, ChefSpec et InSpec.

Installation de Chef Workstation


• Pour commencer à utiliser Chef, la première étape consiste à installer Chef Workstation, qui fournit un
environnement opérationnel complet. Reportez-vous à la page de téléchargement de Chef Workstation
pour plus d'informations.
• La station de travail est disponible pour Linux et Windows.

Faire fonctionner Chef à l'échelle


• Chef Infra Server peut être configuré pour une haute disponibilité en déployant ses services frontaux dans
une gamme de proxys équilibrés de charge.
• Chef propose également une gamme de produits qui, ensemble, résolvent la plupart des problèmes
rencontrés par les entreprises face à des infrastructures hybrides de plus en plus complexes et à grande
échelle.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 79
Outils d'automatisation
Chef (suite)
Ressources du Chef Cisco
• Cisco a développé des agents Chef Infra modifiés qui s'exécutent dans le shell invité des
équipements de commutateurs NX-OS, ce qui permet à ce matériel de fonctionner avec
Chef comme s'il s'agissait d'un hôte géré.
• Elle a également développé et maintenu un livre de cuisine Cisco Chef pour l'infrastructure
NX-OS, disponible sur Chef Supermarket.
• Un dépôt public GitHub de livre de cuisine et de code de recette est également maintenu
pour permettre le contrôle d'une large gamme de produits Cisco.
• L'infrastructure Cisco UCS est facilement gérée avec Chef grâce à un livre de recettes
permettant l'intégration avec les contrôleurs de gestion intégrés.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 80
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef
Cet exemple décrit comment installer Chef et l'utiliser pour installer Apache 2 sur un périphérique.

Installation du poste de travail du chef

Chef Workstation fournit un environnement d'exploitation complet. L'exemple suivant suppose que vous
installez sur une machine virtuelle Ubuntu 18.04 LTS.
• Si votre machine est configurée avec un bureau standard, accédez à la page de téléchargement de
Chef Workstation, recherchez le téléchargement pour Ubuntu 18.04 et installez-le automatiquement
avec le gestionnaire de paquets Debian.
• Vous pouvez également installer à partir de la ligne de commande en copiant l'URL du package .deb.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 81
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Gestion de la configuration de base

• Après l'installation de Workstation, commencez à effectuer des changements de configuration sur les hôtes accessibles.

• Vous utiliserez la commande chef-run pour cela. La première fois que vous utilisez chef-run, vous pouvez être invité à
accepter les conditions de licence pour l'utilitaire.

• Pour le premier exercice de configuration, vous fournirez les informations dont Chef a besoin pour installer le paquet ntp .
Dans le processus, vous allez fournir le nom d'utilisateur distant, leur mot de passe sudo, le nom de la ciblehôte distant et
le nom du verbe de ressource.

• Lorsque le client est installé, la tâche lui est remise et le processus se termine. Vous revenez comme suit :

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 82
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Installer Chef Infra Client
• Chef Infra Client s'exécute localement sur des nœuds de calcul conventionnels.

• Chef Workstation peut amorçage Infra Client sur les nœuds cibles. Vous pouvez également préinstaller
Infra Client sur des nœuds, par exemple, lors de la création de nouveaux nœuds sur un cloud public.
Voici un exemple de script que vous pouvez exécuter sur un hôte cible pour ce faire.
• Le script utilise un programme d'installation fourni par le CHEF appelé Omnitruck pour ce [Link]
version Windows de ce script est également disponible qui s'exécute sur PowerShell :

• Notez que les paramètres indiqués ci-dessus installeront la dernière version du client Chef et n'épinglez
pas la version.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 83
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Prérequis pour le serveur Infra

• Avant d'installer Chef Infra Server, installez openssh-server et activez l'accès par clé. Vous devez également installer NTP
pour la synchronisation temporelle. Vous pouvez le faire avec Chef, ou manuellement :

• Sur un système Ubuntu, désactivez le service de synchronisation timedatectl par défaut pour éviter qu'il n'interfère avec la
synchronisation NTP :

• Une fois NTP installé, assurez-vous qu'il est synchronisé avec un serveur de temps dans son pool par défaut. Cela peut
prendre quelques minutes, alors répétez la commande jusqu'à ce que vous voyez ce qui suit :

• Lorsque cela apparaît, vous pouvez installer Chef Infra Server.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 84
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Installer Chef Infra Server
• Chef Infra Server stocke la configuration et la fournit automatiquement aux Clients, lorsqu'ils sont
interrogés, ce qui permet aux Clients de converger eux-mêmes vers l'état souhaité.
• Pour installer Chef Infra Server sur Ubuntu 18.04, vous pouvez effectuer des étapes similaires à
l'installation manuelle de Workstation après avoir obtenu l'URL du package .deb. Au moment de
l'écriture, la version stable actuelle était 13.1.13-1.

• Après l'installation de Chef Infra Server, exécutez la commande suivante pour lui dire de lire sa
configuration par défaut, d'initialiser et de démarrer tous les services.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 85
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Installer Chef-Manage
• Vous pouvez également installer l'interface Web pour le serveur Chef. Cela peut être fait en entrant :

• Une fois le processus terminé, redémarrez le serveur et gérez les composants. Ce sont des opérations
de chef, et peuvent prendre un certain temps, comme avant.

• L'argument—accept-licenseempêchechef-manage-ctlde s'arrêter pour vous interroger sur les licences


uniques de ce produit. Lorsque ce processus est terminé, vous pouvez visiter la console dans un
navigateur via [Link]
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 86
Outils d'automatisation
Exemple de Chef — Installer et utiliser Chef (suite)
Terminer la configuration de la station de travail

• Avant que Chef Workstation puisse parler à votre serveur Infra, vous devez effectuer une petite configuration.

• Pour commencer, récupérez les clés générées lors de la configuration du serveur et stockez-les dans le dossier
/home/myname/.chef créé lors de l'installation de Workstation :

• /path/ est le chemin de votre répertoire personnel sur le serveur vers le répertoire dans lequel le serveur a stocké les clés.
• Si vous n'utilisez pas l'authentification par clé de votre serveur, scp vous demandera votre mot de passe.
• Le . après user@host : fait référence au répertoire personnel de votre utilisateur d'origine, à partir duquel le chemin d'accès
est calculé.
• L'expression générique trouve les fichiers se terminant [Link]à ce chemin. Le point de fermeture signifie copier dans le
répertoire de travail courant.
• Exécutez la commande ls à partir du dossier .chef pour voir si vos clés l'ont fait.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 87
Outils d'automatisation
Exemple de Chef — Préparer l'utilisation d'un couteau
Préparez-vous à utiliser le couteau
Knife est un outil pour gérer des livres de cuisine, des recettes, des nœuds et d'autres
ressources, et pour interagir avec le serveur Chef Infra.
• Dans le dossier .chef , modifiez le fichier (initialement vide) nommé [Link] et incluez les
lignes de code suivantes, en les adaptant à votre environnement :

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 88
Outils d'automatisation
Exemple de Chef — Préparer l'utilisation d'un couteau (suite)
• Enregistrez le fichier [Link], puis créez le répertoire /home/myname/cookbooks.

• Enfin, émettez la commande knife ssl fetch.

• Si vous avez correctement configuré le [Link], Knife consulte votre serveur, récupère son
certificat et le stocke dans le répertoire.
• Chef le trouvera automatiquement lorsqu'il est temps de se connecter au serveur,
fournissant l'assurance que le serveur est authentique.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 89
Outils d'automatisation
Exemple de Chef — Préparer l'utilisation d'un couteau (suite)
Bootstrap un nœud cible avec knife
• Une fois que Knife est configuré, vous pouvez amorçage votre nœud cible.

• Pour amorçage, exécutez la commande suivante, en remplaçant les champs variables par
vos informations. La commande est configurée pour utiliser l'authentification par clé à la
machine cible.
• Les commandes redondantes --sudo et --use-sudo-password indiquent à Knife d'utiliser sudo
pour terminer son travail.
• L'option -P fournit votre mot de passe sudo sur la machine cible.

• <name_for_your_node> est un nom arbitraire. L'indicateur --ssh-verify-host-key et l'argument


font que la commande ne s'arrête pas et ne demande pas votre permission de manière
interactive si elle constate que vous ne vous êtes jamais connecté à ce serveur auparavant.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 90
Outils d'automatisation
Exemple de Chef — Préparer l'utilisation d'un couteau (suite)
Si la commande fonctionne correctement,
vous obtiendrez la sortie donnée. Notez
que Chef a détecté l'installation
précédente et ne l'a pas écrasée.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 91
Outils d'automatisation
Exemple de Chef — Préparer l'utilisation d'un couteau (suite)
Chef Manage affiche votre nœud cible : maintenant, si vous vérifiez à nouveau dans votre
navigateur et actualisez Chef Manage, vous devriez voir que votre machine cible est désormais
gérée par le serveur.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 92
Outils d'automatisation
Exemple de Chef – Tout mettre ensemble
Maintenant, vous allez tout utiliser ensemble pour créer une recette réelle, la pousser vers le
serveur et dire au client de la machine cible de réquisitionner et de converger vers la nouvelle
configuration.
• Pour commencer, créez un livre de cuisine pour construire un site Web simple. Accédez à
votre répertoire de livres de cuisine, créez un nouveau livre de recettes appelé apache2 et
naviguez dans celui-ci.
• Vérifiez la structure du dossier du livre de recettes. Il existe des dossiers déjà préparés pour
les recettes et les attributs. Ajoutez un répertoire et un sous-répertoire facultatifs pour
conserver les fichiers dont votre recette a besoin.
• Les fichiers dans le sous-répertoire /default d'un répertoire /files d'un livre de recettes peuvent
être trouvés uniquement par nom de recette, aucun chemin n'est requis.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 93
Outils d'automatisation
Exemple de Chef – Tout mettre ensemble (suite)
• Maintenant, créez une page d'accueil pour votre site Web.

• Sauvegardez le fichier et quittez. Accédez au répertoire des recettes, où Chef a déjà créé un fichier
[Link] pour nous. Le fichier [Link] sera exécuté par défaut lorsque la recette est exécutée avec
cette commande.

• Ajoutez des données au fichier [Link] et modifiez à nouveau le fichier.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 94
Outils d'automatisation
Exemple de Chef – Tout mettre ensemble (suite)
• L'en-tête en haut est créé pour vous.
En dessous, la recette effectue trois
actions.
• La première ressource que vous
appelez apt_update gère le
gestionnaire de paquets apt sur
Debian.
• La fonction de package est utilisée
pour installer le paquet apache2 à
partir de référentiels publics.
• Enfin, vous utilisez la ressource
cookbook_file pour copier le fichier
[Link] à partir de /files/default
dans un répertoire sur le serveur
cible. © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 95
Outils d'automatisation
Exemple de Chef – Tout mettre ensemble (suite)
• Enregistrez le fichier .rb par défaut, puis téléchargez le livre de cuisine sur le serveur.

• Vous pouvez ensuite confirmer que le serveur gère votre nœud cible.

• L'application Knife peut interagir avec votre éditeur préféré. Pour activer cette option, effectuez l'exportation suivante avec le
nom de votre éditeur :

• Cela permet à la commande suivante de s'exécuter de manière


interactive, en plaçant la définition du nœud dans vi pour vous
permettre de la modifier manuellement.

• Comme vous pouvez le voir, l'expression "recipe[apache2]" a été


ajoutée au tableau run_list qui contient une liste ordonnée des
recettes que vous souhaitez appliquer à ce nœud.

• Enregistrez le fichier de la manière habituelle. Knife pousse


immédiatement la modification vers le serveur Infra.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 96
Outils d'automatisation
Exemple de Chef – Tout mettre ensemble (suite)
• Enfin, vous pouvez utiliser la commande knife ssh pour identifier le nœud, vous y connecter
de manière non interactive en utilisant SSH et exécuter l'application chef-client.
• Si tout se passe bien, Knife vous renvoie un journal très long qui vous montre exactement le
contenu du fichier qui a été écrasé, et confirme chaque étape de la recette au fur et à
mesure qu'elle s'exécute.
• À ce stade, vous devriez être en mesure de pointer un navigateur vers l'adresse IP de la
machine cible et de voir votre nouvelle page d'index.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 97
Résumé des outils d'automatisation des outils d'automatisation
Résumé

Il s'agit d'une introduction de haut niveau à trois trousses d'outils DevOps modernes. Vous devriez
maintenant être prêt à :
• Déployez et intégrez des versions gratuites des principaux composants d'Ansible, Puppet et/ou Chef sur
une gamme de supports, des machines virtuelles de bureau aux machines virtuelles basées sur le cloud
sur Azure, AWS ou d'autres plates-formes IaaS.
• Découvrez le langage déclaratif, le style de construction et d'organisation de chaque plate-forme sous
forme de code, et obtenez une idée de la portée de sa bibliothèque de ressources, de plugins et
d'intégrations.
• Apprenez à automatiser certaines des tâches informatiques courantes que vous pouvez effectuer au
travail ou à résoudre les problèmes de déploiement et de gestion du cycle de vie que vous définissez
vous-même, dans votre laboratoire à domicile.
• Des exercices pratiques et des travaux vous donneront une idée complète de la façon dont chaque plate-
forme aborde les thèmes de configuration et vous aideront à surmonter les défis informatiques quotidiens.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 98
7.5 Infrastructure en tant
que code

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 99
Infrastructure en tant que code
Pourquoi stocker l'infrastructure en tant que code ?
Le terme immuabilité fait référence à la maintenance des systèmes entièrement sous forme de code,
n'effectuant aucune opération manuelle sur eux.

GITOPS : infrastructure moderne en tant que code


• GitOps est également appelé « opérations par demande de retrait.«

• Dans une configuration GitOps typique, vous pouvez maintenir un référentiel, tel qu'un dépôt privé sur
GitHub, avec plusieurs branches appelées Développement, Testing/UAT et Production.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 100
Infrastructure en tant que code
Pourquoi stocker l'infrastructure comme code ? (suite)
Où les GITOP peuvent-ils vous emmener ?

Lorsque toutes les procédures GITOPS, flux de travail et autres composants sont en place, les
développeurs peuvent envisager la mise en œuvre de stratégies de déploiement d'élite.

Déploiement bleu/vert
• Le déploiement bleu/vert est une méthode permettant de réduire ou d'éliminer les temps d'arrêt dans les
environnements de production.
• Il est nécessaire de maintenir deux environnements de production identiques (pas nécessairement, bleu
et vert. Deux couleurs telles que le rouge et le noir feront l'affaire).
• Il est également nécessaire de développer la capacité de rediriger rapidement le trafic d'applications vers
l'un ou l'autre.
Remarque : Certains praticiens de DevOps font la différence entre les stratégies bleu/vert et rouge/noir. Ils
disent qu'en bleu/vert, le trafic est progressivement migré d'un environnement à l'autre, de sorte qu'il
touche les deux systèmes pendant un certain temps ; alors qu'en rouge/noir, le trafic est coupé à la fois.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 101
Infrastructure en tant que code
Pourquoi stocker l'infrastructure comme code ? (suite)
• Une version est déployée
dans l'environnement qui
n'est pas actuellement utilisé
(Vert). Après le test
d'acceptation, redirigez le
trafic vers cet environnement.
• Si des problèmes sont
rencontrés, retournez le trafic
vers l'environnement d'origine
(bleu).
• Si le déploiement Green est
jugé adéquat, les ressources
appartenant au déploiement
Blue peuvent être
abandonnées et les rôles
échangés pour la prochaine © 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
version. confidentielles de Cisco 102
Infrastructure en tant que code
Pourquoi stocker l'infrastructure comme code ? (suite)
Test des canaris
• Le test Canari est similaire au déploiement roulant bleu/vert, mais un peu plus délicat.

• La migration entre les anciens et les nouveaux déploiements est effectuée client par client
(voire utilisateur par utilisateur).
• La migration vise à réduire les risques et à améliorer la qualité de la rétroaction.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 103
7.6 Automatisation des tests

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 104
Automatisation des tests
Test et validation automatisés
• En utilisant des outils de test unitaire tels que pytest, les développeurs peuvent construire un
environnement où le code peut être testé automatiquement lorsque des modifications sont apportées.
• Les frameworks de tests unitaires font des tests une partie de la base de code, en suivant le code à
travers les validations de développeurs, les requêtes d'extraction et les portes de révision de code vers
QA/Test et Production. Ce cadre de test unitaire est utile dans les environnements de développement
pilotés par des tests (TDD).

Les défis du test d'un réseau


• Le comportement et les performances d'un réseau réel sont collectifs, maintenus par les configurations de
nombreux équipements et logiciels discrets.
• Dans les environnements traditionnels, la connectivité et la fonctionnalité sont maintenues manuellement
sur de nombreux équipements individuels via diverses interfaces. C'est difficile, chronophage,
extrêmement sujette aux erreurs et risqué.
• À mesure que les réseaux deviennent plus complexes et transportent un trafic plus diversifié et sensible
aux performances, les risques pour la sécurité et la dégradation des performances sont plus élevés.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 105
Automatisation des tests
Test et validation automatisés (suite)
Tester les réseaux définis par logiciel (SDN)

Cisco a réalisé d'énormes progrès dans le développement de réseaux définis par logiciel (SDN) et de middleware qui
permettent aux ingénieurs d'aborder un réseau physique en tant qu'entité programmable unique. Dans le cas de Cisco, cela
inclut :

• Infrastructure centrée sur les applications (ACI)

• Centre d'architecture de réseau numérique (Cisco DNA Center)

• L'API REST et les kits SDK permettent l'intégration avec des outils d'automatisation comme Ansible, Puppet et Chef

Système de test automatisé Python (PyATS)

• Python Automated Test System (PyATS) est une solution de test et de validation de périphériques réseau basée sur
Python.

• PYATS est né comme base Python de bas niveau pour le système de test dans son ensemble.

• Son système de bibliothèque de niveau supérieur, Génie, fournit les API et les bibliothèques nécessaires qui pilotent et
interagissent avec les périphériques réseau, et effectuent les tests réels.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 106
Automatisation des tests
Test et validation automatisés (suite)
PYATS a plusieurs caractéristiques clés :
• Le framework et les bibliothèques PyATS peuvent être exploités dans n'importe quel code Python.

• Il est modulaire et comprend des composants tels que AETest et Easypy.

• Une CLI permet d'interroger rapidement les réseaux en direct, d'extraire les faits et d'automatiser
l'exécution des scripts de test et d'autres analyses médico-légales.
• PYATS fournit une énorme bibliothèque d'interfaces à Cisco et à d'autres infrastructures via une gamme
d'interfaces.
• PyATS peut consommer, analyser et implémenter des topologies décrites dans JSON, en tant que modèles
YANG et à partir d'autres sources.
• PYATS peut également être intégré avec des outils d'automatisation pour la construction, le
provisionnement et le démontage.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 107
Automatisation des tests
Exemple du système pyATS
Le contenu suivant montre comment utiliser PyATS pour créer et appliquer des tests.

Environnements virtuels

L'outil PyATS est mieux installé pour un travail personnel dans un environnement virtuel Python (venv).
• Un venv est un environnement copié à partir de votre environnement de base, mais gardé séparé de
celui-ci.
• Cela vous permet d'éviter d'installer des logiciels susceptibles de modifier définitivement l'état de votre
système.
• Des environnements virtuels existent dans les dossiers de votre système de fichiers. Lorsqu'ils sont
créés, ils peuvent être activés, configurés à volonté et les composants qui y sont installés peuvent être
mis à jour ou modifiés sans que les modifications soient reflétées dans la configuration de votre hôte.
• La possibilité de créer des environnements virtuels est native à Python 3, mais Ubuntu 18.04 peut
nécessiter l'installation d'un paquet python3-venv séparément.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 108
Automatisation des tests
Exemple pyATS (suite)
Pour créer un venv sur Ubuntu 18.04 :
• Assurez-vous que python3-pip, le gestionnaire de paquets Python3, est en place et installez git.

• Créez un nouvel environnement virtuel dans le répertoire de votre choix.

• Venv crée le répertoire de travail et la structure de dossier spécifiés contenant des fonctions et des
artefacts décrivant la configuration de cet environnement.À ce stade, vous pouvez cd au monprojet et
activer le venv.

Installation de PYATS
• Installez les PYATS à partir du référentiel public de paquets Pip (PyPI).

• Vérifiez qu'il a été installé en listant l'aide, à l'aide de pyats —help.

• Cloner le repo des exemples de scripts PyATS, géré par Cisco DevNet, qui contient des exemples de
fichiers.
Remarque : Vous pouvez voir des erreurs « Échec de la construction de la roue
pour...<wheelname> » lors de l'installation de PYATS. Vous pouvez ignorer ces erreurs en toute
sécurité car pip a un plan de sauvegarde pour ces échecs et les dépendances sont installées malgré
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
les erreurs signalées. confidentielles de Cisco 109
Automatisation des tests
Exemple pyATS (suite)
Syntaxe du cas de test PyATS

• La syntaxe de déclaration de test pour PyATS est inspirée par les frameworks de test d'unité Python comme pytest.

• Il prend en charge les instructions de test de base, telles que l'affirmation qu'une variable a une valeur donnée, et ajoute
à cela la possibilité de fournir explicitement des résultats.

Scripts et jobs PyATS

• Un script PyATS est un fichier Python où les tests PyATS sont déclarés.

Fichier testbed PyATS

• Un testbed peut être un seul fichier YAML ou peut être assemblé par programme à partir de YAML et Python.

• Le fichier de testbed est une entrée essentielle pour le reste de la bibliothèque et de l'écosystème PyATS car il fournit
des informations à l'infrastructure pour charger le bon ensemble d'API de bibliothèque pour chaque périphérique, et
comment communiquer efficacement avec eux.

• Les fichiers de testbed réels pour les topologies volumineuses peuvent être longs, profondément imbriqués et
complexes.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 110
Automatisation des tests
Exemple pyATS (suite)
Bibliothèque PyATS : Génie
• Genie est le système de bibliothèque de niveau supérieur PyATS qui fournit des API pour
interagir avec les périphériques et une interface de ligne de commande puissante pour la
topologie et la gestion et l'interrogation des périphériques.
• Lorsqu'il est installé, il ajoute ses fonctionnalités et fonctionnalités dans le framework PyATS.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 111
Automatisation des tests
Travaux pratiques — Tests automatisés à l'aide de PyATS et de
Génie
Au cours de ces travaux pratiques, vous aborderez les points suivants :
• Partie 1: Lancer la DEVASC VM et la CSR1000v VM

• Partie 2: Créer un environnement virtuel Python (venv)

• Partie 3: Utilisation de la bibliothèque de tests PyATS

• Partie 4: Présentation de Génie et création d'un fichier testbed

• Partie 5 : Utiliser Génie pour comparer les configurations

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 112
7.7 Simulation de réseau

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 113
Simulation de réseau
Simulation de réseau et VIRL
• La simulation de réseau fournit un moyen de tester les configurations réseau, de déboguer le code de
configuration et de travailler avec l'infrastructure et les API Cisco et d'apprendre de manière sûre,
pratique et non coûteuse.
• Le VIRL (Cisco Virtual Internet Routing Laboratory) est un produit commercial développé à l'origine pour
un usage interne chez Cisco, avec un soutien communautaire large et actif. Maintenant dans la version
2, VIRL peut fonctionner sur nu métal, ou sur de grandes machines virtuelles sur plusieurs plates-formes
d'hyperviseur.
• L'équipement virtuel qui s'exécute dans VIRL utilise le même code que celui qui s'exécute dans les
produits Cisco réels.

Composants VIRL et flux de travail


• VIRL fournit une interface de ligne de commande locale pour la gestion du système, une interface REST
pour l'intégration avec l'automatisation et une interface utilisateur puissante qui offre un environnement
graphique complet pour la création et la configuration des topologies de simulation.
• L'interface utilisateur est fournie avec plusieurs topologies pour commencer. Parmi ceux-ci, il y a une
simulation de réseau IOS à deux routeurs qui peut rapidement être activée et explorée.
© 2020 Cisco et/ou ses filiales. Tous droits réservés.
confidentielles de Cisco
Informations
114
Simulation de réseau
Simulation de réseau et VIRL (suite)
• La vue Design Perspective de
VIRL permet de modifier des
simulations existantes ou d'en
composer de nouvelles en faisant
glisser, en déposant et en
connectant des entités de réseau,
en les configurant.
• La visualisation comporte des
éléments cliquables qui explorent
la configuration des entités et
effectuent des modifications via le
WebUI, ou en se connectant aux
éléments réseau via la console.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 115
Simulation de réseau
Simulation de réseau et VIRL (suite)
Fichiers VIRL
• Les configurations de périphériques individuels ou les configurations réseau simulées entières peuvent être
extraites sous forme de fichiers .virl
• VIRL vous permet de définir des simulations en tant que code, ce qui permet une intégration dans les deux
sens avec d'autres plates-formes logicielles pour la gestion et les tests du réseau.
• Le format de configuration natif de VIRL est appelé un fichier .virl qui est un fichier YAML lisible par
l'homme.
• Le fichier .virl contient des descriptions complètes des routeurs IOS, de leurs configurations d'interface et
de leur connexion, des informations d'identification pour y accéder et d'autres détails.
• Ces fichiers peuvent être utilisés pour lancer des simulations via l'API REST VIRL et les fichiers .virl
peuvent être convertis vers et à partir de fichiers testbed à utiliser avec PyATS et Genie.
• Le fichier .virl fournit une méthode permettant de déterminer si une dérive de configuration s'est produite
sur la simulation.
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco 116
7.8 Résumé de l'infrastructure
et de l'automatisation

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 117
Résumé de l'infrastructure et de l'automatisation
Qu'ai-je appris dans ce module ?
• L'automatisation utilise du code pour configurer, déployer et gérer les applications ainsi que les infrastructures et services
de calcul, de stockage et de réseau sur lesquels elles s'exécutent.

• Le Cloud Computing permet aux développeurs et aux opérateurs d'utiliser des logiciels pour demander, configurer, déployer
et gérer des ressources de calcul, de stockage et de réseau virtualisés et virtualisés.

• Pour que l'automatisation complète soit vraiment efficace, elle nécessite des changements dans la culture
organisationnelle, y compris la réduction des divisions historiques entre le développement (développement) et les
opérations (opérations).

• Devops/SRE ont de nombreux principes de base et meilleures pratiques : l'accent est mis sur l'automatisation, l'idée que
les défaillances sont normales et un remaniement de la disponibilité en termes de ce qu'une entreprise peut tolérer.

• L'automatisation du cloud vous permet de provisionner des hôtes virtualisés, de configurer des réseaux virtuels et d'autres
services de connectivité, de réquisition, puis de déployer des applications sur cette infrastructure.

• Trois des outils d'automatisation les plus populaires sont Ansible, Puppet et Chef.

• L'immuabilité se réfère à la maintenance des systèmes entièrement sous forme de code, n'effectuant aucune opération
manuelle sur eux.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 118
Résumé de l'infrastructure et de l'automatisation
Qu'ai-je appris dans ce module ? (suite)
• Le cadre de test unitaire est utile dans les environnements de développement pilotés par des tests
(TDD).
• La simulation de réseau fournit un moyen de tester les configurations réseau, de déboguer le code de
configuration et de travailler avec l'infrastructure et les API Cisco et d'apprendre de manière sûre,
pratique et non coûteuse.
• Le TP Virtual Internet Routing Laboratory (VIRL) de Cisco peut fonctionner sur le nu métal ou sur de
grandes machines virtuelles sur plusieurs plates-formes d'hyperviseur.

© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations


confidentielles de Cisco 119

Vous aimerez peut-être aussi