Resources attached to the Road To DevOps tutorial https://blog.noobtoroot.xyz/road-to-devops/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

4.5 KiB

Ansible

Logo Ansible

Antoire Bouhier • Christian Tritten • Alban Berthout

DevOps

Infrastructure as Code

DevOps

  • Mouvement qui consiste à promouvoir le dialogue et la collaboration entre les équipes Dev et Ops.

  • Ensemble de bonnes pratiques et de principes
    établis entre :

    • les équipes DEV (de développement)

    • les équipes OPS (d’exploitations)

  • L'objectif de DevOps est de fluidifier le processus de déploiement d'une application.

Les principaux axes du DevOps

  1. Améliorer la communication
    Organisation • Collaboration • Partage d'outils communs • Conférences • Réunions

  2. Accepter et banaliser les erreurs
    Droit à l'erreur • Responsabilité partagée

  3. Mettre en prod le plus souvent possible
    Robustesse • Confiance

  4. Automatiser tout ce qui peut l'être
    Tests • Cloud • Déploiements • Configuration • Chaos monkey

  5. Récolter des métriques et indicateurs
    dans une optique d'amélioration continue

Le champ d'application du DevOps

devops

Automatisation

Traiter de manière automatique les opérations

  • de contrôle,

  • de régulation,

  • d’administration,

avec peu ou pas d’intervention humaine.

Intérêt de l'automatisation

  • Réduire la complexité

  • Réduire les possibilités d’erreurs humaine

  • Améliorer les performance d’un système

  • Augmenter la productivité et l’innovation

  • Améliorer la robustesse, l’agilité du déploiement

  • Réduire le TTM d’une application

Infrastructure As Code

  • L'infrastructure cible peut-être décrite dans des fichiers de description à l'aide d'une syntaxe spécifique.

  • Il devient alors possible de gérer et de versionner chaque modification apportée à l'infrastructure.

  • Construire, reconstruire, modifier ou dupliquer une infrastructure s'en trouve d'autant simplifié.

  • Outils : Terraform, Ansible, Puppet, Docker, Kubernetes...

Les outils de gestion de configuration

  • Permettent de contrôler l'ensemble des modifications apportées sur l’infrastructure d’une entreprise.

  • Assurent que cette infrastructure est configurée selon les bonnes spécifications.

  • Évitent l'apparition de trop grandes variations de configuration entre les serveurs.

Quelques outils

  • CFEngine (1993)

  • Puppet (2005)

  • Chef (2009)

  • Ansible (2012)

Ansible

  • Logiciel libre (GPL-3.0)

  • Initié en 2012

    • Version 1.0 = 2013

    • Version actuelle = 2.10 (2020), 2.9 pour Red Hat subscribers

  • Développé en Python
    https://github.com/ansible/ansible

  • Forte communauté d'utilisateurs

  • Ansible racheté par Red Hat en octobre 2015

  • Red Hat racheté par IBM en octobre 2018

  • Ansible est un moteur d'automatisation permettant :

    • le provisionnement de logiciel,

    • la gestion de la configuration.

  • Pas d'agent

    • utilise SSH sur Linux/Unix

    • utilise WinRM sur Windows

  • Mode Push
    Peut aussi fonctionner en Pull (sur cibles Linux uniquement)

Cibles Linux

  • La plupart des systèmes Linux sont supportés.

  • Connexion par SSH.

  • Pré-requis sur les machines cibles :

    • SSH server

    • Python 2.7 ou 3.5

Cibles Windows

  • Desktop :
    Windows 7, 8.1, 10

  • Server :
    Windows Server 2008, 2008 R2, 2012, 2012 R2, 2016, 2019

  • Connexion par WinRM.

  • Pré-requis sur les machines cibles :

    • PowerShell 3.0 ou +
    • .NET 4.0 ou +
    • Un WinRM listener doit être créé et activé.

Documentation pour Windows

https://docs.ansible.com/ansible/latest/user_guide/windows.html

Liste des modules pour Windows

https://docs.ansible.com/ansible/2.9/modules/list_of_windows_modules.html https://docs.ansible.com/ansible/latest/collections/ansible/windows/index.html

Pourquoi utiliser Ansible ?

  • Maîtrise des actions exécutées sur les machines cibles.

  • Moins d'erreurs qu'avec des actions manuelles.

  • Simple à mettre en oeuvre.

  • Courbe d'apprentissage rapide.

  • Syntaxe déclarative (pas de scripting).

  • Libère les Ops des tâches répétitives.

Sans outil de gestion de Configuration

Schéma connexion sans Ansible

Avec Ansible

Schéma connexion avec Ansible