navigation

frontimage

Infrastructure as Code

Description

Infrastructure as Code Ansible Terraform Packer, © François-Emmanuel Goffinet, 2019

Support de formation de formation sur l’Infrastructure as Code (IaC), ses concepts et ses outils : Ansible, Terraform, Packer.

Sujets

  • Ansible Fonfamental
  • Ansible & Linux
  • Ansible & Networks
  • Ansible & API
  • Ansible & AWS
  • Ansible & Containers
  • Ansible & Windows

Livres de jeu utilisés dans le document

Livres de jeu du guide Ansible

Infrastructure as Code Ansible Terraform Packer, © François-Emmanuel Goffinet, 2019

Copyright © Red Hat, Inc | Ansible.

Ansible is released under the terms of the GPLv3 License.

License MIT github.com/network-automation/linklight

Copyright © Cisco Systems

Sommaire du document

  • Infrastructure as Code
  • Partie I : Infrastructure as Code 1. Principes Iac 1.1. Définition de l’Infrastructure en tant que Code (IaC) “L’Infrastructure en tant que Code (IaC) est un type d’infrastructure informatique que les équipes d’exploitation peuvent automatiquement gérer et approvisionner via du code, plutôt que d’utiliser un processus manuel ou interactif. L’infrastructure en tant que code est parfois appelée infrastructure programmable.”1 IaC est donc une approche de conception des infrastructures et des services qu’elles suportent.

    • Ansible Fondamental
    • Partie II.1. Ansible Fondamental Partie Ansible Fondamental. Projet Ansible Ansible est une plate-forme logicielle pour la configuration et la gestion des ordinateurs. Le logiciel combine le déploiement de logiciels multi-noeuds, l'exécution des tâches ad-hoc, et la gestion des configurations. Il gère les différents noeuds avec un accès à distance natif (tels que les protocoles SSH ou Remote PowerShell ou encore des APIs natives) et ne nécessite l'installation d'aucun logiciel supplémentaire à distance, avec parallélisation, collecte de métadonnées et gestion des états.

      • Projet Ansible
      • Ansible est une plate-forme logicielle pour la configuration et la gestion des ordinateurs. Le logiciel combine le déploiement de logiciels multi-noeuds, l'exécution des tâches ad-hoc, et la gestion des configurations. Il gère les différents noeuds avec un accès à distance natif (tels que les protocoles SSH ou Remote PowerShell ou encore des APIs natives) et ne nécessite l'installation d'aucun logiciel supplémentaire à distance, avec parallélisation, collecte de métadonnées et gestion des états. Cet aspect de conception sans agent installé sur le périphérique est important car il réduit les besoins d'infrastructure pour démarrer une gestion. Les modules fonctionnent grâce à JSON et à la sortie standard et peuvent être écrits dans n'importe quel langage de programmation. Le système utilise notamment YAML pour exprimer des descriptions réutilisables de systèmes, il fournit des sorties en JSON, il traite les variables grâce à des modèles Jinja2.

        • Solution Ansible
        • Ce document décrit la terminologie et les composants Ansible : Machine de contrôle, Noeuds gérés, Clés SSH, L’inventaire, Modules, Plugins, Exécution des tâches, Le mode Ad Hoc, Playbooks (Livres de jeu), États des tâches, Idempotence, Les rôles, Ansible Tower.

          • Installation Ansible
          • Ce document indique les procédures d'installation de Ansible sur une machine de contrôle Red Hat, CentOS, Fedora, Debian, Ubuntu, via PIP ou encore sous Windows WSL.

            • Configuration Ansible
            • Le comportement d'Ansible peut être influencé de différentes manières : en configurant des variables d'environnement, en passant directement les paramètres sur la ligne de commande `ansible` ou `ansible-playbook`, en définissant un fichier de configuration `ansible.cfg`

              • Binaires Ansible
              • Ansible vient avec plusieurs binaires. ansible Binaire initial pour l’exécution de commandes ad-hoc, ansible-config Vérifie la configuration courante d’Ansible, ansible-inventory Liste les informations de l’inventaire en format JSON ou YAML, ansible-doc Permet de consulter la documentation hors-ligne, ansible-playbook Permet d’exécuter des livres de jeu, ansible-vault Permet de chiffrer les fichiers qui contiennent des données sensibles, ansible-galaxy Permet de gérer des rôles sur Ansible galaxy, ansible-console Offre une console interactive REPL pour l’exécution de tâches Ad-Hoc, ansible-pull ansible-pull est un petit script qui prend ses informations de configuration d’un repo git et qui exécute un livre de jeu Ansible sur ce contenu, ansible-test Utilitaire de test

                • Modules Ansible
                • Les modules Ansible sont des bouts de codes écrits principalement en Python (mais tout langage supportant les retours JSON est autorisé) pour modifier l'état d'une propriété d'un hôte. Les modules sont invoqués par l'exécution de tâches soit directement dans la ligne de commande `ansible` ou dans des livres de jeu avec la commande `ansible-playbook`.

                  • Format JSON Ansible
                  • Ansible présente en sortie standard les résultats de ses actions en format JSON. On présentera ici le format JSON et son traitement avec l'outil jq.

                    • Format YAML pour Ansible
                    • Pour Ansible, presque tous les fichiers YAML commencent par une liste. Chaque élément de la liste est une liste de paires clé / valeur, communément appelée hash ou dictionary. Il est donc nécessaire de savoir écrire des listes et des dictionnaires en YAML.

                      • Inventaire Ansible
                      • Une inventaire peut être une collection d'hôtes définis dans un fichier plat ou un script dynamique (qui interroge un CMDB par exemple) qui génère une liste de périphériques à utiliser dans les livres de jeux. Il est peut être statique, soit défini d'avance ; il peut se créer dynamiquement ou encore être mis à jour dynamiquement. La portée d'un jeu (play) au sein du livre de jeu, le playbook, est limitée aux groupes d'hôtes définis dans l'inventaire (inventory).

                        • Livres de Jeu Ansible
                        • 1. Introduction Un livre de jeux (playbook) est un fichier YAML constitué d’une liste de jeux. Chaque jeu comporte des sections qui définissent de manière obligatoire sa portée en désignant les hôtes ou les groupes d’inventaire (hosts:), et de manière optionnelle des paramètres de connexion, des paramètres d’élévation de privilèges, des variables et différentes actions qui comportent des listes de tâches (tasks:, roles:, handlers:, etc.). Un premier exemple de livre de jeu pourrait être celui-ci :

                          • Jouer avec les facts et les variables
                          • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/12-jouer-facts Objectifs Jouer avec les Ansible Conditionals Créer, récupérer et stocker des données Variables et facts boucles 1. Valeurs de retour Valeurs de retour 2. Définir des variables vars et vars_files register, setfact 3. Créer un fichier de données Le fichier data.yml par exemple. --- group: "omega" users: - name: alfa password: testtest - name: beta password: testtest 4. Utiliser les données - name: print out data.

                            • Tâches en Blocks Ansible
                            • Les blocs permettent le regroupement logique des tâches et la gestion des erreurs dans le jeu.

                              • Actions Locales et Délegation
                              • Actions Locales et Délegation

                                • Tags Ansible
                                • Si vous avez un grand livre de jeu, il peut s'avérer utile de ne pouvoir en exécuter qu'une partie spécifique plutôt que de tout lire dans le livre. Ansible prend en charge un attribut tags: pour cette raison.

                                  • Gestion des Erreurs Ansible
                                  • Gestion des Erreurs Ansible : Ignorer les tâches en échec, Contrôler l'état changed, Contrôler l'état failed, Tâche en échec et handlers, Module fail

                                    • Gestion Connexions Ansible
                                    • Gestion des connexions dans Ansible.

                                      • Elevation de Privileges Ansible
                                      • Contrôle de l'élévatation de privilège dans le livre de jeu et dans l'inventaire

                                        • Ansible Vault
                                        • Ansible-vault est un outil intégré à Ansible qui permet de chiffrer les fichiers qui contiennent des données sensibles.

                                          • Import Include Ansible
                                          • Il est possible d' inclure ou d'importer dans un livre de jeu des fichiers qui comprennent une liste de jeux ou de tâches. L'importation est statique et l'inclusion est dynamique.

                                            • Roles Ansible-Galaxy
                                            • Ansible Galaxy fait référence au site Web de Galaxy https://galaxy.ansible.com à partir duquel les utilisateurs peuvent partager des rôles. Il fait aussi référence à un outil en ligne de commande pour l’installation, la création et la gestion de rôles à partir de dépôts git. Les rôles permettent de charger automatiquement certains fichiers vars_files, tasks et handlers en fonction d'une structure de fichier connue. Le regroupement de contenu par rôles permet également de les partager facilement avec d'autres utilisateurs. En bref, une organisation en rôle n'est jamais qu'une manière d'abstraire son livre de jeu. Toutes les règles de conception d'un livre de jeu sont respectées sur base d'une structure de fichiers et de dossiers connue.

                                              • Ansible Tower Awx Ansible
                                              • Ansible Tower est Ansible au niveau de l'entreprise. Il s’agit d’une solution Web permettant de gérer une organisation avec une interface utilisateur très simple qui fournit un tableau de bord avec des résumés de l’état de tous les hôtes, qui permet des déploiements rapides et surveille toutes les configurations. Tower permet de partager les informations d'identification SSH sans les exposer, de consigner tous les travaux, de gérer graphiquement les inventaires et de les synchroniser avec un large éventail de fournisseurs clouds.

                                                • Glossaire Ansible
                                                • https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html Action Une action fait partie d’une tâche qui précise les modules à exécuter et les arguments à transmettre à ce module. Chaque tâche ne peut avoir qu’une seule action, mais elle peut aussi avoir d’autres paramètres. Ad Hoc Désigne l’exécution d’Ansible pour exécuter une commande rapide, en utilisant /usr/bin/ansible, plutôt que le langage d’orchestration, qui est /usr/bin/ansible-playbook. Un exemple de commande ad hoc pourrait être le redémarrage de 50 machines dans votre infrastructure.

                                                • Automation Ansible Linux
                                                • Partie II.2. Automation Ansible Linux Partie Automation Ansible Linux. Environnement de lab Linux Ansible 1. Installation du stack Libvirtd Afin de mieux profiter des capacités de virtualisation d’un hôte Linux, il est recommandé d’installer le stack “libvirtd”. Installation des pré-requis : echo "Go to the home folder" cd echo "Install Git" apt-get -y install git echo "Clone the virt-script repo on Github" git clone https://github.com/goffinet/virt-scripts echo "Go to the virt-scripts folder" cd virt-scripts echo "Install the requirements" .

                                                  • Environnement de lab Linux Ansible
                                                  • 1. Installation du stack Libvirtd Afin de mieux profiter des capacités de virtualisation d’un hôte Linux, il est recommandé d’installer le stack “libvirtd”. Installation des pré-requis : echo "Go to the home folder" cd echo "Install Git" apt-get -y install git echo "Clone the virt-script repo on Github" git clone https://github.com/goffinet/virt-scripts echo "Go to the virt-scripts folder" cd virt-scripts echo "Install the requirements" ./autoprep.sh systemctl stop apache2 Test en lançant trois invités :

                                                    • Mode Ad-Hoc
                                                    • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/08-mode-adhoc Liste des modules utilisés ping setup apt service yum easy_install iptables mysql_user user group stat copy fetch file git 1. Pré-requis Le mode ad-hoc permet d’exécuter des tâches ad-hoc. Rappelons qu’une tâche n’est rien d’autre que l’appel à un module. Un fichier de configuration et un inventaire sont nécessaires. [webservers] app1 app2 [dbservers] db [all:vars] ansible_connection=ssh ansible_user=root ansible_ssh_pass=testtest 2. Se documenter Se documenter sur la commande ansible La commande ansible offre la possibilité d’exécuter des modules ansible de manière “ad-hoc”, c’est à dire tâche par tâche, commande par commande.

                                                      • Un premier playbook
                                                      • 1. Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/09-un-premier-playbook 2. Variables Il est de bonne pratique d’organiser ses procédures avec des variables. Les variables Ansible peuvent être déclarées à différents endroits. Dans l’inventaire ou dans les group_vars/’ ou ‘host_vars/. Mais aussi dans le livre de jeu, sous forme de : valorisation directe en référence à un fichier en incluant des variables d’environnement par “inclusion” sont générés ou récoltées dynamiquement (facter) viennent de l’inventaire sont définies par défaut dans un rôle Les variables sont applées en format Jinja2 sous la forme : {{ interface }} ou encore {{ ipv4.

                                                        • Déployer un serveur Node.JS sur Centos
                                                        • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/10-deployer-un-serveur-nodejs-centos Objectifs Un second livre de jeux. Enregistrement de variables (register:) et appel de la variable dans une autre tâche sous condition (when:) 1. Présentation Dans cet exemple, on déploie une application Node.JS avec NPM sur Centos. Il s’agit d’un exemple de déploiement simple d’un stack de développement. 2. Variables On définit une variable node_apps_location dans le jeu. On peut définir la variable dans la ligne de commande --extra-vars="node_apps_location=/usr/local/opt/node"

                                                          • Drupal sur plateforme LAMP sur Ubuntu
                                                          • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/11-lamp-drupal-ubuntu 1. Défintion du jeu --- - hosts: all become: yes vars_files: - vars.yml pre_tasks: - name: Update apt cache if needed. apt: update_cache=yes cache_valid_time=3600 handlers: - name: restart apache service: name=apache2 state=restarted 2. Variables Le livre de jeu est accompagné d’un fichier vars.yml qui contient des variables : --- # The core version you want to use (e.g. 8.5.x, 8.6.x). drupal_core_version: "8.6.x" # The path where Drupal will be downloaded and installed.

                                                            • Inclusions, imports et rôles
                                                            • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/14-includes-ansible https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/14-roles-ansible Objectifs Transformer les deux scripts d’application Web avec des includes sur debian/ubuntu (Drupal) et en rôle sur Centos (Node.js). 1. Inclusions, imports et rôles Including and Importing Roles Ansible Galaxy 2. Inclusions Il est possible d’ “inclure” dans un livre de jeu des fichiers qui comprennent une liste de jeux ou de tâches avec un module include*.

                                                              • Infrastructure LAMP
                                                              • Source Source : https://github.com/goffinet/guide-ansible-playbooks/tree/master/ansible-linux/15-infrastructure-lamp 1. Architecture The architecture for the example web application will be: -------------------------- | varnish.test (Varnish) | | 192.168.2.2 | -------------------------- / \ ---------------------- ---------------------- | www1.test (Apache) | | www2.test (Apache) | | 192.168.2.3 | | 192.168.2.4 | ---------------------- ---------------------- \ / ------------------------------ | memcached.test (Memcached) | | 192.168.2.7 | ------------------------------ / \ ----------------------------- ---------------------------- | db1.test (MySQL - Master) | | db2.test (MySQL - Slave) | | 192.

                                                                • Solutions
                                                                • 1. Git en mode Ad-hoc ansible localhost -m git -a "repo=https://github.com/goffinet/guide-ansible-playbooks dest=/home/userlab/guide-ansible-playbooks" 2. Certificats TLS auto-signés Solution 1 : Module command Voici une solution fonctionnelle avec le module command mais elle est “brut de décoffrage”. - name: Install nginx and python-openssl apt: name: - nginx - python-openssl update_cache: yes cache_valid_time: 3600 - name: Create self-signed certificate, if configured. command: > openssl req -x509 -nodes -subj '/CN=localhost' -days 365 -newkey rsa:4096 -sha256 -keyout {{ key_file }} -out {{ cert_file }} creates={{ cert_file }} notify: restart nginx - name: "fix right on key file" file: name: "{{ key_file }}" mode: 0600 notify: restart nginx Solution 2 : Modules openssl_* Voici une solution avec des variables et des tâches idempotentes grâce aux modules Ansibles openssl_* :

                                                                • Ansible Réseau
                                                                • Partie II.3. Ansible Réseau Partie Ansible Réseau. Prérequis Lab Ansible automation réseau 1. Installation de GNS3 Server sur un serveur (distant) Installation de GNS3 Server sur un serveur (distant). cd /tmp curl https://raw.githubusercontent.com/GNS3/gns3-server/master/scripts/remote-install.sh \ > gns3-remote-install.sh bash gns3-remote-install.sh --with-openvpn Il sera nécessaire de redémarrer matériellement le serveur. On charge une topologie mise à disposition et on attaque la gestion directement à partir de l’hôte de virtualisation ou à partir d’un hôte dans la topologie.

                                                                  • Prérequis Lab Ansible automation réseau
                                                                  • 1. Installation de GNS3 Server sur un serveur (distant) Installation de GNS3 Server sur un serveur (distant). cd /tmp curl https://raw.githubusercontent.com/GNS3/gns3-server/master/scripts/remote-install.sh \ > gns3-remote-install.sh bash gns3-remote-install.sh --with-openvpn Il sera nécessaire de redémarrer matériellement le serveur. On charge une topologie mise à disposition et on attaque la gestion directement à partir de l’hôte de virtualisation ou à partir d’un hôte dans la topologie. 2. Préparation des périphériques Les noeuds gérés, s’ils sont Unix, doivent disposer de Python 2.

                                                                    • Explorer l'environnement de lab
                                                                    • Étape 1 : Dossier de travail Créer si n’est déjà fait le dossier networking-workshop et s’y rendre. mkdir networking-workshop cd networking-workshop/ Étape 2 : Vérification de la configuration Lancer la commande ansible avec l’option --version pour examiner sa configuration. ansible --versionansible 2.6.2 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.

                                                                      • Écrire un premier playbook
                                                                      • 1. Rappel théoriques Maintenant que vous en savez assez sur le fichier d’inventaire et les variables de groupe et d’hôte, nous allons écrire notre premier livre de jeu. Playbook definition for network automation La cible d’un jeu est défini par la directive hosts Définir le type de connexion : connection : network_cli À propos de gather_facts Exécuter un livre de jeu --- - name: GATHER INFORMATION FROM ROUTERS hosts: cisco connection: network_cli gather_facts: no tasks: - name: GATHER ROUTER FACTS ios_facts:ansible-playbook gather_ios_data.

                                                                        • Module documentation, Registering output & tags
                                                                        • 1. Théorie Modules Modules do the actual work in ansible, they are what gets executed in each playbook task. Typically written in Python (but not limited to it) Modules are idempotent Modules take user input in the form of parameters Network modules Ansible modules for network automation typically references the vendor OS followed by the module name. *_facts *_command *_config more modules depending on platform

                                                                          • Mise à jour de configuration
                                                                          • 1. Théorie The *_config module Vendor specific config modules allow the user to update the configuration on network devices. Different ways to invoke the *_config module: tasks: - name: ENSURE THAT THE DESIRED SNMP STRINGS ARE PRESENT ios_config: commands: - snmp-server community ansible-public RO - snmp-server community ansible-private RW - snmp-server community ansible-test ROtasks: - name: ENSURE THAT ROUTERS ARE SECURE ios_config: src: secure_router.cfg Validating changes before they are applied Ansbile lets you validate the impact of the proposed configuration using the –check flag.

                                                                            • Backing and Restoring router configuration
                                                                            • 1. Théorie Backing up router configuration --- - name: BACKUP ROUTER CONFIGURATIONS hosts: cisco connection: network_cli gather_facts: no tasks: - name: BACKUP THE CONFIG ios_config: backup: yes register: config_output The backup parameter of the ios_config module triggers the backup and automatically stores device configuration backups within a backups directory Cleaning up the backed up configuration The backed up configuration has 2 lines that should be removed: Building configuration... Current configuration with default configurations exposed : 393416 bytes The lineinfile module is a general purpose module that is used for manipulating file contents.

                                                                              • Introduction modèle Jinja2
                                                                              • 1. Théorie Templates Ansible has native integration with the Jinja2 templating engine Render data models into device configurations Render device output into dynamic documentation Jinja2 enables the user to manipulate variables, apply conditional logic and extend programmability for network automation. Using templates to generate configuration Data model: vlans: - id: 10 name: WEB - id: 20 name: APP - id: 30 name: DB Jinja2 template vlan {{ vlan.

                                                                                • Documentation dynamique
                                                                                • 1. Données structurées et rôles Structured data from show commands rtr2#show interfaces GigabitEthernet1 is up, line protocol is up Hardware is CSR vNIC, address is 0e56.1bf5.5ee2 (bia 0e56.1bf5.5ee2) Internet address is 172.17.16.140/16 MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full Duplex, 1000Mbps, link type is auto, media type is Virtual output flow-control is unsupported, input flow-control is unsupported ARP type: ARPA, ARP Timeout 04:00:00 .

                                                                                  • Ansible Cisco CCNA
                                                                                  • https://github.com/goffinet/ansible-ccna-lab/blob/master/README.md 1. Mise en place minimale Note pour les utilisateur de la topologie GNS3 fournie en classe, sur tous les périphériques, il sera peut-être nécessaire de re-générer les clés RSA des périphériques Cisco : enable configure terminal crypto key generate rsa modulus 2048 exit wr 1.1. Images GNS3 image IOSv (kvm) image IOSv-L2 (kvm) image Centos (kvm) 1.2. Routeurs On utilise des IOSv pour les routeurs L3 avec 8 interfaces GigabitEthernet.

                                                                                  • Ansible Avancé
                                                                                  • Partie II.4. Ansible Avancé Partie Ansible Avancé. Ansible et Docker 1. Démarrer une automation Ansible de Docker Voir Getting Started with Docker. 2. Ansible pour gérer des conteneurs Docker ansible-container, ansible-container on Github “ansible-container” fournit un workflow basé sur Ansible pour la création, l’exécution, le test et le déploiement de conteneurs. Ansible Container vous permet de créer des images de conteneur et de les orchestrer en utilisant uniquement les livres de jeu Ansible.

                                                                                    • Ansible et Docker
                                                                                    • 1. Démarrer une automation Ansible de Docker Voir Getting Started with Docker. 2. Ansible pour gérer des conteneurs Docker ansible-container, ansible-container on Github “ansible-container” fournit un workflow basé sur Ansible pour la création, l’exécution, le test et le déploiement de conteneurs. Ansible Container vous permet de créer des images de conteneur et de les orchestrer en utilisant uniquement les livres de jeu Ansible. Décrivez votre application dans un seul fichier YAML et, plutôt que d’utiliser un fichier Dockerfile, répertoriez les rôles Ansible qui constituent vos images de conteneur.

                                                                                      • Testing avec Ansible
                                                                                      • Source : https://gist.github.com/michaellihs/dce661376674692f0e8a5694ece2ffb6 Testing avec Ansible https://www.ansible.com/blog/testing-ansible-roles-with-docker http://docs.ansible.com/ansible/latest/test_strategies.html https://www.ansible.com/blog/five-questions-testing-ansible-playbooks-roles https://github.com/chrismeyersfsu/provision_docker Testing Ansible Roles & Projects https://www.youtube.com/watch?v=5nddt6X2Alg&feature=youtu.be

                                                                                        • Jouer des APIs REST HTTP
                                                                                        • Voir guide-ansible-playbooks/ansible-api-gns3 Module uri Module wait_for_connection Module wait_for

                                                                                        • Terraform
                                                                                        • Partie III Automation Terraform Lorem Ipsum.

                                                                                          • Packer
                                                                                          • Partie IV Construction d’images avec Packer Lorem Ipsum.

                                                                                            • Annexes
                                                                                            • Partie V. Annexes Annexes. Bibliographie Ansible Bibliographie Ansible Documentation Ansible Jason Edelman, Network Automation with Ansible, O’Reilly Media, Inc, 2016. Lorin Hochstein, Rene Moser, Ansible: Up and Running, 2nd Edition, O’Reilly Media, Inc, 2018., Github Repo Ansible Automation Workshops Jeff Geerling, Ansible for DevOps, Server and configuration management for humans, LeanPub, 2018 Github Repo Liens Ansible Training Course for Ansible Network Automation Ansible role for hardening a Cisco IOS router or switch https://www.

                                                                                              • Bibliographie Ansible
                                                                                              • Bibliographie Ansible Documentation Ansible Jason Edelman, Network Automation with Ansible, O’Reilly Media, Inc, 2016. Lorin Hochstein, Rene Moser, Ansible: Up and Running, 2nd Edition, O’Reilly Media, Inc, 2018., Github Repo Ansible Automation Workshops Jeff Geerling, Ansible for DevOps, Server and configuration management for humans, LeanPub, 2018 Github Repo Liens Ansible Training Course for Ansible Network Automation Ansible role for hardening a Cisco IOS router or switch https://www.

                                                                                                • Notes Ansible
                                                                                                • ansible-interactive-tutorial https://github.com/turkenh/ansible-interactive-tutorial Tâches supplémentaires désactiver les bannières Spécificités automation réseau : https://docs.ansible.com/ansible/2.5/network/getting_started/network_differences.html Types de connexion Ansible https://docs.ansible.com/ansible/latest/network/user_guide/platform_index.html Connexion IOS CLI Exemple IOS CLI group_vars/ios.yml ansible_connection: network_cli ansible_network_os: ios ansible_user: myuser ansible_ssh_pass: !vault... ansible_become: yes ansible_become_method: enable ansible_become_pass: !vault... ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"' Exemple NXOS CLI group_vars/nxos.yml ansible_connection: network_cli ansible_network_os: nxos ansible_user: myuser ansible_ssh_pass: !vault... ansible_become: yes ansible_become_method: enable ansible_become_pass: !vault... ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"' Exemple NX-API group_vars/nxos.

                                                                                                  • Programmes de formation Ansible
                                                                                                  • Formation Ansible Essentials: Simplicity in Automation Technical Overview Découvrez les bases de l’automatisation et de la gestion de la configuration avec Ansible et bien plus encore Les vidéos de la série L’essentiel d’Ansible : automatiser en toute simplicité - Présentation technique (DO007) sont disponibles en ligne et à la demande. Elles vous permettront de tout savoir sur Ansible : automatisation, gestion de la configuration, provisionnement, déploiement et gestion d’une infrastructure de calcul dans des environnements physiques, virtuels et cloud.