Module 9: Automatisation des
Infrastructures
Module 9: Automatisation des
Infrastructures
9.1 Automatisation de l'infrastructure
9.2 Les scripts d'automatisation de base
9.3 Les outils d'automatisation
9.4 Infrastructure en tant que code
9.5 Automatisation des tests
9.6 Simulation de réseau
3
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
avec Cisco
Décrire les environnements de déploiement qui bénéficient de l'automatisation.
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.
4
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Module 9 : 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
5
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Introduction à l'infrastructure et à l'automatisation
Travaux pratiques - Installer la VM CSR1000v
Dans cette section de ce module, vous aurez deux laboratoires qui nécessitent une machine
virtuelle différente.
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
6
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.1 Automatisation de
l'infrastructure
7
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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 les services de calcul, de stockage et de réseau sur lesquels elles
s'exécutent.
• Lorsque vous comprenez ce qu'est l'automatisation et ce qu'elle peut faire pour vous, vous
serez prêt à visiter le Cisco DevNet Automation Exchange pour explorer des solutions qui
peuvent vous aider.
8
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Risques dans les environnements déployés et gérés
manuellement.
Inconvénients des opérations manuelles
• Ajoutent du 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.
Coûts financiers
• Les pannes et les violations sont le plus souvent causées lorsque les systèmes sont mal configurés.
Cela est souvent dû à une erreur humaine lors de modifications manuelles. Selon une statistique
souvent citée par Gartner (à partir de 2014), le coût moyen d'une panne informatique est supérieur
à 5 600 USD par minute, soit plus de 300 000 USD par heure. Le coût d'une atteinte à la sécurité
peut être encore plus élevé.
9
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Risques dans les environnements déployés et gérés
manuellement.
Risques de dépendance
• L'écosystème logiciel d'aujourd'hui est décentralisé. Les développeurs n'ont plus besoin de créer et
de gérer des solutions monolithiques et complètes. Au lieu de cela, ils se spécialisent en
construisant des composants individuels en fonction de leurs besoins et de leurs intérêts. Les
développeurs peuvent combiner les autres composants, l'infrastructure et les services nécessaires
pour mettre en place 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.
• 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.
10
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation ?
 L'automatisation de l'infrastructure peut offrir de nombreux avantages. Ceux-ci sont résumés comme la
vitesse et la capacité de travailler à grande échelle, avec un risque réduit.
 L'automatisation est un composant clé de :
1- l'infrastructure fonctionnelle définie par logiciel
2- des applications distribuées et dynamiques.
 Les avantages de l'automatisation :
• Self-service
• Scale on demand
• Observability
• Automated problem mitigation
11
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation?
• Self-service :
 Les structures libre-service automatisées permettent aux utilisateurs de demander une infrastructure à la
demande, notamment:
 Composants d'infrastructure standard tels que les instances de base de données et les terminaux VPN
 Plateformes de développement et de test
 Serveurs Web renforcés et autres instances d'application, ainsi que les réseaux isolés et l'accès Internet
sécurisé qui les rendent utiles, sécuritaires et résistants aux erreurs
 Plateformes d'analyse telles que Apache Hadoop, Elastic Stack, InfluxData et Splunk
12
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation?
• 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.
• Un exemple est la mise à l'échelle du cloud privé au cloud public et la mise en forme appropriée du
trafic.
• Les plates-formes cloud peuvent fournir la possibilité de mettre à l'échelle automatiquement (mise
à l'échelle automatique) des machines virtuelles, des conteneurs ou des charges de travail sur une
infrastructure sans serveur.
13
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation?
• Observability:
• Un système observable permet aux utilisateurs d'inférer l'état interne d'un système complexe à
partir de ses sorties.
• L'observabilité (abrégée en o11y) peut être obtenue grâce à la surveillance des plateformes et des
applications.
• L'observabilité peut également être obtenue grâce à des tests proactifs de production pour les
modes de défaillance et les problèmes de performance. Mais, dans une opération dynamique qui
inclut la mise à l'échelle automatique et d'autres comportements d'application, la complexité
augmente et les entités deviennent éphémères.
• Un rapport récent du fournisseur de framework d'observabilité DataDog, indique que la durée de
vie moyenne d'un conteneur sous orchestration n'est que de 12 heures; les microservices et les
fonctions ne peuvent fonctionner que pendant quelques secondes. Les entités éphémères
observables et les tests en production ne sont possibles qu'avec l'automatisation.
14
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Pourquoi avons-nous besoin de l'automatisation?
• Automated problem mitigation:
 Certains fabricants de logiciels et experts en observabilité recommandent ce que l'on appelle Chaos Engineering. Cette
philosophie repose sur l'affirmation selon laquelle la défaillance est normale: au fur et à mesure que les applications
évoluent, certaines pièces échouent toujours. Pour cette raison, les applications et les plates-formes doivent être conçues
pour:
 Minimiser les effets des problèmes : Reconnaître rapidement les problèmes et acheminer le trafic vers d'autres capacités,
en veillant à ce que les utilisateurs finaux ne soient pas gravement touchés et à ce que le personnel des opérations de
garde ne soit pas inutilement paginé.
 l'auto-guérison : Allouez les ressources en fonction de la stratégie et redéployez automatiquement les composants
défectueux selon les besoins pour rétablir l'état sain de l'application dans les conditions actuelles.
 Suivre les événements : Souvenez-vous de tout ce qui a mené à l'incident, afin que les corrections puissent être planifiées
et que des post-mortems puissent être effectués.
 Certains défenseurs de Chaos Engineering préconisent même l'utilisation d'outils d'automatisation pour provoquer des
défaillances contrôlées (ou aléatoires) dans les systèmes de production. Cela met continuellement au défi Dev et Ops
d'anticiper les problèmes et de renforcer la résilience et la capacité d'auto-guérison. Les projets open source tels que Chaos
Monkey et les plateformes «Failure-as-a-Service» comme Gremlin sont spécialement conçus pour briser les choses, à la
fois au hasard et de manière beaucoup plus contrôlée et empirique. Une discipline émergente est appelée "test d'injection
d'échec"
15
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
Walk: Automatisation en lecture
seule
Run : Activer des politiques et
fournir un libre-service dans
plusieurs domaines
Fly: Déployer des applications,
des configurations réseau et
bien plus encore via CI/CD
• Grâce aux outils
d'automatisation, vous pouvez
collecter des informations sur
la configuration du réseau.
• On peut utiliser un scénario de
lecture pour auditer les
configurations et effectuer
l'étape naturelle suivante, qui
consiste à remettre la
configuration en conformité.
• Dans Automation Exchange,
ce changement est classé
comme une progression de vol
à pied.
• Avec ces scénarios
d'automatisation de l'étape
Exécuter, les utilisateurs
peuvent provisionner leurs
propres mises à jour réseau en
toute sécurité.
• Les workflows d'intégration
peuvent être automatisés, les
configurations réseau
quotidiennes peuvent être
gérées et les scénarios
quotidiens peuvent être
imprégnés.
• Pour des automatismes plus
complexes et des exemples
programmables, le stage Fly
de DevNet Automation
Exchange est utilisé.
• Ici, les besoins peuvent être
gérés en surveillant et en
gérant de manière proactive
les utilisateurs et les appareils,
tout en obtenant des
informations sur les données
de télémétrie.
16
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
un argument pour l'automatisation : Infrastructure définie par
logiciel
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 des réseaux virtualisés.
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
paradigmes du cloud
• Les développeurs doivent prêter une attention particulière à
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 et les coûts sont difficiles à
calculer.
17
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
un argument pour l'automatisation : Applications distribuées et
dynamiques.
 Les architectures d'application «monolithiques» mono-serveur, bien que conceptuellement simples, ne
répondent pas très bien à ces besoins. Un serveur est un point de défaillance unique, limite les
performances et la capacité et dispose d'une capacité de mise à niveau limitée. La duplication d'un seul
serveur peut augmenter la capacité des applications très simples, mais ne fonctionne pas pour les
applications nécessitant une cohérence des données sur toutes les instances. Et il ne protégera pas les
données utilisateur en cas de défaillance sur le serveur sur lequel résident leurs données.
 Pour ces raisons et pour d'autres, les architectures d'applications modernes sont de plus en plus
