SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
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
symposium {
ensure => finished
}
Merci !
questions {
ensure => present
}
@jeoffreybauvin

Contenu connexe

Tendances

Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryDamien Goldenberg
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Aurelien Navarre
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with ChefOlivier BAZOUD
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec DockerLuis Lopez
 
Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopSMougenot
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et GaudiEmmanuel Quentin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 

Tendances (20)

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

En vedette

Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOlivier DASINI
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimizationebiznext
 
Full Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanFull Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanWeston Bassler
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreStephane Manciot
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabBen Tullis
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with ForemanJulien Pivotto
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011Henri Gomez
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Stephane Manciot
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Stephen Benjamin
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerYannig Perre
 
Ejerc Conjuntos Ximena
Ejerc Conjuntos XimenaEjerc Conjuntos Ximena
Ejerc Conjuntos XimenaLogos Academy
 
Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12aledifiori
 
Producciones literarias tercero
Producciones literarias  terceroProducciones literarias  tercero
Producciones literarias terceroLogos Academy
 
Pedicure Automatico
Pedicure AutomaticoPedicure Automatico
Pedicure Automaticoguestae07f6
 

En vedette (20)

Présentation Puppet
Présentation PuppetPrésentation Puppet
Présentation Puppet
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimization
 
Full Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanFull Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The Foreman
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvre
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and Gitlab
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec Docker
 
Ejerc Conjuntos Ximena
Ejerc Conjuntos XimenaEjerc Conjuntos Ximena
Ejerc Conjuntos Ximena
 
Matemagicas
MatemagicasMatemagicas
Matemagicas
 
Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12Bill gatesdicea losadolescentes12
Bill gatesdicea losadolescentes12
 
Producciones literarias tercero
Producciones literarias  terceroProducciones literarias  tercero
Producciones literarias tercero
 
La flor grande
La flor grandeLa flor grande
La flor grande
 
Pedicure Automatico
Pedicure AutomaticoPedicure Automatico
Pedicure Automatico
 

Similaire à Puppet, la philosophie DevOps

API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blogPHPPRO
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natifHenri Gomez
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natifHenri Gomez
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Mame Cheikh Ibra Niang
 
Devops Introduction au mouvement
Devops Introduction au mouvementDevops Introduction au mouvement
Devops Introduction au mouvementUlrich VACHON
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linuxKhalid ALLILI
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)hibnico
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsThierry Gayet
 
PHP dans le cloud
PHP dans le cloudPHP dans le cloud
PHP dans le cloudMicrosoft
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
 

Similaire à Puppet, la philosophie DevOps (20)

API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blog
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Devops Introduction au mouvement
Devops Introduction au mouvementDevops Introduction au mouvement
Devops Introduction au mouvement
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Php dans le cloud
Php dans le cloudPhp dans le cloud
Php dans le cloud
 
PHP dans le cloud
PHP dans le cloudPHP dans le cloud
PHP dans le cloud
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
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
  • 32.
  • 33.
  • 34. symposium { ensure => finished } Merci ! questions { ensure => present } @jeoffreybauvin

Notes de l'éditeur

  1. 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
  2. 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.
  3. 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)
  4. 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)
  5. 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
  6. 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
  7. PAS REINVENTER LA ROUE