Puppet, la philosophie DevOps
@Jeoffreybauvin
@Versusmind
Jeoffrey Bauvin
Consultant IT chez Versusmind
Nancy, France
@jeoffreybauvin
Introduction : DevOps ?
- Équipes cloisonnées
- Mauvaise collaboration
- Lourdeur administrative / Retards de livraisons
- Besoin d’évolution rapide
- Impact sur la qualité des applications
DevOps : Pourquoi ?
Introduction : Pourquoi ?
DevOps : Popularité (1/2)
Les bénéfices du DevOps
DevOps : Composants
Automatisation IT
Déploiement manuel
- Adapté pour un serveur, mais pour 30 ?
- Un script Bash ? Est-ce maintenable ?
- Et sur d’autres systèmes d’exploitation ?
Déploiement centralisé
- Configuration centralisée
- Déploiement automatisé de masse
- Abstraction du système d’exploitation
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)
Puppet
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
Ils utilisent Puppet
La suite sur https://puppetlabs.com/about/customers
Architecture
SSL
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
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
Cycle de vie d’un Agent
Configuration
node /.*.domaine.com)$/ {
class { ‘jboss’: }
}
Module Jboss :
- Files : fichiers statiques
- Manifests : code Puppet
- Templates : fichiers dynamiques
La Forge PuppetLabs
https://forge.puppetlabs.com/ - Plus de 3 000 modules
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
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
- ...
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
- ...
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
- ...
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
Exemple concret
Composants : Git / Git Flow
- Git
- Git Flow (develop, master, …)
- Une branche par nouveau module
- Pull Request !
Composants : Hiera
- Séparer les données “variables” des modules
- Fichiers .yaml
Hiera - Data bindings
- Charger automatiquement les paramètres depuis Hiera
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
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
Puppet, la philosophie DevOps
Puppet, la philosophie DevOps
symposium {
ensure => finished
}
Merci !
questions {
ensure => present
}
@jeoffreybauvin

Contenu connexe

PDF
DevOps avec Ansible et Docker
PDF
Journée DevOps : Puppet, un outil pour les installer tous
PDF
Codons notre infrastructure
PDF
DevOps : mission [im]possible ?
PDF
Démo puppet et état du projet
PPTX
REX Devops Docker
PDF
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
PPT
De Maven à SBT ScalaIO 2013
DevOps avec Ansible et Docker
Journée DevOps : Puppet, un outil pour les installer tous
Codons notre infrastructure
DevOps : mission [im]possible ?
Démo puppet et état du projet
REX Devops Docker
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
De Maven à SBT ScalaIO 2013

Tendances (20)

PDF
Ansib formation-ansible
PPTX
Docker, Pierre angulaire du continuous delivery ?
PDF
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
PPTX
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
PDF
Introduction à docker.io
PPTX
REX sur l'outilage Continuous Delivery
PDF
Livre blanc docker
PPTX
Présentation devops&puppet 04112014
PDF
Docker en Production (Docker Paris)
PDF
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
PDF
TDD for DevOps with Chef
PDF
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
PDF
Déploiements avec Docker
PPTX
Mixit2014_Puppet_Workshop
PDF
Introduction à Docker et Gaudi
PDF
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
ODP
Rex docker en production meeutp-docker-nantes
PDF
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
PDF
Julien Maitrehenry - Docker, ça mange quoi au printemps
PPTX
REX Openshift à la Poste
Ansib formation-ansible
Docker, Pierre angulaire du continuous delivery ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Introduction à docker.io
REX sur l'outilage Continuous Delivery
Livre blanc docker
Présentation devops&puppet 04112014
Docker en Production (Docker Paris)
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
TDD for DevOps with Chef
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Déploiements avec Docker
Mixit2014_Puppet_Workshop
Introduction à Docker et Gaudi
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Rex docker en production meeutp-docker-nantes
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Julien Maitrehenry - Docker, ça mange quoi au printemps
REX Openshift à la Poste
Publicité

En vedette (20)