distribuées. Ils sont construits à partir de composants petits et 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).
18
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
19
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
20
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Avantages des microservices :
• Évolutivité (Scalability)- les microservices
peuvent être mis à l'échelle et équilibrés la
charge selon les besoins sur de nombreux
serveurs en réseau ou plusieurs régions de
cloud public géographiquement séparées.
This eliminates single points of failure.
• Outils d'automatisation de
l'infrastructure- De plus en plus, le
dynamisme des applications basées sur des
microservices est assuré par l'infrastructure.
Ces conteneurs automatisent la mise à
l'échelle à la demande, l'auto-guérison et
plus encore.
Défis des microservices:
• Complexité accrue - Les microservices
signifient qu'il y a beaucoup de pièces
mobiles à configurer et à déployer. Il existe
des opérations plus exigeantes, notamment
la mise à l'échelle à la demande, l'auto-
guérison et d'autres fonctionnalités.
• L'automatisation est une exigence - les
méthodes manuelles ne peuvent pas faire
face de manière réaliste à la complexité du
déploiement et de la gestion des applications
dynamiques.
Infrastructure et automatisation
un argument pour l'automatisation : Applications distribuées et
dynamiques.
21
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Automatisation & DevOps
• Pour que l'automatisation soit vraiment efficace, elle nécessite des changements dans la
culture organisationnelle, y compris la réduction des divisions historiques entre le
développement (Dev Team) et les opérations (Ops Team).
• Historiquement, la création d'applications était le travail des développeurs de logiciels (equipe
Dev), et l’assurance que les applications fonctionnent convenablement était le travail des
opérations informatiques (équipe Ops).
22
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure et automatisation
Résumé sur l'automatisation de l'infrastructure
Ces besoins commerciaux et techniques, Ces nouvelles tendances 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.
• Gérez les applications basées sur des microservices
 L'automatisation aide à développer, tester, mettre en scène, surveiller et exploiter les
applications à des échelles de production et dans divers environnements
 Cependant, nous avons besoin de préserver, mettre à jour et améliorer continuellement
le code (Script) d'automatisation.
23
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.2 Les scripts
d'automatisation
24
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
 Mais cela ne signifie pas que vous ne pouvez pas faire d'automatisation avec des
outils plus basiques comme Bash ou quelques langages de programmation
sophistiqués comme Python.
• Bien que les outils d'automatisation se focalise sur le développement des fonctionnalités
shell, les utilitaires du système d'exploitation, les fonctions API et d'autres éléments du plan
de contrôle pour garantir simplicité, uniformité et compatibilité, ces outils d’automatisation
ne résolvent toujours pas tous les problèmes de déploiement et de configuration.
• C'est pourquoi 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.
25
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Scripts d'automatisation de base
Les shells sont omniprésents, donc le script shell est historiquement le socle de l'automatisation.
Bash
• Le Bash est un shell Unix par défaut sur la plupart des distributions Linux et sur macOS. L'utilisation de
commandes dans un script Bash est similaire à celle qu’on utilise 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 particulièrement utiles lors de la création et de l'exploitation d'infrastructures virtualisées dans des
environnements cloud, à l'aide de kits SDK tels que AWS SDK pour Python ou AWS SDK pour javascript dans
Node.js. Bien que Bash puisse ê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.
26
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation par procédures
 Utiliser Bash, Python ou d'autres langages sophistiqués pour l'automatisation signifie généralement écrire une procédure
impérative. 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.
 Une telle automatisation procédurale peut être très puissante. Mais cela ne reste simple que si vous êtes au courant de la
façon dont les utilitaires système et d'autres interfaces fonctionnent. Vous devez connaître obligatoirement l'état du système
cible.
 Élaboration d'une procédure
 Si vous faites un petit script pour installer et configurer un logiciel sur un système cible distant, il peut fonctionner
correctement la première fois. Exécutez-le une deuxième fois cependant; et votre script simple pourrait faire un désordre. Il
peut lancer une erreur et s'arrêter quand il trouve l'application déjà installée, ou pire, ignorer une telle erreur, et continuer à
apporter des modifications redondantes dans les fichiers de configuration. Pour rendre ce script plus sûr, plus facile à
utiliser, plus flexible et réutilisable, vous devez le rendre plus intelligent et plus élaboré. Par exemple, vous pouvez
l'améliorer pour:
 Déterminez s'il va fonctionner dans un environnement par exemple Debian ou CentOS, et utilisez le gestionnaire de
paquets correct (apt ou yum) et la syntaxe adequate.
 Déterminez si votre application cible est déjà installée dans une version appropriée et essayez de l'installer uniquement si
elle n'est pas présente.
 Déterminez s'il a fait une copie de chaque fichier de configuration avant de le modifier, et utilisez les éditeurs de flux (awk,
sed, etc.) pour apporter des modifications précises.
27
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation par procédures
 Objectif d'une procédure
Les procédures sont développées afin qu‘elles accomplissent certaines des tâches suivantes:
 Découvrez, inventoriez et compilez des informations sur les systèmes cibles, et assurez-vous que les scripts le font
correctement.
 Encapsuler la complexité de l'installation des applications en toute sécurité.
 Effectuez des sauvegardes et des modifications de fichiers de configuration, et redémarrez les services dans des
formulaires réutilisables, tels que des scripts secondaires contenant des paramètres, des bibliothèques de fonctions et
d'autres informations.
Pour vous assurer que les scripts sont efficaces et réutilisables, vous devez:
 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.
28
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation par procédures
 Exemple de script procédural simple
Le type du 3 ieme script a tendance à être dangereux si l'état de démarrage n'est pas complètement connu et contrôlé.
L'application des mêmes modifications à un système correctement configuré peut même le casser.
29
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation des procédures
 Idempotency: une caractéristique primordiale dans l'automatisation
 le but des scripts d’automatisation est d'atteindre l'état souhaité dans un système, quelles que soient les conditions de
démarrage. 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, en effectuant uniquement les tâches nécessaires pour l'obtention de
l'état souhaité.
 Cette qualité des scripts est appelée idempotency. Les principes fondamentaux de idempotency:
 Assurez-vous que le changement que vous souhaitez apporter n'a pas déjà été fait - Également connu sous le
nom de "Tout d'abord, ne faites pas de mal (First, do no harm)". Ne rien faire est presque toujours un meilleur choix
que de faire quelque chose de faux et peut-être irrécupérable.
 Accéder à un état dont le fonctionnement a été vérifié avant d'apporter des modifications. Par exemple, vous
devrez peut-être supprimer et purger les versions antérieures des applications avant d'installer des versions
ultérieures. Dans les environnements de production infra-as-code, ce principe devient la base de l'immuabilité.
L'immuabilité est l'idée que les changements ne sont jamais faits sur les systèmes en direct. Au lieu de cela, modifiez
l'automatisation et utilisez-la pour créer des composants flambant neufs, dont le fonctionnement a été vérifié.
 Test d'idempotency:
 Tous les composants d'une procédure doivent être idempotent – seulement si tous les composants d'une
procédure sont idempotents que la procédure dans son ensemble peut l’être.
30
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
31
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
32
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation du cloud
 Les infrastructures de cloud computing IaaS (Infrastructure-as-a-Service) sont une cible typique de
l'automatisation. 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.
 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. Ces sous-systèmes extraient un inventaire complet des ressources
d'un framework cloud et le maintiennent à jour en temps réel pendant que l'automatisation apporte des
modifications, ce qui vous permet d'écrire plus facilement l'automatisation pour gérer ces ressources.
 Vous pouvez également gérer les ressources cloud à l'aide de scripts écrits en Bash, Python ou dans d'autres
langues. De tels scripts sont aidés par de nombreux outils qui simplifient l'accès aux cibles d'automatisation.
Notamment:
 Les CLI et les kits de développement logiciel (SDK) qui enveloppent des API REST et d'autres interfaces du
matériel, des entités d'infrastructure virtuelle, des plans de contrôle d'ordre supérieur et des API de cloud. Cela
rend leurs fonctionnalités accessibles depuis les shells (scripts Bash) et dans les programmes Python.
 Les outils de ligne de commande et les analyseurs intégrés de Python peuvent analyser les sorties JSON et
