Puppet, la philosophie DevOps

1 432 vues

Publié le

Puppet est un outil de gestion de configuration et de déploiement. Découvrez ce fameux mouvement DevOps, et quelles sont les raisons qui font le succès de Puppet.

Publié dans : Internet
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 432
Sur SlideShare
0
Issues des intégrations
0
Intégrations
536
Actions
Partages
0
Téléchargements
16
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Puppet :
    Logiciel libre
    Fait en ruby
    diffusé sous licence Apache 2.0 depuis la version 2.7.0


    Pour les développeurs, Gepetto http://docs.puppetlabs.com/geppetto/latest/index.html
    Un IDE basé sous Eclipse


    How Puppet Works


    http://fr.slideshare.net/PuppetLabs/manageable-puppet-infrastructure?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=qf1&b=&from_search=13

    http://fr.slideshare.net/PuppetLabs/puppet-camp-2015

    http://fr.slideshare.net/PuppetLabs/getting-started-with-puppet-puppetconf-2013?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=default&b=&from_search=30

    http://fr.slideshare.net/PuppetLabs/puppet-introlukelondon?qid=b9e5faa1-f204-459a-8af4-b9321a20ad96&v=default&b=&from_search=25

  • Revenons un peu sur l’historique.
    Il y a encore peu de temps, on pouvait se représenter le monde de l’informatique comme coup éen deux : les développeurs d’un côté, et les administrateurs sytèmes de l’autre.
    Bien souvent, le développeur ne se soucie pas des ressources nécessaires au bon fonctionnement de son programme, ni de l’état de santé de son application lorsqu’elle est en production.


  • Etude CA Technologies 2014

    49 % des entreprises mettent le cap sur le DevOps

    95% des entreprises françaises planifient actuellement la mise en oeuvre du DevOps.

    La France, leader dans le domaine (un des meilleurs)



  • Etude CA Technologies 2014

    49 % des entreprises mettent le cap sur le DevOps

    95% des entreprises françaises planifient actuellement la mise en oeuvre du DevOps.

    La France, leader dans le domaine (un des meilleurs)


  • Enterprise :
    Support de VMware
    Interface graphique de gestion
    Orchestration des déploiements
    Gérer plus finement les droits utilisateurs

    Version 4.0 :
    Dépréciation de bcp de choses
    Packagé avec sa propre de version de Ruby
  • Concentré de code et de donnée
    2 types de modules :
    Les modules génériques (Apache, Jboss, PHP, …)
    Les modules “personnels”
    Orienté objet : classes / héritage
  • PAS REINVENTER LA ROUE
  • Puppet, la philosophie DevOps

    1. 1. Puppet, la philosophie DevOps @Jeoffreybauvin @Versusmind
    2. 2. Jeoffrey Bauvin Consultant IT chez Versusmind Nancy, France @jeoffreybauvin
    3. 3. Introduction : DevOps ?
    4. 4. - Équipes cloisonnées - Mauvaise collaboration - Lourdeur administrative / Retards de livraisons - Besoin d’évolution rapide - Impact sur la qualité des applications DevOps : Pourquoi ?
    5. 5. Introduction : Pourquoi ?
    6. 6. DevOps : Popularité (1/2) Les bénéfices du DevOps
    7. 7. DevOps : Composants
    8. 8. Automatisation IT
    9. 9. Déploiement manuel - Adapté pour un serveur, mais pour 30 ? - Un script Bash ? Est-ce maintenable ? - Et sur d’autres systèmes d’exploitation ?
    10. 10. Déploiement centralisé - Configuration centralisée - Déploiement automatisé de masse - Abstraction du système d’exploitation
    11. 11. Quels produits ? Chef (créé en 1993, développé en Erlang) Puppet (créé en 2005, développé en Ruby) Ansible (créé en 2012, développé en Python) CFEngine (créé en 2013, développé en C)
    12. 12. Puppet
    13. 13. Puppet - Logiciel libre (Apache 2.0) - Existe en version “Enterprise” - Support des machines virtuelles Amazon EC2 - Dashboard centralisé - Fonctionne sous GNU/Linux, Windows et MacOS X - Version actuelle : 4.0, publiée le 16 avril 2015 - Communication HTTPS entre le serveur et les agents
    14. 14. Ils utilisent Puppet La suite sur https://puppetlabs.com/about/customers
    15. 15. Architecture SSL
    16. 16. Installation de l’agent - “apt-get install puppet” - Configuration dans /etc/puppet/puppet.conf : [main] server=puppet.versusmind.eu - Génération du certificat côté “Agent” et soumission au serveur Puppet - Approbation (ou non) de la part du serveur Puppet - puppet agent -t
    17. 17. Un agent Puppet root@monserveur ~ # puppet agent -t Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Info: Caching catalog for monserveur.example.com Info: Applying configuration version '1431791808' Notice: /Stage[main]/Common::Install/Package[htop]/ensure: created Notice: Finished catalog run in 7.66 seconds
    18. 18. Cycle de vie d’un Agent
    19. 19. Configuration node /.*.domaine.com)$/ { class { ‘jboss’: } } Module Jboss : - Files : fichiers statiques - Manifests : code Puppet - Templates : fichiers dynamiques
    20. 20. La Forge PuppetLabs https://forge.puppetlabs.com/ - Plus de 3 000 modules
    21. 21. Ressources natives File : créer un fichier ou un répertoire Bien plus d’attributs sur https://docs.puppetlabs.com/references/4.0.latest/type.html
    22. 22. Ressources natives Package : installer un paquet Providers : - apt (Debian / Ubuntu) - apple (Systèmes OS X) - gem (Pour Ruby) - pip (pour Python) - macports (MacPorts sur OS X) - pacman (ArchLinux) - windows - ...
    23. 23. Ressources natives Service : gérer les services Attributs : - enable : service activé au démarrage du système - hasrestart : le script possède un paramètre “restart” - restart : spécifier une commande de restart manuellement - ... Support : - Debian - Windows - OS X - ...
    24. 24. Ressources natives User : créer un utilisateur Attributs : - uid / gid : ID (numérique) pour l’utilisateur et son groupe - Home : le répertoire par défaut - ...
    25. 25. Ressources natives Une multitude de ressources : - cron : déclarer une tâche planifiée - group : ajouter un groupe - interface : déclarer une interface réseau - exec : exécuter une commande personnalisée La suite sur https://docs.puppetlabs.com/references/latest/type.html
    26. 26. Exemple concret
    27. 27. Composants : Git / Git Flow - Git - Git Flow (develop, master, …) - Une branche par nouveau module - Pull Request !
    28. 28. Composants : Hiera - Séparer les données “variables” des modules - Fichiers .yaml
    29. 29. Hiera - Data bindings - Charger automatiquement les paramètres depuis Hiera
    30. 30. Noop / Environnements Noop : - /etc/puppet/puppet.conf : [agent] noop = true - Ne pas appliquer automatiquement le catalogue Puppet - puppet agent -t --no-noop Gestion des environnements : - Un environnement par utilisateur / feature - Une branche Git par environnement
    31. 31. Composants : Foreman ENC : External Node Classifier - Programme appelé par le serveur Puppet au moment ou l’agent demande son catalogue The Foreman : - Interface Web - Rassemble les rapports d’erreurs / succès - Statistiques sur l’ensemble de vos agents - Gestion des “groupes d’hôtes” : rôles - Gestion des environnements
    32. 32. symposium { ensure => finished } Merci ! questions { ensure => present } @jeoffreybauvin

    ×