PDF
Présentation Puppet
PDF
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
PPTX
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
PDF
Docker Tours Meetup #1 - Introduction à Docker
PDF
Spark / Mesos Cluster Optimization
PDF
Full Stack Automation with Katello & The Foreman
PDF
Des principes de la démarche DevOps à sa mise en oeuvre
ODP
Linux host orchestration with Foreman, Puppet and Gitlab
PDF
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
PDF
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
ODP
Foreman in Your Data Center :OSDC 2015
ODP
Foreman in your datacenter
PDF
REX déploiement Ansible et Utilisation avec Docker
PPTX
Ejerc Conjuntos Ximena
DOCX
Matemagicas
PPS
Bill gatesdicea losadolescentes12
PDF
Producciones literarias tercero
PDF
La flor grande
PDF
Pedicure Automatico
PDF
El propietario de la catedral giomara moreira
Présentation Puppet
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker Tours Meetup #1 - Introduction à Docker
Spark / Mesos Cluster Optimization
Full Stack Automation with Katello & The Foreman
Des principes de la démarche DevOps à sa mise en oeuvre
Linux host orchestration with Foreman, Puppet and Gitlab
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Foreman in Your Data Center :OSDC 2015
Foreman in your datacenter
REX déploiement Ansible et Utilisation avec Docker
Ejerc Conjuntos Ximena
Matemagicas
Bill gatesdicea losadolescentes12
Producciones literarias tercero
La flor grande
Pedicure Automatico
El propietario de la catedral giomara moreira
Publicité

Similaire à Puppet, la philosophie DevOps (20)

PDF
API != REST - procmail à la rescousse
PPTX
20100221 my phingtool - blog
PDF
Je configure mes serveurs avec fabric et fabtools
PDF
20111220 lyon jug-packaging-natif
PDF
20120110 paris jug-packaging-natif
PDF
Rapport d'installation de Linux Engine X MariaDB PHP5
PDF
Devops Introduction au mouvement
PDF
BBL - TDD pour les DevOps - Puppet
ODP
08 01 mise en place d'un serveur web
PDF
AlterWay SolutionsLinux Outils Industrialisation PHP
PDF
Lp web tp3_idse
PPT
Mysql Apche PHP sous linux
PDF
Gestion des dépendances dans un projet PHP - Forum PHP 2012
KEY
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
PDF
découverte du langage python dans tous ses aspects
PDF
PHP dans le cloud
PDF
Php dans le cloud
PDF
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
PPT
20091020 - Normandy Jug - Builders Battle
PDF
Installation hadoopv2.7.4-amal abid
API != REST - procmail à la rescousse
20100221 my phingtool - blog
Je configure mes serveurs avec fabric et fabtools
20111220 lyon jug-packaging-natif
20120110 paris jug-packaging-natif
Rapport d'installation de Linux Engine X MariaDB PHP5
Devops Introduction au mouvement
BBL - TDD pour les DevOps - Puppet
08 01 mise en place d'un serveur web
AlterWay SolutionsLinux Outils Industrialisation PHP
Lp web tp3_idse
Mysql Apche PHP sous linux
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
découverte du langage python dans tous ses aspects
PHP dans le cloud
Php dans le cloud
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
20091020 - Normandy Jug - Builders Battle
Installation hadoopv2.7.4-amal abid

Puppet, la philosophie DevOps

  • 1. Puppet, la philosophie DevOps @Jeoffreybauvin @Versusmind
  • 2. Jeoffrey Bauvin Consultant IT chez Versusmind Nancy, France @jeoffreybauvin
  • 4. - Équipes cloisonnées - Mauvaise collaboration - Lourdeur administrative / Retards de livraisons - Besoin d’évolution rapide - Impact sur la qualité des applications DevOps : Pourquoi ?
  • 6. DevOps : Popularité (1/2) Les bénéfices du DevOps
  • 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. Déploiement centralisé - Configuration centralisée - Déploiement automatisé de masse - Abstraction du système d’exploitation
  • 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)
  • 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. Ils utilisent Puppet La suite sur https://puppetlabs.com/about/customers
  • 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. 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. Cycle de vie d’un Agent
  • 19. Configuration node /.*.domaine.com)$/ { class { ‘jboss’: } } Module Jboss : - Files : fichiers statiques - Manifests : code Puppet - Templates : fichiers dynamiques
  • 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. 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. 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. 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. 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
  • 27. Composants : Git / Git Flow - Git - Git Flow (develop, master, …) - Une branche par nouveau module - Pull Request !
  • 28. Composants : Hiera - Séparer les données “variables” des modules - Fichiers .yaml
  • 29. Hiera - Data bindings - Charger automatiquement les paramètres depuis Hiera
  • 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. 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
  • 34. symposium { ensure => finished } Merci ! questions { ensure => present } @jeoffreybauvin

Notes de l'éditeur

  • #3: 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
  • #4: 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.
  • #7: 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)
  • #8: 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)
  • #14: 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
  • #20: 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
  • #21: PAS REINVENTER LA ROUE