YAML renvoyées par les CLI et les SDK dans des formats simples pour une manipulation facile.
33
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Scripts d'automatisation de base
Automatisation du cloud - Cloud CLI et SDK
Cisco UCS - un cloud
de métal nu
• API RESTful Cisco Intersight
• 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
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. Nous presontons dans
cette sections les solutions de CiscoUCS – Vmware – OpenStack
34
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
35
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.3 Les outils
d'automatisation
36
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
• De nombreuses autres solutions existent également. Les fournisseurs de cloud privés et
publics approuvent souvent leurs propres outils pour les utiliser sur leurs plateformes, par
exemple :
• le projet HEAT d'OpenStack (fournisseur cloud)
• CloudFormation d'AWS (fournisseur cloud).
• D'autres solutions qui visent le marché en croissance rapide de l'orchestration de
conteneurs, de l'infrastructure en tant que code incluent SaltStack et Terraform.
37
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
38
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
• l'accélération de la distribution des services tout en rendant aux équipes d'exploitation le
contrôle et une bonne visibilité sur votre environnement informatique dynamique.
• la transformation de l’entreprise en entreprise numérique efficace capable de s'adapter
rapidement pour répondre à la demande en constante évolution du marché.
39
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Provisionnement Configuration Déploiement Orchestration
Il s'agit de mettre en
place une infrastructure
informatique de calcul,
de stockage et de
réseau (réelle ou
virtuelle), d'activer les
communications, de la
mettre en service et de
la rendre prête à
l'emploi par les
opérateurs et les
développeurs.
Cela signifie installer
des applications et des
services de base et
effectuer les opérations,
les tâches et les tests
nécessaires pour par
exemple préparer une
plate-forme pour
déployer des
applications.
Cela implique la
création,
l'organisation,
l'intégration et la
préparation
d'applications.
Cela peut se référer à :
• Automatisation construite par
l'utilisateur ou inhérente à la plate-
forme visant à gérer les cycles de
vie des charges de travail et à réagir
dynamiquement aux conditions
changeantes.
• Des processus ou des workflows qui
relient les tâches d'automatisation.
• La gestion et la coordination
automatisées des systèmes
informatiques, des applications et
des services. L'orchestration facilite
la gestion des tâches et workflows
complexes pour le service
informatique.
Provisionnement vs. configuration vs. déploiement vs. orchestration
Outils d'automatisation
Que font les outils d'automatisation pour nous ?
40
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 Chef, Puppet et Ansible sont tous des
outils de gestion de configuration,
conçus pour installer et gérer des
logiciels sur des serveurs existants.
Outils d'automatisation
Concepts de base
Configuration vs Provisioning
 CloudFormation et Terraform sont des
outils d'approvisionnement conçus pour
approvisionner les serveurs eux-
mêmes et le reste de l'infrastructure,
comme les équilibreurs de charge, les
bases de données, la configuration
réseau.
41
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 Les outils de gestion de configuration
tels que Chef, Puppet et Ansible créent
généralement une infrastructure
mutable. Par exemple, en utilisant Chef
pour installer une nouvelle version d'un
logiciel, il exécutera la mise à jour
logicielle sur les serveurs existants et
les modifications se produiront sur
place.
Outils d'automatisation
Concepts de base
Infrastructure mutable vs immutable
 CloudFormation et Terraform sont des
outils d'approvisionnement conçus pour
approvisionner les serveurs eux-
mêmes et le reste de l'infrastructure,
comme les équilibreurs de charge, les
bases de données, la configuration
réseau.
42
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Concepts de base
43
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 Chef et Ansible sont basés sur un style
procédural ou impératif dans lequel
vous écrivez du code qui spécifie un
processus complet étape par étape sur
la façon d'atteindre l'état final souhaité.
Outils d'automatisation
Concepts de base
Terraform, CloudFormation et Puppet sont tous basés
sur un style plus déclaratif dans lequel on ne spécifie
que l'état final souhaité, et l'outil lui-même est chargé de
déterminer comment atteindre cet état
Pour l'approche déclarative, le code représente toujours
le dernier état de votre infrastructure. Il explique les
ressources actuellement déployées et comment elles
sont configurées. Pas besoin de s'inquiéter de
l'historique de l’infrastructure.
Procédural vs déclaratif
44
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Concepts de base
Procédural vs déclaratif
45
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 Chef et Puppet nécessitent un serveur maître pour stocker l'état de notre infrastructure et distribuer les mises
à jour. Chaque fois que vous devez installer une mise à jour, un client est utilisé pour envoyer des
commandes au serveur maître, puis le serveur maître transmet les mises à jour à tous les autres serveurs. Le
serveur maître agit comme un endroit centralisé pour gérer l'infrastructure.
Cependant, un serveur maître présente certains inconvénients :
 Infrastructure supplémentaire : un serveur maître nécessite de déployer un serveur supplémentaire ou même
un cluster de serveurs supplémentaires (pour une haute disponibilité et une évolutivité).
 Maintenance : vous devez entretenir, mettre à niveau, sauvegarder, surveiller et faire évoluer le(s) serveur(s)
maître(s).
 Sécurité : La sécurité est un défi avec le serveur maître communiquant avec tous les autres serveurs.
 Ansible, CloudFormation et Terraform sont tous sans master par défaut. Bien que certains d'entre eux
puissent s'appuyer sur un serveur maître, il fait déjà partie de l'infrastructure .
Outils d'automatisation
Concepts de base
Master vs Masterless
46
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 Chef et Puppet nécessitent que vous installiez un logiciel agent (par exemple, Chef Client, Puppet Agent) sur
chaque serveur que vous souhaitez configurer.
 Ansible, CloudFormation et Terraform ne nécessitent pas l'installation d'agents supplémentaires.
 L'agent s'exécute généralement en arrière-plan sur chaque serveur et est responsable de l'installation des
dernières mises à jour.
Cette approche présente quelques inconvénients :
 Amorçage : comment provisionner et installer le logiciel agent sur le serveur en premier lieu.
 Maintenance : Gardez le logiciel de l'agent synchronisé avec le serveur maître et mis à jour.
 Sécurité : l'agent doit être authentifié auprès du serveur maître, ce qui augmente les failles exploitées par les
attaquants.
 Comme dans Terraform, vous émettez simplement des commandes et les agents du fournisseur de cloud les
