Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps - Pas que pour gérer des serveurs !

DevOps - Pas que pour gérer des serveurs !

Les outils de DevOps peuvent être très utiles pour gérer autre chose que des serveurs.
Découvrez comment gérer l'automatisation d'installation de postes sous Linux pour préparer un environnement adéquat pour des formations ou pour le développement.
Une fois les postes installés, exploitez au maximum des machines virtuelles pour créer des environnements jetables (très utiles pour des formations), mais aussi des environnements prêts à l'emploi avec tous les logiciels nécessaires et correctement configurés.
Au cours de cette présentation, vous découvrirez comment une utilisation créative de Chef, VirtualBox et Vagrant permet de préparer une environnement adéquat en quelques minutes.

Jerome Bernard

April 20, 2012
Tweet

Other Decks in Technology

Transcript

  1. Speaker • Directeur Technique StepInfo • 12+ années d’expériences principalement

    Java, mais aussi Groovy, Ruby, JS, C, etc. • @jeromebernard • http://jerome-bernard.com 2
  2. Le fil conducteur... • Organiser dans nos locaux des formations

    internes • Tout en minimisant les impacts sur l’activité en structure • Des formations d’environ 8 à 10 heures • 2 à 4 heures de “théorie” sous forme de vidéo • 4 à 6 heures de pratique 3
  3. Les problématiques • Mettre en place une infrastructure pour des

    formations en moins de 2 semaines en partant de zéro ! • Commande & réception de 11 postes développeurs (i5 quad-core avec 8 Go de RAM) + recyclage 3 postes existants • Gagner du temps et faciliter la maintenance/évolutivité du parc informatique 5
  4. Solutions envisagées puis rejetées • Des solutions de type Ghost

    (master redéployé avant chaque TP) • Une réinstallation complète (automatisée via le réseau local) des machines • Une destruction/recréation de comptes Linux pour faire le ménage / remise au propre entre 2 formations 6
  5. 9 • Permet d’automatiser des installations (via des “recipes”/”cookbooks”) •

    Mais aussi de garantir dans le temps la bonne configuration des machines • Une grande communauté et plein de “recipes” prêtes à l’emploi • Console d’administration permettant de suivre l’état du parc • Fonctionne en mode client/serveur ou sans serveur
  6. Chef - postes physiques • Un serveur Chef • On

    automatise finalement assez peu de choses, principalement l’installation de VirtualBox et le dépôt des fichiers Vagrant • On optimise pour réduire la consommation de bande passante • Demain : on s’appuiera sur des outils de monitoring 11
  7. VeeWee • Initialement uniquement une extension de Vagrant • Permet

    de construire facilement des “master”/”basebox” Vagrant... • ... mais aussi VMWare Fusion et KVM depuis peu • Propose plein de “templates” de “master” prêts à être construits • Pourquoi créer notre “master” ? 12
  8. VeeWee • Fonctionne en lançant une instance VirtualBox et en

    simulant les interactions clavier... • ... puis exporte la VM créée sous forme de “basebox” Vagrant • Il ne reste plus ensuite qu’à déployer sur le réseau ce “master”... • ... pour créer des VM s’appuyant dessus avec Vagrant 13
  9. 14 Plein de “templates” déjà disponibles (80+) : • Linux

    (CentOS, Debian, Fedora, Gentoo, ArchLinux, openSuse, Ubuntu, ...) • BSD (FreeBSD, OpenBSD) • Solaris, .... VeeWee
  10. VeeWee • Création d’un nouveau template “maison” s’inspirant du template

    “ubuntu-11.10-server-amd64-ruby192” • Adaptations pour installation en FR, et version Desktop à la place de la version Server • Aucun logiciel particulier installé hormis Chef 16
  11. VeeWee • Editer ensuite les fichiers présents dans “definitions/stepinfo-formations” •

    definition.rb : on référence l’ISO Desktop Alternate et on change le MD5 • preseed.cfg : on met tout en locale française • postinstall.sh : on ne veut pas Puppet, on l’enlève 17
  12. VeeWee • On part manger, cela prendra un peu de

    temps, surtout sur un portable • Mais on peut aussi regarder le début pour le “fun”, c’est assez impressionnant de voir tous ces automatismes en action :-) 18
  13. Vagrant • Permet d’automatiser la création de VM VirtualBox, en

    ligne de commande • Permet de définir la configuration d’une VM dans un simple fichier texte, généralement une configuration par projet • Permet de facilement partager des VM • Intégration simple avec Chef & Puppet 19
  14. 20

  15. 21

  16. Vagrant • On peut aussi faire plein d’autres choses... •

    Gestion du réseau : NAT, Bridge, etc. • Gestion de tunnels entre la VM et le poste physique • Gestion des dossiers de partage • Gestion de plusieurs VMs et de la config réseau entre elles 22
  17. 23

  18. 24

  19. 25

  20. 26

  21. Chef - postes virtualisés • Pas de serveur Chef (chef-solo)

    • Vagrant & Chef installent uniquement les softs nécessaires à une formation en particulier • On optimise pour réduire la consommation de bande passante • Un peu différent pour des VM Windows 27
  22. Retours d’Expérience - Chef • Chef : la résolution de

    nom (DNS) est très importante ! • Oracle exige depuis quelques jours des cookies/du JS pour télécharger le JDK => big FAIL recipe Chef pour installer le JDK ! • Packager le SDK Android n’est pas simple ! 29
  23. Retours d’Expérience - Vagrant • Pratique de tester sur son

    portable dans une VM avant de déployer sur tout le parc informatique • On peut faire “vivre” facilement une VM gérée par Vagrant pour la mettre à jour, simplement en faisant un “vagrant provision/reload” pour installer les nouveaux logiciels • Vagrant & VeeWee ont pas mal évolués avec compatibilité ascendante non garantie. La compatibilité ascendante est maintenant annoncée ! 30
  24. Retours d’Expérience - VeeWee • Repo APT de VirtualBox pose

    problème lors des MAJ -> pénible de gérer chaque changement de version, c’est à dire très/trop souvent • Vagrant & VeeWee ont pas mal évolués avec compatibilité ascendante non garantie. La compatibilité ascendante est maintenant annoncée ! 31
  25. Ce qu’on a gagné en plus • Une solution pour

    “provisioner” nos postes de développement • On en profite pour migrer nos applications internes avec environnements de recette sous Vagrant • Et bien évidemment, on utilise Chef pour nos serveurs :-) 32
  26. Des pistes d’améliorations • Intégration avec Jenkins • CVMI :

    Continuous VM Integration :) • Windows :-( 33