SlideShare une entreprise Scribd logo
TECHLUNCH – DEVOPS & PUPPET 
05 Novembre 2014 
1 Techlunch – DEVOPS & Puppet
SOMMAIRE 
1|Introduction au concept DevOps 
2|DevOps à Sopra ? 
3|Introduction Puppet 
4|Puppet sur MSS 
5|Bonnes pratiques 
6|Questions 
7|Bonus 
2 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
3 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
4 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
Problèmes 
Différentes approches métier => Différents besoins => Problématiques 
différentes 
Communication parfois peu évidente 
Qui automatise les tâches ? Qui industrialise ? A quel moment ? 
5 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
Deux entités : 
Mouvement visant à réduire la friction organisationnelle entre les "devs" (chargés de 
faire évoluer le système d'information) et les "ops" (chargés d'exploiter les applications 
existantes) 
Personne qui fait le pont entre les deux parties en connaissant l’univers de l’un et de 
l’autre. Chargé d’apporter l’industrialisation au sein du projet (ou de l’améliorer) 
En résumé : 
Travailler ensemble, promouvoir la coopération 
Gain de temps sur des taches répétitives 
Automatisation des processus 
Culture basée sur la veille technologique 
DevopsDay : journées de conférences et de forums ouverts au public sur le 
thème du DevOps 
6 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
DevOps Engineer 
Comprend les problématiques du Dev et de l’Ops 
Améliore la mise en production 
Facilite les échanges 
Industrialise les environnements / tâches 
Parfois on parle même du prochain « PM » 
7 Techlunch – DEVOPS & Puppet
1- INTRODUCTION AU CONCEPT DEVOPS 
Gestion de configuration 
-Écrit: DSL Ruby / JSON 
-Licence: GNU GPL / Apache 
-Bdd: PuppetDB/Hiera 
-Divers: Communauté 
d’utilisateur + grande, 
Documentation Excellente, 
Twitter 
8 MSSanté V1 Équipe 
-Écrit: Language Ruby / 
Earlang 
-Licence: Apache 
-Bdd: Postgres, Solr 
-Divers: Bonne 
documentation, 
Facebook 
-Écrit: Langage C 
-Licence: GNU GPL 
-Divers: Très rapide, 
Consomme très peu, 
Documentation…, 
Difficile d’accès 
-Écrit: Python 
-Licence: Apache 
-Divers:Très rapide, 
Très à l’écoute de la 
communauté, 
Linkedin
1- INTRODUCTION AU CONCEPT DEVOPS 
Conteneur virtuel 
9 Techlunch – DEVOPS & Puppet 
- Type: LXC(Linux 
Containers) 
- Licence: GNU LGPL 
-Écrit: C 
-Divers: Plus rapide, 
Ebay 
-Type: VM 
-Licence: MIT Licence 
-Écrit: Ruby 
- Divers: Supporté par 
plus OS
1- INTRODUCTION AU CONCEPT DEVOPS 
Techlunch – DEVOPS & Puppet 
10
2 - DEVOPS À SOPRA ? 
11 Techlunch – DEVOPS & Puppet
2- DEVOPS À SOPRA ? 
Qui ? 
SB ? ARC ? PM ?? Filière à part entière ? 
A quel moment du projet ? 
Début ? Pendant ? Fin ? 
Les outils ? 
Jenkins 
Sonar 
Maven 
SVN/GIT 
Puppet 
12 Techlunch – DEVOPS & Puppet
2- DEVOPS À SOPRA ? 
Problèmes… 
Veille technologique 
Manque de processus d’industrialisation 
Souvent mis de coté dans le projet 
Pas « les bonnes ressources » sur le sujet 
13 Techlunch – DEVOPS & Puppet
3 - INTRODUCTION PUPPET 
14 Techlunch – DEVOPS & Puppet
3- INTRODUCTION PUPPET 
Puppet 
Outil de gestion de configuration 
Permet de gérer les déploiements système et applicatif 
Intégré dans le repository RedHat-Base 
DSL Ruby/JSON 
Utilise une architecture client/serveur ou juste client 
15 Techlunch – DEVOPS & Puppet
3- INTRODUCTION PUPPET 
Éviter les tâches répétitives : on ne fait le travail de configuration qu’une 
seule fois 
Configuration des hôtes 
Gestion des applications, services, etc. 
… 
Permettre une configuration homogène de parc (recette, pré-production, 
production) 
Déployer rapidement des machines 
Gain de temps lors de l’exécution d’une MEP et lors de la création de 
nouveaux environnements / machines 
Installer complètement un composant ou le mettre à jour… avec le même 
script 
16 Techlunch – DEVOPS & Puppet
3- INTRODUCTION PUPPET 
Arborescence 
Import 
Files 
‐ Import.pl 
Manifests 
‐ Init.pp 
Templates 
‐ Config.pl.erb 
17 Techlunch – DEVOPS & Puppet 
Module : est une 
structure qui permet 
l’installation d’un 
composant. 
Par convention le fichier dit « main » du module est le init.pp. On doit déclarer 
une classe dans chacun des fichiers du dossier manifest. La class dite « mère » doit 
porter le nom du module. 
Tous les fichiers templates doivent avoir comme extension .erb
3- INTRODUCTION PUPPET 
Script 
Chaque module contient une ou plusieurs class qui utilise des « ressources » 
18 Techlunch – DEVOPS & Puppet
3- INTRODUCTION PUPPET 
Attribut des ressources 
Exemple 
Fichier de template 
working_folder=<%= @WORKING_FOLDER %> 
template_folder=<%= @TEMPLATE_FOLDER %> 
import_folder=<%= @IMPORT_FOLDER %> 
wsdl_url=<%= @WSDL_URL %> 
Node 
node "bdd1.prod.mssante.fr" { 
include bdd; 
} 
19 Techlunch – DEVOPS & Puppet 
service{ httpd: 
ensure=> true 
} 
file { '/etc/passwd': 
owner => root, 
group => root, 
mode => 644 
} 
exec { 'extract_tgz': 
command => "/bin/tar --strip-components=1 -xvf 
$WORKING_FOLDER/$PAERPA_TGZ", 
cwd => "$WORKING_FOLDER/$PAERPA_BATCH_FOLDER" , 
require => File['copy_tgz'] 
}
3- INTRODUCTION PUPPET 
Puppet agent 
Lancement de module 
puppet apply -e "include module“ 
puppet apply --modulepath=/tmp/puppet_install -e "include module“ 
Lancement de fichier nodes 
Rapport sur la sortie standard 
notice /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/etc/cron.daily/automysqlbackup-automysqlbackup]/ 
content: content changed '{md5}ab094dbf90957a96d7c5960aec7db107' to '{md5}b746e8f3d54780c8aae3c8568d0c0913‘ 
notice:/Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_user[replication@%DBMY_SLAVE_IP]/ensure: created 
notice: /Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_grant[replication@%DBMY_SLAVE_IP/*.*]/ensure: created 
notice: /Stage[main]//Node[dbmy-master]/Exec[mkdir -p /var/backup/mysql]/returns: executed successfully 
notice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/usr/local/etc/automysqlbackup.conf]/content: 
content changed '{md5}d1149a15b29302ddd7378270345d1ceb' to '{md5}6d421cd0a3cb98d36b2b4d981bdec2de‘ 
notice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/var/backup/mysql/db]/ensure: created 
notice: Finished catalog run in 0.94 seconds 
20 Techlunch – DEVOPS & Puppet
3- INTRODUCTION PUPPET 
Puppet Master 
Des certificats signés par le Puppet Master doivent être générés pour chaque 
Puppet agent 
21 Techlunch – DEVOPS & Puppet 
Serveur de déploiement 
/ Puppet Master 
Machine à gérer 
/ Puppet Agent 
Machine à gérer 
/ Puppet Agent 
Machine à gérer 
/ Puppet Agent 
Machine à gérer 
/ Puppet Agent 
Machine à gérer 
/ Puppet Agent
3- INTRODUCTION PUPPET 
Des outils liés à Puppet 
MCollective: Framework pour orchestrer le déploiement (middleware) 
Dashboard : Interface web de management pour analyser les rapports 
22 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
23 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
24 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
Les grands principes d’industrialisation mis en place 
Automatisation des installations (Puppet) 
Automatisation des déploiements en intégration (Jenkins + Mcollective) 
Automatisation de la gestion de configuration de plateforme (Puppet) 
25 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
26 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
Utilisation de Puppet : 
en mode standalone en prod 
en mode standalone et serveur/client chez nous 
Éléments connexes au projet 
‐ Centralisation des variables 
‐ Système de nodes 
‐ Installation FULL ou Différentielle 
‐ Ordonnancement des tâches 
27 Techlunch – DEVOPS & Puppet
4 – PUPPET SUR MSS 
Jenkins 
Outil d’intégration continue (build, tests, analyse de code) 
Déploiement automatique sur les environnements internes avec 
mCollective 
28 Techlunch – DEVOPS & Puppet
5 - BONNES PRATIQUES PUPPET 
29 Techlunch – DEVOPS & Puppet
5 - BONNES PRATIQUES PUPPET 
Installation FULL / DIFF (simplification des docs) 
Document d’installation différentiel n’existe plus ! 
Centralisation des variables 
Utilisation de l’articulation en noeud en deux niveaux : 
<<Niveau 1>> 
Node hostname_machine inherits composant1{ 
} 
<<Niveau 2>> 
Node composant1 { 
include module1 
} 
30 Techlunch – DEVOPS & Puppet
5 - BONNES PRATIQUES PUPPET 
Mise en oeuvre d’un outil de gestion de version (SVN, GIT, …) au niveau du 
serveur de référence 
Découpage en module « mono-fonctionnalité » (ex : apache) 
S’appuyer sur les modules déjà existant (testé et approuvé) sous 
puppetlabs / puppetforge / github 
31 Techlunch – DEVOPS & Puppet
6- QUESTION 
32 Techlunch – DEVOPS & Puppet
6- BONUS 
33 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION D’ELK 
ELK : ElasticSearch / Logstash / Kibana 
34 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION D’ELK 
Logstash 
35 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION D’ELK 
ElasticSearch 
36 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION D’ELK 
Kibana 
37 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION D’ELK 
Des dashboards adaptés 
38 Techlunch – DEVOPS & Puppet
6- PRÉSENTATION DE VAGRANT 
Création d’environnement virtuel 
Configuration automatique 
Système de BOX 
VM « jetable » 
S’affranchir de Vmware, VirtualBox, etc… 
Échange de VM 
39 Techlunch – DEVOPS & Puppet
6- LES OUTILS D’INDUSTRIALISATION UTILISÉS SUR MSS 
Jenkins 
Moins utilisé pour : 
Livraison 
Déploiement 
Le principe du déploiement continu (pipelining) 
40 Techlunch – DEVOPS & Puppet
6- JENKINS PIPELINE 
41 Techlunch – DEVOPS & Puppet

Contenu connexe

Tendances

Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Anne Nicolas
 
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
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
Jérôme Petazzoni
 
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.io
Nicolas Hennion
 
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
Christophe Furmaniak
 
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
Ludovic Piot
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Christophe Furmaniak
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
Sylvain Boily
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
Stephane Manciot
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
Zenika
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec Rancher
Anthony Sigogne
 
Rancher, le (petit) orchestrateur qui vous veut du bien
Rancher, le (petit) orchestrateur qui vous veut du bienRancher, le (petit) orchestrateur qui vous veut du bien
Rancher, le (petit) orchestrateur qui vous veut du bien
Christophe Furmaniak
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Jérôme Petazzoni
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
Colin LEVERGER
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
JEAN-GUILLAUME DUJARDIN
 
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
Web à Québec
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
Zenika
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
Emmanuel Quentin
 

Tendances (20)

Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
 
Ansib formation-ansible
Ansib formation-ansibleAnsib formation-ansible
Ansib formation-ansible
 
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 ?
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
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 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
 
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
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec Rancher
 
Rancher, le (petit) orchestrateur qui vous veut du bien
Rancher, le (petit) orchestrateur qui vous veut du bienRancher, le (petit) orchestrateur qui vous veut du bien
Rancher, le (petit) orchestrateur qui vous veut du bien
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
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
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
 

En vedette

Formation Flash
Formation FlashFormation Flash
Formation Flash
jplesault
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcat
CERTyou Formation
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
Henri Gomez
 
Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppet
Fedora-Fr
 
Presentation Tomcat Load Balancer
Presentation Tomcat Load BalancerPresentation Tomcat Load Balancer
Presentation Tomcat Load Balancer
tarkaus
 
Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"
Michael Harlaut
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
Yannick Quenec'hdu
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"
Michael Harlaut
 
Chapitre3 elk concepts_avances
Chapitre3 elk concepts_avancesChapitre3 elk concepts_avances
Chapitre3 elk concepts_avances
Fabien SABATIER
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
Guillaume MOCQUET
 
APACHE TOMCAT
APACHE TOMCATAPACHE TOMCAT
APACHE TOMCAT
Rachid NID SAID
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm
 
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
Riadh Tebourbi (Ai1990)
 
Body language
Body languageBody language
Body language
Oussama Bessrour
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Ahmed Archive
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Jérôme Mainaud
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm
 
alphorm.com - Formation Linux LPIC-2
alphorm.com - Formation Linux LPIC-2alphorm.com - Formation Linux LPIC-2
alphorm.com - Formation Linux LPIC-2
Alphorm
 

En vedette (20)

Formation Flash
Formation FlashFormation Flash
Formation Flash
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcat
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppet
 
Presentation Tomcat Load Balancer
Presentation Tomcat Load BalancerPresentation Tomcat Load Balancer
Presentation Tomcat Load Balancer
 
Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"
 
Chapitre3 elk concepts_avances
Chapitre3 elk concepts_avancesChapitre3 elk concepts_avances
Chapitre3 elk concepts_avances
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
APACHE TOMCAT
APACHE TOMCATAPACHE TOMCAT
APACHE TOMCAT
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
 
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
 
Gestes
GestesGestes
Gestes
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Body language
Body languageBody language
Body language
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
alphorm.com - Formation Linux LPIC-2
alphorm.com - Formation Linux LPIC-2alphorm.com - Formation Linux LPIC-2
alphorm.com - Formation Linux LPIC-2
 

Similaire à Présentation devops&puppet 04112014

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
Olivier DASINI
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
Arthur Lutz
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
Johan Moreau
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Arthur Lutz
 
Pupin formation-puppet-les-bases
Pupin formation-puppet-les-basesPupin formation-puppet-les-bases
Pupin formation-puppet-les-bases
CERTyou Formation
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
Perfect Memory
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
Sébastien Corbin
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
JEAN-GUILLAUME DUJARDIN
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
abouaalexis
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
AbdellahELMAMOUN
 
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
Oxalide
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
Florent DENIS
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blog
PHPPRO
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
Jenkins
JenkinsJenkins
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
Nicolas Mussat
 
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
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
Olivier BAZOUD
 

Similaire à Présentation devops&puppet 04112014 (20)

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
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
Pupin formation-puppet-les-bases
Pupin formation-puppet-les-basesPupin formation-puppet-les-bases
Pupin formation-puppet-les-bases
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 
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
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blog
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Jenkins
JenkinsJenkins
Jenkins
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
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...
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 

Présentation devops&puppet 04112014

  • 1. TECHLUNCH – DEVOPS & PUPPET 05 Novembre 2014 1 Techlunch – DEVOPS & Puppet
  • 2. SOMMAIRE 1|Introduction au concept DevOps 2|DevOps à Sopra ? 3|Introduction Puppet 4|Puppet sur MSS 5|Bonnes pratiques 6|Questions 7|Bonus 2 Techlunch – DEVOPS & Puppet
  • 3. 1- INTRODUCTION AU CONCEPT DEVOPS 3 Techlunch – DEVOPS & Puppet
  • 4. 1- INTRODUCTION AU CONCEPT DEVOPS 4 Techlunch – DEVOPS & Puppet
  • 5. 1- INTRODUCTION AU CONCEPT DEVOPS Problèmes Différentes approches métier => Différents besoins => Problématiques différentes Communication parfois peu évidente Qui automatise les tâches ? Qui industrialise ? A quel moment ? 5 Techlunch – DEVOPS & Puppet
  • 6. 1- INTRODUCTION AU CONCEPT DEVOPS Deux entités : Mouvement visant à réduire la friction organisationnelle entre les "devs" (chargés de faire évoluer le système d'information) et les "ops" (chargés d'exploiter les applications existantes) Personne qui fait le pont entre les deux parties en connaissant l’univers de l’un et de l’autre. Chargé d’apporter l’industrialisation au sein du projet (ou de l’améliorer) En résumé : Travailler ensemble, promouvoir la coopération Gain de temps sur des taches répétitives Automatisation des processus Culture basée sur la veille technologique DevopsDay : journées de conférences et de forums ouverts au public sur le thème du DevOps 6 Techlunch – DEVOPS & Puppet
  • 7. 1- INTRODUCTION AU CONCEPT DEVOPS DevOps Engineer Comprend les problématiques du Dev et de l’Ops Améliore la mise en production Facilite les échanges Industrialise les environnements / tâches Parfois on parle même du prochain « PM » 7 Techlunch – DEVOPS & Puppet
  • 8. 1- INTRODUCTION AU CONCEPT DEVOPS Gestion de configuration -Écrit: DSL Ruby / JSON -Licence: GNU GPL / Apache -Bdd: PuppetDB/Hiera -Divers: Communauté d’utilisateur + grande, Documentation Excellente, Twitter 8 MSSanté V1 Équipe -Écrit: Language Ruby / Earlang -Licence: Apache -Bdd: Postgres, Solr -Divers: Bonne documentation, Facebook -Écrit: Langage C -Licence: GNU GPL -Divers: Très rapide, Consomme très peu, Documentation…, Difficile d’accès -Écrit: Python -Licence: Apache -Divers:Très rapide, Très à l’écoute de la communauté, Linkedin
  • 9. 1- INTRODUCTION AU CONCEPT DEVOPS Conteneur virtuel 9 Techlunch – DEVOPS & Puppet - Type: LXC(Linux Containers) - Licence: GNU LGPL -Écrit: C -Divers: Plus rapide, Ebay -Type: VM -Licence: MIT Licence -Écrit: Ruby - Divers: Supporté par plus OS
  • 10. 1- INTRODUCTION AU CONCEPT DEVOPS Techlunch – DEVOPS & Puppet 10
  • 11. 2 - DEVOPS À SOPRA ? 11 Techlunch – DEVOPS & Puppet
  • 12. 2- DEVOPS À SOPRA ? Qui ? SB ? ARC ? PM ?? Filière à part entière ? A quel moment du projet ? Début ? Pendant ? Fin ? Les outils ? Jenkins Sonar Maven SVN/GIT Puppet 12 Techlunch – DEVOPS & Puppet
  • 13. 2- DEVOPS À SOPRA ? Problèmes… Veille technologique Manque de processus d’industrialisation Souvent mis de coté dans le projet Pas « les bonnes ressources » sur le sujet 13 Techlunch – DEVOPS & Puppet
  • 14. 3 - INTRODUCTION PUPPET 14 Techlunch – DEVOPS & Puppet
  • 15. 3- INTRODUCTION PUPPET Puppet Outil de gestion de configuration Permet de gérer les déploiements système et applicatif Intégré dans le repository RedHat-Base DSL Ruby/JSON Utilise une architecture client/serveur ou juste client 15 Techlunch – DEVOPS & Puppet
  • 16. 3- INTRODUCTION PUPPET Éviter les tâches répétitives : on ne fait le travail de configuration qu’une seule fois Configuration des hôtes Gestion des applications, services, etc. … Permettre une configuration homogène de parc (recette, pré-production, production) Déployer rapidement des machines Gain de temps lors de l’exécution d’une MEP et lors de la création de nouveaux environnements / machines Installer complètement un composant ou le mettre à jour… avec le même script 16 Techlunch – DEVOPS & Puppet
  • 17. 3- INTRODUCTION PUPPET Arborescence Import Files ‐ Import.pl Manifests ‐ Init.pp Templates ‐ Config.pl.erb 17 Techlunch – DEVOPS & Puppet Module : est une structure qui permet l’installation d’un composant. Par convention le fichier dit « main » du module est le init.pp. On doit déclarer une classe dans chacun des fichiers du dossier manifest. La class dite « mère » doit porter le nom du module. Tous les fichiers templates doivent avoir comme extension .erb
  • 18. 3- INTRODUCTION PUPPET Script Chaque module contient une ou plusieurs class qui utilise des « ressources » 18 Techlunch – DEVOPS & Puppet
  • 19. 3- INTRODUCTION PUPPET Attribut des ressources Exemple Fichier de template working_folder=<%= @WORKING_FOLDER %> template_folder=<%= @TEMPLATE_FOLDER %> import_folder=<%= @IMPORT_FOLDER %> wsdl_url=<%= @WSDL_URL %> Node node "bdd1.prod.mssante.fr" { include bdd; } 19 Techlunch – DEVOPS & Puppet service{ httpd: ensure=> true } file { '/etc/passwd': owner => root, group => root, mode => 644 } exec { 'extract_tgz': command => "/bin/tar --strip-components=1 -xvf $WORKING_FOLDER/$PAERPA_TGZ", cwd => "$WORKING_FOLDER/$PAERPA_BATCH_FOLDER" , require => File['copy_tgz'] }
  • 20. 3- INTRODUCTION PUPPET Puppet agent Lancement de module puppet apply -e "include module“ puppet apply --modulepath=/tmp/puppet_install -e "include module“ Lancement de fichier nodes Rapport sur la sortie standard notice /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/etc/cron.daily/automysqlbackup-automysqlbackup]/ content: content changed '{md5}ab094dbf90957a96d7c5960aec7db107' to '{md5}b746e8f3d54780c8aae3c8568d0c0913‘ notice:/Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_user[replication@%DBMY_SLAVE_IP]/ensure: created notice: /Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_grant[replication@%DBMY_SLAVE_IP/*.*]/ensure: created notice: /Stage[main]//Node[dbmy-master]/Exec[mkdir -p /var/backup/mysql]/returns: executed successfully notice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/usr/local/etc/automysqlbackup.conf]/content: content changed '{md5}d1149a15b29302ddd7378270345d1ceb' to '{md5}6d421cd0a3cb98d36b2b4d981bdec2de‘ notice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/var/backup/mysql/db]/ensure: created notice: Finished catalog run in 0.94 seconds 20 Techlunch – DEVOPS & Puppet
  • 21. 3- INTRODUCTION PUPPET Puppet Master Des certificats signés par le Puppet Master doivent être générés pour chaque Puppet agent 21 Techlunch – DEVOPS & Puppet Serveur de déploiement / Puppet Master Machine à gérer / Puppet Agent Machine à gérer / Puppet Agent Machine à gérer / Puppet Agent Machine à gérer / Puppet Agent Machine à gérer / Puppet Agent
  • 22. 3- INTRODUCTION PUPPET Des outils liés à Puppet MCollective: Framework pour orchestrer le déploiement (middleware) Dashboard : Interface web de management pour analyser les rapports 22 Techlunch – DEVOPS & Puppet
  • 23. 4 – PUPPET SUR MSS 23 Techlunch – DEVOPS & Puppet
  • 24. 4 – PUPPET SUR MSS 24 Techlunch – DEVOPS & Puppet
  • 25. 4 – PUPPET SUR MSS Les grands principes d’industrialisation mis en place Automatisation des installations (Puppet) Automatisation des déploiements en intégration (Jenkins + Mcollective) Automatisation de la gestion de configuration de plateforme (Puppet) 25 Techlunch – DEVOPS & Puppet
  • 26. 4 – PUPPET SUR MSS 26 Techlunch – DEVOPS & Puppet
  • 27. 4 – PUPPET SUR MSS Utilisation de Puppet : en mode standalone en prod en mode standalone et serveur/client chez nous Éléments connexes au projet ‐ Centralisation des variables ‐ Système de nodes ‐ Installation FULL ou Différentielle ‐ Ordonnancement des tâches 27 Techlunch – DEVOPS & Puppet
  • 28. 4 – PUPPET SUR MSS Jenkins Outil d’intégration continue (build, tests, analyse de code) Déploiement automatique sur les environnements internes avec mCollective 28 Techlunch – DEVOPS & Puppet
  • 29. 5 - BONNES PRATIQUES PUPPET 29 Techlunch – DEVOPS & Puppet
  • 30. 5 - BONNES PRATIQUES PUPPET Installation FULL / DIFF (simplification des docs) Document d’installation différentiel n’existe plus ! Centralisation des variables Utilisation de l’articulation en noeud en deux niveaux : <<Niveau 1>> Node hostname_machine inherits composant1{ } <<Niveau 2>> Node composant1 { include module1 } 30 Techlunch – DEVOPS & Puppet
  • 31. 5 - BONNES PRATIQUES PUPPET Mise en oeuvre d’un outil de gestion de version (SVN, GIT, …) au niveau du serveur de référence Découpage en module « mono-fonctionnalité » (ex : apache) S’appuyer sur les modules déjà existant (testé et approuvé) sous puppetlabs / puppetforge / github 31 Techlunch – DEVOPS & Puppet
  • 32. 6- QUESTION 32 Techlunch – DEVOPS & Puppet
  • 33. 6- BONUS 33 Techlunch – DEVOPS & Puppet
  • 34. 6- PRÉSENTATION D’ELK ELK : ElasticSearch / Logstash / Kibana 34 Techlunch – DEVOPS & Puppet
  • 35. 6- PRÉSENTATION D’ELK Logstash 35 Techlunch – DEVOPS & Puppet
  • 36. 6- PRÉSENTATION D’ELK ElasticSearch 36 Techlunch – DEVOPS & Puppet
  • 37. 6- PRÉSENTATION D’ELK Kibana 37 Techlunch – DEVOPS & Puppet
  • 38. 6- PRÉSENTATION D’ELK Des dashboards adaptés 38 Techlunch – DEVOPS & Puppet
  • 39. 6- PRÉSENTATION DE VAGRANT Création d’environnement virtuel Configuration automatique Système de BOX VM « jetable » S’affranchir de Vmware, VirtualBox, etc… Échange de VM 39 Techlunch – DEVOPS & Puppet
  • 40. 6- LES OUTILS D’INDUSTRIALISATION UTILISÉS SUR MSS Jenkins Moins utilisé pour : Livraison Déploiement Le principe du déploiement continu (pipelining) 40 Techlunch – DEVOPS & Puppet
  • 41. 6- JENKINS PIPELINE 41 Techlunch – DEVOPS & Puppet