exécutent pour vous sur tous vos serveurs. Avec Ansible, vos serveurs doivent exécuter le démon SSH, qui
est de toute façon courant sur la plupart des serveurs.
Outils d'automatisation
Concepts de base
Agent vs Agentless
47
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 La communauté joue un rôle important lors de la sélection d'une technologie, car elle détermine le nombre de
personnes qui contribuent au projet, le nombre de plug-ins, d'intégrations et d'extensions disponibles, la
facilité avec laquelle il est possible de trouver de l'aide en ligne (par exemple, des articles de blog), et à quel
point il est facile d'engager quelqu'un pour vous aider (par exemple, un employé, un consultant ou une
société d'assistance).
Outils d'automatisation
Concepts de base
Large Community vs Small Community
48
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Contraintes & défis
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 :
• Not Stateless : application qui enregistre des
informations importantes dans des fichiers ou
dans une base de données sur le fichier local.
• 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.
49
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Comparaison des outils d’automatisation
Ansible, Chef, Puppet et SaltStack sont tous livrés avec la documentation de l'API pour
configurer les demandes d'API RESTful. Tous prennent en charge JSON et YAML ainsi
que d'autres formats de données. Le tableau suivant présente un résumé d'une
comparaison des caractéristiques principales des outils de gestion de configuration
Ansible, Puppet, Chef et SaltStack.
Caractéristique Ansible Chef Puppet SaltStack Terraform
Quel langage de
programmation?
Python + YAML Ruby Ruby Python
HCL (HashiCorp
Configuration
Language)
Avec ou sans
agent?
Sans agent
Approche
reposant sur un
agent
Prend en charge
les deux
Prend en charge
les deux
Sans agent
Comment les
périphériques
sont-ils gérés?
Tout appareil
peut être
«contrôleur»
Chef Master Puppet Master Salt Master
Tout appareil peut
être «contrôleur»
Qu'est-ce qui est
créé par l'outil?
Playbook Cookbook Manifest Pillar
50
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
choix des outils d’automatisation
Tous les outils d’automatisation DevOps ont leurs avantages et leurs limites :
- Ansible est excellent pour le provisionnement de logiciels et de machines.
- Terraform est excellent pour gérer les ressources cloud.
 Alors que le débat autour de Terraform, Ansible, Chef et d'autres outils se
poursuit, l’expert DevOps est le décisionnaire pour choisir le bon outil qui
répond le plus aux besoins et qui s'intègre facilement à l’infrastructure et aux
processus et qui fait le bon travail.
51
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
choix des outils d’automatisation
52
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Ansible
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 3.Toutes 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.
53
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Ansible
54
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
55
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
56
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
57
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
58
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
59
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils de Gestion de La Configuration
Exemple : Ansible PlayBook
60
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
61
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
62
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
63
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
64
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Outils d'automatisation
Chef
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.
65
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Résumé 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.
66
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.4 Infrastructure en tant
que code
67
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
 L'IaC (Infrastructure-as-Code) consiste à gérer et à approvisionner une infrastructure à l'aide de lignes de
code plutôt que par des processus manuels.
 L'IaC implique la création de fichiers de configuration qui contiennent les caractéristiques de
l'infrastructure, ce qui facilite les modifications et la distribution des configurations. L'IaC permet
également de s'assurer que le même environnement est fourni à chaque fois. En codifiant et en
documentant les caractéristiques de configuration, l'IaC facilite la gestion des configurations et permet
d'éviter les changements de configuration non documentés.
 Par l'automatisation du provisionnement de l'infrastructure selon l'approche IaC, les DevOps n'ont plus
besoin d'approvisionner ni de gérer manuellement les serveurs, les systèmes d'exploitation, le stockage et
les autres composants de l'infrastructure chaque fois qu’une nouvelle application développée est
déployée.
 Le déploiement de type IaC permet également de scinder l'infrastructure en modules qui peuvent ensuite
être combinés de différentes façons, de manière automatisée.
 Le contrôle des versions est une partie importante de l'IaC : les fichiers de configuration doivent être
gérés par un système de contrôle de source comme n'importe quel autre fichier de code source d’un
logiciel ou application  GITOPS.
L'IaC (Infrastructure-as-Code), qu'est-ce que c'est ?
68
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure en tant que code
GITOPS qu'est-ce que c'est ?
GITOPS : infrastructure moderne en tant que code  Le GitOps peut être considéré comme une
évolution de l'IaC (Infrastructure-as-Code) qui utilise Git comme système de contrôle des versions
pour les configurations de l'infrastructure.
• Dans une approche GitOps typique, vous pouvez maintenir un référentiel, tel qu'un dépôt privé sur
Git/GitHub, avec plusieurs branches appelées Développement, Testing/UAT et Production.
69
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure en tant que code
Comment déployer l'infrastructure comme code avec GITOPS?
70
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Infrastructure en tant que code
Comment déployer l'infrastructure comme code avec GITOPS?
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.
• Il est également nécessaire de développer la capacité de rediriger rapidement le trafic d'applications vers l'un ou l'autre.
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.
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.
71
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.5 Automatisation des tests
72
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
Automatisation des tests
Test et validation automatisés
• En utilisant des outils de test unitaire tels que pytest ou unittest, 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.
73
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
74
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
75
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
76
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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é
les erreurs signalées.
77
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
78
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
79
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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
80
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.6 Simulation de réseau
81
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
82
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
83
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
84
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
9.7 Résumé de l'infrastructure
et de l'automatisation
85
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
86
© 2020 Cisco et/ou ses filiales. Tous droits réservés. Informations
confidentielles de Cisco
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.
DEVOPSLLLOOOOO_Module_9 --Infrastructure et automatisation.pptx

DEVOPSLLLOOOOO_Module_9 --Infrastructure et automatisation.pptx

  • 1.
    Module 9: Automatisationdes Infrastructures
  • 2.
    Module 9: Automatisationdes Infrastructures 9.1 Automatisation de l'infrastructure 9.2 Les scripts d'automatisation de base 9.3 Les outils d'automatisation 9.4 Infrastructure en tant que code 9.5 Automatisation des tests 9.6 Simulation de réseau
  • 3.
    3 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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 avec Cisco Décrire les environnements de déploiement qui bénéficient de l'automatisation. 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.
  • 4.
    4 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Module 9 : 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
  • 5.
    5 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Introduction à l'infrastructure et à l'automatisation Travaux pratiques - Installer la VM CSR1000v Dans cette section de ce module, vous aurez deux laboratoires qui nécessitent une machine virtuelle différente. 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
  • 6.
    6 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.1 Automatisation de l'infrastructure
  • 7.
    7 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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 les services de calcul, de stockage et de réseau sur lesquels elles s'exécutent. • Lorsque vous comprenez ce qu'est l'automatisation et ce qu'elle peut faire pour vous, vous serez prêt à visiter le Cisco DevNet Automation Exchange pour explorer des solutions qui peuvent vous aider.
  • 8.
    8 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Risques dans les environnements déployés et gérés manuellement. Inconvénients des opérations manuelles • Ajoutent du 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. Coûts financiers • Les pannes et les violations sont le plus souvent causées lorsque les systèmes sont mal configurés. Cela est souvent dû à une erreur humaine lors de modifications manuelles. Selon une statistique souvent citée par Gartner (à partir de 2014), le coût moyen d'une panne informatique est supérieur à 5 600 USD par minute, soit plus de 300 000 USD par heure. Le coût d'une atteinte à la sécurité peut être encore plus élevé.
  • 9.
    9 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Risques dans les environnements déployés et gérés manuellement. Risques de dépendance • L'écosystème logiciel d'aujourd'hui est décentralisé. Les développeurs n'ont plus besoin de créer et de gérer des solutions monolithiques et complètes. Au lieu de cela, ils se spécialisent en construisant des composants individuels en fonction de leurs besoins et de leurs intérêts. Les développeurs peuvent combiner les autres composants, l'infrastructure et les services nécessaires pour mettre en place 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. • 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.
  • 10.
    10 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Pourquoi avons-nous besoin de l'automatisation ?  L'automatisation de l'infrastructure peut offrir de nombreux avantages. Ceux-ci sont résumés comme la vitesse et la capacité de travailler à grande échelle, avec un risque réduit.  L'automatisation est un composant clé de : 1- l'infrastructure fonctionnelle définie par logiciel 2- des applications distribuées et dynamiques.  Les avantages de l'automatisation : • Self-service • Scale on demand • Observability • Automated problem mitigation
  • 11.
    11 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Pourquoi avons-nous besoin de l'automatisation? • Self-service :  Les structures libre-service automatisées permettent aux utilisateurs de demander une infrastructure à la demande, notamment:  Composants d'infrastructure standard tels que les instances de base de données et les terminaux VPN  Plateformes de développement et de test  Serveurs Web renforcés et autres instances d'application, ainsi que les réseaux isolés et l'accès Internet sécurisé qui les rendent utiles, sécuritaires et résistants aux erreurs  Plateformes d'analyse telles que Apache Hadoop, Elastic Stack, InfluxData et Splunk
  • 12.
    12 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Pourquoi avons-nous besoin de l'automatisation? • 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. • Un exemple est la mise à l'échelle du cloud privé au cloud public et la mise en forme appropriée du trafic. • Les plates-formes cloud peuvent fournir la possibilité de mettre à l'échelle automatiquement (mise à l'échelle automatique) des machines virtuelles, des conteneurs ou des charges de travail sur une infrastructure sans serveur.
  • 13.
    13 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Pourquoi avons-nous besoin de l'automatisation? • Observability: • Un système observable permet aux utilisateurs d'inférer l'état interne d'un système complexe à partir de ses sorties. • L'observabilité (abrégée en o11y) peut être obtenue grâce à la surveillance des plateformes et des applications. • L'observabilité peut également être obtenue grâce à des tests proactifs de production pour les modes de défaillance et les problèmes de performance. Mais, dans une opération dynamique qui inclut la mise à l'échelle automatique et d'autres comportements d'application, la complexité augmente et les entités deviennent éphémères. • Un rapport récent du fournisseur de framework d'observabilité DataDog, indique que la durée de vie moyenne d'un conteneur sous orchestration n'est que de 12 heures; les microservices et les fonctions ne peuvent fonctionner que pendant quelques secondes. Les entités éphémères observables et les tests en production ne sont possibles qu'avec l'automatisation.
  • 14.
    14 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Pourquoi avons-nous besoin de l'automatisation? • Automated problem mitigation:  Certains fabricants de logiciels et experts en observabilité recommandent ce que l'on appelle Chaos Engineering. Cette philosophie repose sur l'affirmation selon laquelle la défaillance est normale: au fur et à mesure que les applications évoluent, certaines pièces échouent toujours. Pour cette raison, les applications et les plates-formes doivent être conçues pour:  Minimiser les effets des problèmes : Reconnaître rapidement les problèmes et acheminer le trafic vers d'autres capacités, en veillant à ce que les utilisateurs finaux ne soient pas gravement touchés et à ce que le personnel des opérations de garde ne soit pas inutilement paginé.  l'auto-guérison : Allouez les ressources en fonction de la stratégie et redéployez automatiquement les composants défectueux selon les besoins pour rétablir l'état sain de l'application dans les conditions actuelles.  Suivre les événements : Souvenez-vous de tout ce qui a mené à l'incident, afin que les corrections puissent être planifiées et que des post-mortems puissent être effectués.  Certains défenseurs de Chaos Engineering préconisent même l'utilisation d'outils d'automatisation pour provoquer des défaillances contrôlées (ou aléatoires) dans les systèmes de production. Cela met continuellement au défi Dev et Ops d'anticiper les problèmes et de renforcer la résilience et la capacité d'auto-guérison. Les projets open source tels que Chaos Monkey et les plateformes «Failure-as-a-Service» comme Gremlin sont spécialement conçus pour briser les choses, à la fois au hasard et de manière beaucoup plus contrôlée et empirique. Une discipline émergente est appelée "test d'injection d'échec"
  • 15.
    15 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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. Walk: Automatisation en lecture seule Run : Activer des politiques et fournir un libre-service dans plusieurs domaines Fly: Déployer des applications, des configurations réseau et bien plus encore via CI/CD • Grâce aux outils d'automatisation, vous pouvez collecter des informations sur la configuration du réseau. • On peut utiliser un scénario de lecture pour auditer les configurations et effectuer l'étape naturelle suivante, qui consiste à remettre la configuration en conformité. • Dans Automation Exchange, ce changement est classé comme une progression de vol à pied. • Avec ces scénarios d'automatisation de l'étape Exécuter, les utilisateurs peuvent provisionner leurs propres mises à jour réseau en toute sécurité. • Les workflows d'intégration peuvent être automatisés, les configurations réseau quotidiennes peuvent être gérées et les scénarios quotidiens peuvent être imprégnés. • Pour des automatismes plus complexes et des exemples programmables, le stage Fly de DevNet Automation Exchange est utilisé. • Ici, les besoins peuvent être gérés en surveillant et en gérant de manière proactive les utilisateurs et les appareils, tout en obtenant des informations sur les données de télémétrie.
  • 16.
    16 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation un argument pour l'automatisation : Infrastructure définie par logiciel 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 des réseaux virtualisés. 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 paradigmes du cloud • Les développeurs doivent prêter une attention particulière à 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 et les coûts sont difficiles à calculer.
  • 17.
    17 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation un argument pour l'automatisation : Applications distribuées et dynamiques.  Les architectures d'application «monolithiques» mono-serveur, bien que conceptuellement simples, ne répondent pas très bien à ces besoins. Un serveur est un point de défaillance unique, limite les performances et la capacité et dispose d'une capacité de mise à niveau limitée. La duplication d'un seul serveur peut augmenter la capacité des applications très simples, mais ne fonctionne pas pour les applications nécessitant une cohérence des données sur toutes les instances. Et il ne protégera pas les données utilisateur en cas de défaillance sur le serveur sur lequel résident leurs données.  Pour ces raisons et pour d'autres, les architectures d'applications modernes sont de plus en plus distribuées. Ils sont construits à partir de composants petits et 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).
  • 18.
    18 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco
  • 19.
    19 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco
  • 20.
    20 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Avantages des microservices : • Évolutivité (Scalability)- les microservices peuvent être mis à l'échelle et équilibrés la charge selon les besoins sur de nombreux serveurs en réseau ou plusieurs régions de cloud public géographiquement séparées. This eliminates single points of failure. • Outils d'automatisation de l'infrastructure- De plus en plus, le dynamisme des applications basées sur des microservices est assuré par l'infrastructure. Ces conteneurs automatisent la mise à l'échelle à la demande, l'auto-guérison et plus encore. Défis des microservices: • Complexité accrue - Les microservices signifient qu'il y a beaucoup de pièces mobiles à configurer et à déployer. Il existe des opérations plus exigeantes, notamment la mise à l'échelle à la demande, l'auto- guérison et d'autres fonctionnalités. • L'automatisation est une exigence - les méthodes manuelles ne peuvent pas faire face de manière réaliste à la complexité du déploiement et de la gestion des applications dynamiques. Infrastructure et automatisation un argument pour l'automatisation : Applications distribuées et dynamiques.
  • 21.
    21 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Automatisation & DevOps • Pour que l'automatisation soit vraiment efficace, elle nécessite des changements dans la culture organisationnelle, y compris la réduction des divisions historiques entre le développement (Dev Team) et les opérations (Ops Team). • Historiquement, la création d'applications était le travail des développeurs de logiciels (equipe Dev), et l’assurance que les applications fonctionnent convenablement était le travail des opérations informatiques (équipe Ops).
  • 22.
    22 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure et automatisation Résumé sur l'automatisation de l'infrastructure Ces besoins commerciaux et techniques, Ces nouvelles tendances 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. • Gérez les applications basées sur des microservices  L'automatisation aide à développer, tester, mettre en scène, surveiller et exploiter les applications à des échelles de production et dans divers environnements  Cependant, nous avons besoin de préserver, mettre à jour et améliorer continuellement le code (Script) d'automatisation.
  • 23.
    23 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.2 Les scripts d'automatisation
  • 24.
    24 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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  Mais cela ne signifie pas que vous ne pouvez pas faire d'automatisation avec des outils plus basiques comme Bash ou quelques langages de programmation sophistiqués comme Python. • Bien que les outils d'automatisation se focalise sur le développement des fonctionnalités shell, les utilitaires du système d'exploitation, les fonctions API et d'autres éléments du plan de contrôle pour garantir simplicité, uniformité et compatibilité, ces outils d’automatisation ne résolvent toujours pas tous les problèmes de déploiement et de configuration. • C'est pourquoi 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.
  • 25.
    25 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Scripts d'automatisation de base Les shells sont omniprésents, donc le script shell est historiquement le socle de l'automatisation. Bash • Le Bash est un shell Unix par défaut sur la plupart des distributions Linux et sur macOS. L'utilisation de commandes dans un script Bash est similaire à celle qu’on utilise 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 particulièrement utiles lors de la création et de l'exploitation d'infrastructures virtualisées dans des environnements cloud, à l'aide de kits SDK tels que AWS SDK pour Python ou AWS SDK pour javascript dans Node.js. Bien que Bash puisse ê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.
  • 26.
    26 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation par procédures  Utiliser Bash, Python ou d'autres langages sophistiqués pour l'automatisation signifie généralement écrire une procédure impérative. 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.  Une telle automatisation procédurale peut être très puissante. Mais cela ne reste simple que si vous êtes au courant de la façon dont les utilitaires système et d'autres interfaces fonctionnent. Vous devez connaître obligatoirement l'état du système cible.  Élaboration d'une procédure  Si vous faites un petit script pour installer et configurer un logiciel sur un système cible distant, il peut fonctionner correctement la première fois. Exécutez-le une deuxième fois cependant; et votre script simple pourrait faire un désordre. Il peut lancer une erreur et s'arrêter quand il trouve l'application déjà installée, ou pire, ignorer une telle erreur, et continuer à apporter des modifications redondantes dans les fichiers de configuration. Pour rendre ce script plus sûr, plus facile à utiliser, plus flexible et réutilisable, vous devez le rendre plus intelligent et plus élaboré. Par exemple, vous pouvez l'améliorer pour:  Déterminez s'il va fonctionner dans un environnement par exemple Debian ou CentOS, et utilisez le gestionnaire de paquets correct (apt ou yum) et la syntaxe adequate.  Déterminez si votre application cible est déjà installée dans une version appropriée et essayez de l'installer uniquement si elle n'est pas présente.  Déterminez s'il a fait une copie de chaque fichier de configuration avant de le modifier, et utilisez les éditeurs de flux (awk, sed, etc.) pour apporter des modifications précises.
  • 27.
    27 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation par procédures  Objectif d'une procédure Les procédures sont développées afin qu‘elles accomplissent certaines des tâches suivantes:  Découvrez, inventoriez et compilez des informations sur les systèmes cibles, et assurez-vous que les scripts le font correctement.  Encapsuler la complexité de l'installation des applications en toute sécurité.  Effectuez des sauvegardes et des modifications de fichiers de configuration, et redémarrez les services dans des formulaires réutilisables, tels que des scripts secondaires contenant des paramètres, des bibliothèques de fonctions et d'autres informations. Pour vous assurer que les scripts sont efficaces et réutilisables, vous devez:  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.
  • 28.
    28 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation par procédures  Exemple de script procédural simple Le type du 3 ieme script a tendance à être dangereux si l'état de démarrage n'est pas complètement connu et contrôlé. L'application des mêmes modifications à un système correctement configuré peut même le casser.
  • 29.
    29 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation des procédures  Idempotency: une caractéristique primordiale dans l'automatisation  le but des scripts d’automatisation est d'atteindre l'état souhaité dans un système, quelles que soient les conditions de démarrage. 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, en effectuant uniquement les tâches nécessaires pour l'obtention de l'état souhaité.  Cette qualité des scripts est appelée idempotency. Les principes fondamentaux de idempotency:  Assurez-vous que le changement que vous souhaitez apporter n'a pas déjà été fait - Également connu sous le nom de "Tout d'abord, ne faites pas de mal (First, do no harm)". Ne rien faire est presque toujours un meilleur choix que de faire quelque chose de faux et peut-être irrécupérable.  Accéder à un état dont le fonctionnement a été vérifié avant d'apporter des modifications. Par exemple, vous devrez peut-être supprimer et purger les versions antérieures des applications avant d'installer des versions ultérieures. Dans les environnements de production infra-as-code, ce principe devient la base de l'immuabilité. L'immuabilité est l'idée que les changements ne sont jamais faits sur les systèmes en direct. Au lieu de cela, modifiez l'automatisation et utilisez-la pour créer des composants flambant neufs, dont le fonctionnement a été vérifié.  Test d'idempotency:  Tous les composants d'une procédure doivent être idempotent – seulement si tous les composants d'une procédure sont idempotents que la procédure dans son ensemble peut l’être.
  • 30.
    30 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco
  • 31.
    31 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 32.
    32 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation du cloud  Les infrastructures de cloud computing IaaS (Infrastructure-as-a-Service) sont une cible typique de l'automatisation. 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.  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. Ces sous-systèmes extraient un inventaire complet des ressources d'un framework cloud et le maintiennent à jour en temps réel pendant que l'automatisation apporte des modifications, ce qui vous permet d'écrire plus facilement l'automatisation pour gérer ces ressources.  Vous pouvez également gérer les ressources cloud à l'aide de scripts écrits en Bash, Python ou dans d'autres langues. De tels scripts sont aidés par de nombreux outils qui simplifient l'accès aux cibles d'automatisation. Notamment:  Les CLI et les kits de développement logiciel (SDK) qui enveloppent des API REST et d'autres interfaces du matériel, des entités d'infrastructure virtuelle, des plans de contrôle d'ordre supérieur et des API de cloud. Cela rend leurs fonctionnalités accessibles depuis les shells (scripts Bash) et dans les programmes Python.  Les outils de ligne de commande et les analyseurs intégrés de Python peuvent analyser les sorties JSON et YAML renvoyées par les CLI et les SDK dans des formats simples pour une manipulation facile.
  • 33.
    33 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Scripts d'automatisation de base Automatisation du cloud - Cloud CLI et SDK Cisco UCS - un cloud de métal nu • API RESTful Cisco Intersight • 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 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. Nous presontons dans cette sections les solutions de CiscoUCS – Vmware – OpenStack
  • 34.
    34 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 35.
    35 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.3 Les outils d'automatisation
  • 36.
    36 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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. • De nombreuses autres solutions existent également. Les fournisseurs de cloud privés et publics approuvent souvent leurs propres outils pour les utiliser sur leurs plateformes, par exemple : • le projet HEAT d'OpenStack (fournisseur cloud) • CloudFormation d'AWS (fournisseur cloud). • D'autres solutions qui visent le marché en croissance rapide de l'orchestration de conteneurs, de l'infrastructure en tant que code incluent SaltStack et Terraform.
  • 37.
    37 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco
  • 38.
    38 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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 • l'accélération de la distribution des services tout en rendant aux équipes d'exploitation le contrôle et une bonne visibilité sur votre environnement informatique dynamique. • la transformation de l’entreprise en entreprise numérique efficace capable de s'adapter rapidement pour répondre à la demande en constante évolution du marché.
  • 39.
    39 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Provisionnement Configuration Déploiement Orchestration Il s'agit de mettre en place une infrastructure informatique de calcul, de stockage et de réseau (réelle ou virtuelle), d'activer les communications, de la mettre en service et de la rendre prête à l'emploi par les opérateurs et les développeurs. Cela signifie installer des applications et des services de base et effectuer les opérations, les tâches et les tests nécessaires pour par exemple préparer une plate-forme pour déployer des applications. Cela implique la création, l'organisation, l'intégration et la préparation d'applications. Cela peut se référer à : • Automatisation construite par l'utilisateur ou inhérente à la plate- forme visant à gérer les cycles de vie des charges de travail et à réagir dynamiquement aux conditions changeantes. • Des processus ou des workflows qui relient les tâches d'automatisation. • La gestion et la coordination automatisées des systèmes informatiques, des applications et des services. L'orchestration facilite la gestion des tâches et workflows complexes pour le service informatique. Provisionnement vs. configuration vs. déploiement vs. orchestration Outils d'automatisation Que font les outils d'automatisation pour nous ?
  • 40.
    40 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  Chef, Puppet et Ansible sont tous des outils de gestion de configuration, conçus pour installer et gérer des logiciels sur des serveurs existants. Outils d'automatisation Concepts de base Configuration vs Provisioning  CloudFormation et Terraform sont des outils d'approvisionnement conçus pour approvisionner les serveurs eux- mêmes et le reste de l'infrastructure, comme les équilibreurs de charge, les bases de données, la configuration réseau.
  • 41.
    41 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  Les outils de gestion de configuration tels que Chef, Puppet et Ansible créent généralement une infrastructure mutable. Par exemple, en utilisant Chef pour installer une nouvelle version d'un logiciel, il exécutera la mise à jour logicielle sur les serveurs existants et les modifications se produiront sur place. Outils d'automatisation Concepts de base Infrastructure mutable vs immutable  CloudFormation et Terraform sont des outils d'approvisionnement conçus pour approvisionner les serveurs eux- mêmes et le reste de l'infrastructure, comme les équilibreurs de charge, les bases de données, la configuration réseau.
  • 42.
    42 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Concepts de base
  • 43.
    43 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  Chef et Ansible sont basés sur un style procédural ou impératif dans lequel vous écrivez du code qui spécifie un processus complet étape par étape sur la façon d'atteindre l'état final souhaité. Outils d'automatisation Concepts de base Terraform, CloudFormation et Puppet sont tous basés sur un style plus déclaratif dans lequel on ne spécifie que l'état final souhaité, et l'outil lui-même est chargé de déterminer comment atteindre cet état Pour l'approche déclarative, le code représente toujours le dernier état de votre infrastructure. Il explique les ressources actuellement déployées et comment elles sont configurées. Pas besoin de s'inquiéter de l'historique de l’infrastructure. Procédural vs déclaratif
  • 44.
    44 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Concepts de base Procédural vs déclaratif
  • 45.
    45 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  Chef et Puppet nécessitent un serveur maître pour stocker l'état de notre infrastructure et distribuer les mises à jour. Chaque fois que vous devez installer une mise à jour, un client est utilisé pour envoyer des commandes au serveur maître, puis le serveur maître transmet les mises à jour à tous les autres serveurs. Le serveur maître agit comme un endroit centralisé pour gérer l'infrastructure. Cependant, un serveur maître présente certains inconvénients :  Infrastructure supplémentaire : un serveur maître nécessite de déployer un serveur supplémentaire ou même un cluster de serveurs supplémentaires (pour une haute disponibilité et une évolutivité).  Maintenance : vous devez entretenir, mettre à niveau, sauvegarder, surveiller et faire évoluer le(s) serveur(s) maître(s).  Sécurité : La sécurité est un défi avec le serveur maître communiquant avec tous les autres serveurs.  Ansible, CloudFormation et Terraform sont tous sans master par défaut. Bien que certains d'entre eux puissent s'appuyer sur un serveur maître, il fait déjà partie de l'infrastructure . Outils d'automatisation Concepts de base Master vs Masterless
  • 46.
    46 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  Chef et Puppet nécessitent que vous installiez un logiciel agent (par exemple, Chef Client, Puppet Agent) sur chaque serveur que vous souhaitez configurer.  Ansible, CloudFormation et Terraform ne nécessitent pas l'installation d'agents supplémentaires.  L'agent s'exécute généralement en arrière-plan sur chaque serveur et est responsable de l'installation des dernières mises à jour. Cette approche présente quelques inconvénients :  Amorçage : comment provisionner et installer le logiciel agent sur le serveur en premier lieu.  Maintenance : Gardez le logiciel de l'agent synchronisé avec le serveur maître et mis à jour.  Sécurité : l'agent doit être authentifié auprès du serveur maître, ce qui augmente les failles exploitées par les attaquants.  Comme dans Terraform, vous émettez simplement des commandes et les agents du fournisseur de cloud les exécutent pour vous sur tous vos serveurs. Avec Ansible, vos serveurs doivent exécuter le démon SSH, qui est de toute façon courant sur la plupart des serveurs. Outils d'automatisation Concepts de base Agent vs Agentless
  • 47.
    47 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  La communauté joue un rôle important lors de la sélection d'une technologie, car elle détermine le nombre de personnes qui contribuent au projet, le nombre de plug-ins, d'intégrations et d'extensions disponibles, la facilité avec laquelle il est possible de trouver de l'aide en ligne (par exemple, des articles de blog), et à quel point il est facile d'engager quelqu'un pour vous aider (par exemple, un employé, un consultant ou une société d'assistance). Outils d'automatisation Concepts de base Large Community vs Small Community
  • 48.
    48 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Contraintes & défis 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 : • Not Stateless : application qui enregistre des informations importantes dans des fichiers ou dans une base de données sur le fichier local. • 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.
  • 49.
    49 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Comparaison des outils d’automatisation Ansible, Chef, Puppet et SaltStack sont tous livrés avec la documentation de l'API pour configurer les demandes d'API RESTful. Tous prennent en charge JSON et YAML ainsi que d'autres formats de données. Le tableau suivant présente un résumé d'une comparaison des caractéristiques principales des outils de gestion de configuration Ansible, Puppet, Chef et SaltStack. Caractéristique Ansible Chef Puppet SaltStack Terraform Quel langage de programmation? Python + YAML Ruby Ruby Python HCL (HashiCorp Configuration Language) Avec ou sans agent? Sans agent Approche reposant sur un agent Prend en charge les deux Prend en charge les deux Sans agent Comment les périphériques sont-ils gérés? Tout appareil peut être «contrôleur» Chef Master Puppet Master Salt Master Tout appareil peut être «contrôleur» Qu'est-ce qui est créé par l'outil? Playbook Cookbook Manifest Pillar
  • 50.
    50 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration choix des outils d’automatisation Tous les outils d’automatisation DevOps ont leurs avantages et leurs limites : - Ansible est excellent pour le provisionnement de logiciels et de machines. - Terraform est excellent pour gérer les ressources cloud.  Alors que le débat autour de Terraform, Ansible, Chef et d'autres outils se poursuit, l’expert DevOps est le décisionnaire pour choisir le bon outil qui répond le plus aux besoins et qui s'intègre facilement à l’infrastructure et aux processus et qui fait le bon travail.
  • 51.
    51 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration choix des outils d’automatisation
  • 52.
    52 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Ansible 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 3.Toutes 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.
  • 53.
    53 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Ansible
  • 54.
    54 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 55.
    55 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 56.
    56 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 57.
    57 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 58.
    58 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 59.
    59 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils de Gestion de La Configuration Exemple : Ansible PlayBook
  • 60.
    60 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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
  • 61.
    61 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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
  • 62.
    62 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 63.
    63 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 64.
    64 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Outils d'automatisation Chef 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.
  • 65.
    65 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Résumé 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.
  • 66.
    66 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.4 Infrastructure en tant que code
  • 67.
    67 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco  L'IaC (Infrastructure-as-Code) consiste à gérer et à approvisionner une infrastructure à l'aide de lignes de code plutôt que par des processus manuels.  L'IaC implique la création de fichiers de configuration qui contiennent les caractéristiques de l'infrastructure, ce qui facilite les modifications et la distribution des configurations. L'IaC permet également de s'assurer que le même environnement est fourni à chaque fois. En codifiant et en documentant les caractéristiques de configuration, l'IaC facilite la gestion des configurations et permet d'éviter les changements de configuration non documentés.  Par l'automatisation du provisionnement de l'infrastructure selon l'approche IaC, les DevOps n'ont plus besoin d'approvisionner ni de gérer manuellement les serveurs, les systèmes d'exploitation, le stockage et les autres composants de l'infrastructure chaque fois qu’une nouvelle application développée est déployée.  Le déploiement de type IaC permet également de scinder l'infrastructure en modules qui peuvent ensuite être combinés de différentes façons, de manière automatisée.  Le contrôle des versions est une partie importante de l'IaC : les fichiers de configuration doivent être gérés par un système de contrôle de source comme n'importe quel autre fichier de code source d’un logiciel ou application  GITOPS. L'IaC (Infrastructure-as-Code), qu'est-ce que c'est ?
  • 68.
    68 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure en tant que code GITOPS qu'est-ce que c'est ? GITOPS : infrastructure moderne en tant que code  Le GitOps peut être considéré comme une évolution de l'IaC (Infrastructure-as-Code) qui utilise Git comme système de contrôle des versions pour les configurations de l'infrastructure. • Dans une approche GitOps typique, vous pouvez maintenir un référentiel, tel qu'un dépôt privé sur Git/GitHub, avec plusieurs branches appelées Développement, Testing/UAT et Production.
  • 69.
    69 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure en tant que code Comment déployer l'infrastructure comme code avec GITOPS?
  • 70.
    70 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Infrastructure en tant que code Comment déployer l'infrastructure comme code avec GITOPS? 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. • Il est également nécessaire de développer la capacité de rediriger rapidement le trafic d'applications vers l'un ou l'autre. 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. 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.
  • 71.
    71 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.5 Automatisation des tests
  • 72.
    72 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Automatisation des tests Test et validation automatisés • En utilisant des outils de test unitaire tels que pytest ou unittest, 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.
  • 73.
    73 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 74.
    74 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 75.
    75 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 76.
    76 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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é les erreurs signalées.
  • 77.
    77 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 78.
    78 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 79.
    79 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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
  • 80.
    80 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.6 Simulation de réseau
  • 81.
    81 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 82.
    82 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 83.
    83 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 84.
    84 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 9.7 Résumé de l'infrastructure et de l'automatisation
  • 85.
    85 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.
  • 86.
    86 © 2020 Ciscoet/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco 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.

Notes de l'éditeur

  • #10 la mise à l'échelle = la faculté d’un système à pouvoir changer de taille ou de volume selon les besoins des utilisateurs.
  • #16 L'infrastructure définie par logiciel, également connue sous le nom de 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. Le cloud computing permet également des plates-formes et des services plus abstraits, tels que la base de données en tant que service (DaaS), la plate-forme en tant que service (PaaS), l'informatique sans serveur, l'orchestration de conteneurs, etc. Les clouds privés permettent aux entreprises d'utiliser du matériel coûteux sur site beaucoup plus efficacement. Les clouds publics et privés hébergés permettent aux entreprises de louer des capacités en fonction des besoins, les laissant évoluer et croître (ou diminuer) plus rapidement, simplifiant la planification et évitant les investissements en capital fixe. Avantages des paradigmes du cloud Libre-service (plates-formes à la demande) - Les ressources cloud peuvent être disponibles dans les heures ou les minutes suivant leur besoin. Accélérer ainsi toutes les phases de développement et permettre une mise à l'échelle rapide de la capacité de production. Les applications peuvent être mises à l'échelle dans la région de cloud public, l'ensemble de services ou le fournisseur le plus rentable. Spécification étroite, cohérence, répétabilité - Les développeurs peuvent capturer et standardiser des configurations uniques, en maintenant la cohérence configurationnelle des plates-formes grâce au développement, aux tests, à la mise en scène et à la production. Le déploiement d'une application et d'une configuration dont le fonctionnement a été vérifié empêche les bogues qui peuvent être introduits lors des modifications manuelles de la configuration de la plate-forme. Abstraction de plateforme - Les technologies de conteneur abstraient les applications et les plates-formes les unes des autres, en encapsulant les dépendances des applications et en laissant votre application conteneurisée s'exécuter sur un environnement hôte génériquement spécifié. Défis des paradigmes du cloud Les développeurs doivent prêter une attention particulière à la conception, à l'architecture et à la sécurité de la plateforme. Les environnements cloud imposent de nouvelles exigences aux applications. Les infrastructures de cloud public ou privé ont des interfaces utilisateur, des API et des bizarreries variables. Cela signifie que les utilisateurs ne peuvent pas toujours traiter les ressources cloud comme les produits qu'ils devraient réellement être, surtout lorsqu'ils tentent de gérer manuellement les nuages. 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. Les autorisations cloud peuvent également être difficiles à gérer, en particulier dans les scénarios gérés manuellement. Lorsque les ressources cloud peuvent être rapidement desservies via des opérations manuelles, la consommation peut être difficile à gérer et les coûts sont difficiles à calculer. Les clouds privés nécessitent des audits fréquents et des procédures pour retirer l'infrastructure virtuelle inutilisée. Les utilisateurs de cloud public peuvent être surpris par des coûts inattendus lorsque les ressources payables à l'utilisation sont abandonnées, mais ne sont pas déchirées. Un grand nombre de ces défis peuvent être relevés grâce à l'automatisation. Répétabilité : Qualité d'une mesure qui donne le même résultat si on la répète dans des conditions identiques et dans un court intervalle de temps.
  • #21 https://analyticsindiamag.com/a-comparison-of-top-devops-automation-tools/ https://fre.myservername.com/devops-automation-how-is-automation-applied-devops-practice
  • #25  Pour développer et exécuter des scripts dans la langue souhaitée, vous devrez peut-être installer et configurer cette langue sur votre système de développement et sur toutes les machines cibles distantes. Pour accéder aux fonctions utilitaires au niveau du système, il peut être nécessaire d'appeler des bibliothèques (comme la bibliothèque os en Python), puis d'envelopper les commandes CLI Bash dans une syntaxe supplémentaire pour l'exécution. Vous devez également gérer les codes de retour, les délais d'expiration et d'autres conditions dans votre environnement de langue préféré.
  • #31  Presque tous les développeurs finiront par utiliser ces méthodes et d'autres à un moment ou à un autre, en fonction de la (des) tâche (s), des limitations environnementales, de l'accès à Internet et d'autres restrictions de sécurité, et de la politique institutionnelle. Il est important de comprendre ces méthodes et de les pratiquer, car l'automatisation procédurale de certains processus manuels peut toujours être utile, même lorsque vous utilisez des outils de déploiement avancés pour la majorité d'une tâche DevOps. Pour être clair, ce n'est pas une bonne pratique, mais l'état de l'art en matière d'outillage n'est pas encore assez parfait ou complet pour résoudre tous les problèmes que vous pourriez rencontrer.
  • #33  Cisco UCS - un nuage de métal nu Si vous connaissez les produits Cisco Compute, y compris le système UCS (Unified Computing System), Hyperflex, UCS Manager et le système de gestion de l'infrastructure Intersight, vous savez qu'ils constituent effectivement une passerelle vers la gestion SaaS globale de l'infrastructure UCS/Hyperflex d'une organisation. L'API principale de Cisco pour cette infrastructure est l'API Cisco Intersight RESTful. Ceci est une API compatible OpenAPI qui peut être interrogé avec Swagger et d'autres outils OpenAPI open source. Cela vous permet de générer des kits SDK spécialisés pour des langages et des environnements arbitraires, et de simplifier la tâche de documentation de l'API (et de maintenance des kits SDK). Cisco fournit et maintient une gamme de kits SDK pour l'API Intersight RESTful, y compris ceux pour Python et Microsoft PowerShell. Ils fournissent également une gamme de modules Ansible. VMware L'interface de ligne de commande principale de VMware est désormais Datacenter CLI, qui permet le fonctionnement en ligne de commande de l'API vCenter Server et de VMware Cloud sur AWS. Il est écrit en Python et fonctionne sous Linux, Mac et Windows. VMware fournit également vSphere CLI pour Linux et Windows, qui vous permet de gérer les hôtes de virtualisation ESXi, les serveurs vCenter et propose un sous-ensemble de commandes DCLI. Il offre également PowerCLI pour Windows PowerShell, qui fournit des applets de commande pour vSphere, vCloud, vRealize Operations Manager, vSAN, NSX-T, VMware Cloud on AWS, VMware HCX, VMware Site Recovery Manager et VMware Horizon. VMware propose également une multitude de kits SDK pour les langages populaires (y compris Python), destinés à vSphere Automation, vCloud Suite, vSAN et d'autres produits. OpenStack Le projet OpenStack fournit le client OpenStack (OSC), qui est écrit en Python. L'OSC vous permet d'accéder aux API OpenStack Compute, Identity, Image, Object Storage et Block Storage. L'installation des clients de ligne de commande installe également le SDK OpenStack Python fourni, permettant ainsi à un hôte de commandes OpenStack en Python. OpenStack Toolkits sont également disponibles pour de nombreuses autres langues populaires.
  • #36 Heat est un outil d’orchestration d’infrastructures pour OpenStack. Il prend en entrée un fichier descriptif indiquant les différents éléments de l’infrastructure à piloter, ainsi que les comportements à adopter suite à certains événements. L’objectif : industrialiser la gestion d’infrastructures cloud par du code. C’est ce que l’on appelle l’Infrastructure as Code. vous permet de modéliser, de provisionner et de gérer les ressources AWS et tierces en traitant l'infrastructure en tant que code. Salt ou SaltStack Développé en 2011 par l'architecte IT Tom Hatch, est un logiciel de gestion de configuration écrit en Python, fonctionnant sur le principe client-serveur. Salt a pour but de rendre la gestion de configuration simple mais flexible. Il s'agit d'une alternative à Puppet, Ansible et Chef. Terraform voit le jour en 2014. Il s'agit d'un environnement open source d'Infrastructure as Code (IaC). Edité par l'américain HashiCorp, il a pour finalité d'automatiser le provisioning et le management de n'importe quelle infrastructure cloud ou ressources IT.
  • #39 Le provisionnement https://www.redhat.com/fr/topics/automation/what-is-provisioning
  • #49 Quel langage de programmation? - Ansible et SaltStack sont tous deux construits sur Python tandis que Puppet et Chef sont construits sur Ruby. Semblable à Python, Ruby est un langage de programmation source ouverte qui est multiplateforme. Cependant, Ruby est généralement considéré comme un langage plus difficile à apprendre que Python. Avec ou sans agent? - La gestion de la configuration est basée sur un agent ou sans agent. La gestion de la configuration basée sur l'agent est «basée sur l'extraction», ce qui signifie que l'agent sur le périphérique géré se connecte périodiquement au maître pour des informations de configuration. Les modifications sont effectuées sur le maître puis exécutées par périphérique géré. La gestion de la configuration sans agent est basée sur la distribution de données du serveur "push-based". Un script de configuration est exécuté sur le maître. Le maître se connecte au périphérique et exécute les tâches du script. Sur les quatre outils de configuration du tableau, Ansible est le seul sans agent. Comment les périphériques sont-ils gérés? - les périphériques sont gérés par une entité appelé Master in Puppet, Chef et SaltStack. Cependant, comme Ansible est sans agent, n'importe quel ordinateur peut être le contrôleur. Qu'est-ce qui est créé par l'outil? - Les administrateurs des réseaux utilisent des outils de gestion de configuration pour créer un ensemble d'instructions à exécuter. Chaque outil a son propre nom pour ces instructions: Playbook, Cookbook, Manifest et Pillar.
  • #52 Apprendre les bases d'Ansible https://www.redhat.com/fr/topics/automation/learning-ansible-tutorial
  • #59 Ansible Playbook are composed of plays Each play are composed of tasks : tasks  each task has a name/ modules (action) / each module has parameters and the parameters take variables
  • #63 7 – Infrastructure et automatisation 7.4 – Outils d'automatisation 7.4.11 — Chef
  • #66 L'IaC (Infrastructure-as-Code), qu'est-ce que c'est ?  https://www.redhat.com/fr/topics/automation/what-is-infrastructure-as-code-iac Guide d'utilisation de l'IaC  https://opensource.com/article/19/7/infrastructure-code
  • #67 L'automatisation du provisionnement d'une infrastructure = Iac
  • #68 https://www.redhat.com/fr/topics/devops/what-is-gitops
  • #69 A - 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 (étapes 1 & 2). B - Si des problèmes sont rencontrés, retournez le trafic vers l'environnement d'origine (bleu) (étape 3) C - 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 version (étape 4)
  • #71 Source : 7 – Infrastructure et automatisation 7.6 - Automatisation des tests tests et validation de l'automatisation. suite de produits créés par Cisco et sa communauté d'utilisateurs afin d'étendre l'automatisation des tests à la configuration réseau pilotée par logiciel, et de réduire ou d'éliminer l'incertitude quant à la façon dont les architectures réseau potentielles et effectuer une fois entièrement implémenté. la solution de test PYATS. Points clés : PYATS, tests automatisés
  • #72 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.1 — Test et validation automatisés
  • #73 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.1 — Test et validation automatisés
  • #74 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.1 — Test et validation automatisés
  • #75 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.2 — Exemple de PyATS
  • #76 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.2 — Exemple de PyATS
  • #77 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.2 — Exemple de PyATS
  • #78 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.2 — Exemple de PyATS
  • #79 7 – Infrastructure et automatisation 7.6 - Automatisation des tests 7.6.3 – Travaux pratiques - Tests automatisés utilisant pyATS et Genie
  • #80 Source : 7 – Infrastructure et automatisation 7.7 – Simulation de réseau
  • #81 7 – Infrastructure et automatisation 7.7 – Simulation de réseau 7.7.1 — Simulation de réseau et VIRL
  • #82 7 – Infrastructure et automatisation 7.7 – Simulation de réseau 7.7.1 — Simulation de réseau et VIRL
  • #83 7 – Infrastructure et automatisation 7.7 – Simulation de réseau 7.7.1 — Simulation de réseau et VIRL
  • #84 Source : 7 – Infrastructure et automatisation 7.8 – Résumé sur l'infrastructure et l'automatisation
  • #85 7 – Infrastructure et automatisation 7.8 – Résumé sur l'infrastructure et l'automatisation 7.8.1 – Qu'est-ce que j'ai appris dans ce module?
  • #86 7 – Infrastructure et automatisation 7.8 – Résumé sur l'infrastructure et l'automatisation 7.8.1 – Qu'est-ce que j'ai appris dans ce module? 7.8.2 - Module 7 : Introduction à l'automatisation, au développement et au déploiement d'applications avec le Quiz Cisco
  • #87 7 – Infrastructure and Automation New Terms AND commands