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 pratique...
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ér...
1- INTRODUCTION AU CONCEPT DEVOPS 
Deux entités : 
Mouvement visant à réduire la friction organisationnelle entre les "dev...
1- INTRODUCTION AU CONCEPT DEVOPS 
DevOps Engineer 
Comprend les problématiques du Dev et de l’Ops 
Améliore la mise en pr...
1- INTRODUCTION AU CONCEPT DEVOPS 
Gestion de configuration 
-Écrit: DSL Ruby / JSON 
-Licence: GNU GPL / Apache 
-Bdd: Pu...
1- INTRODUCTION AU CONCEPT DEVOPS 
Conteneur virtuel 
9 Techlunch – DEVOPS & Puppet 
- Type: LXC(Linux 
Containers) 
- Lic...
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 ? ...
2- DEVOPS À SOPRA ? 
Problèmes… 
Veille technologique 
Manque de processus d’industrialisation 
Souvent mis de coté dans l...
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 ...
3- INTRODUCTION PUPPET 
Éviter les tâches répétitives : on ne fait le travail de configuration qu’une 
seule fois 
Configu...
3- INTRODUCTION PUPPET 
Arborescence 
Import 
Files 
‐ Import.pl 
Manifests 
‐ Init.pp 
Templates 
‐ Config.pl.erb 
17 Tec...
3- INTRODUCTION PUPPET 
Script 
Chaque module contient une ou plusieurs class qui utilise des « ressources » 
18 Techlunch...
3- INTRODUCTION PUPPET 
Attribut des ressources 
Exemple 
Fichier de template 
working_folder=<%= @WORKING_FOLDER %> 
temp...
3- INTRODUCTION PUPPET 
Puppet agent 
Lancement de module 
puppet apply -e "include module“ 
puppet apply --modulepath=/tm...
3- INTRODUCTION PUPPET 
Puppet Master 
Des certificats signés par le Puppet Master doivent être générés pour chaque 
Puppe...
3- INTRODUCTION PUPPET 
Des outils liés à Puppet 
MCollective: Framework pour orchestrer le déploiement (middleware) 
Dash...
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) 
Auto...
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 
É...
4 – PUPPET SUR MSS 
Jenkins 
Outil d’intégration continue (build, tests, analyse de code) 
Déploiement automatique sur les...
5 - BONNES PRATIQUES PUPPET 
29 Techlunch – DEVOPS & Puppet
5 - BONNES PRATIQUES PUPPET 
Installation FULL / DIFF (simplification des docs) 
Document d’installation différentiel n’ex...
5 - BONNES PRATIQUES PUPPET 
Mise en oeuvre d’un outil de gestion de version (SVN, GIT, …) au niveau du 
serveur de référe...
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...
6- LES OUTILS D’INDUSTRIALISATION UTILISÉS SUR MSS 
Jenkins 
Moins utilisé pour : 
Livraison 
Déploiement 
Le principe du ...
6- JENKINS PIPELINE 
41 Techlunch – DEVOPS & Puppet
Prochain SlideShare
Chargement dans…5
×

Présentation devops&puppet 04112014

844 vues

Publié le

Présentation DevOps et Puppet

Publié dans : Ingénierie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

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

Aucune remarque pour cette diapositive

Présentation devops&puppet 04112014

  1. 1. TECHLUNCH – DEVOPS & PUPPET 05 Novembre 2014 1 Techlunch – DEVOPS & Puppet
  2. 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. 3. 1- INTRODUCTION AU CONCEPT DEVOPS 3 Techlunch – DEVOPS & Puppet
  4. 4. 1- INTRODUCTION AU CONCEPT DEVOPS 4 Techlunch – DEVOPS & Puppet
  5. 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. 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. 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. 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. 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. 10. 1- INTRODUCTION AU CONCEPT DEVOPS Techlunch – DEVOPS & Puppet 10
  11. 11. 2 - DEVOPS À SOPRA ? 11 Techlunch – DEVOPS & Puppet
  12. 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. 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. 14. 3 - INTRODUCTION PUPPET 14 Techlunch – DEVOPS & Puppet
  15. 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. 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. 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. 18. 3- INTRODUCTION PUPPET Script Chaque module contient une ou plusieurs class qui utilise des « ressources » 18 Techlunch – DEVOPS & Puppet
  19. 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. 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. 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. 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. 23. 4 – PUPPET SUR MSS 23 Techlunch – DEVOPS & Puppet
  24. 24. 4 – PUPPET SUR MSS 24 Techlunch – DEVOPS & Puppet
  25. 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. 26. 4 – PUPPET SUR MSS 26 Techlunch – DEVOPS & Puppet
  27. 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. 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. 29. 5 - BONNES PRATIQUES PUPPET 29 Techlunch – DEVOPS & Puppet
  30. 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. 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. 32. 6- QUESTION 32 Techlunch – DEVOPS & Puppet
  33. 33. 6- BONUS 33 Techlunch – DEVOPS & Puppet
  34. 34. 6- PRÉSENTATION D’ELK ELK : ElasticSearch / Logstash / Kibana 34 Techlunch – DEVOPS & Puppet
  35. 35. 6- PRÉSENTATION D’ELK Logstash 35 Techlunch – DEVOPS & Puppet
  36. 36. 6- PRÉSENTATION D’ELK ElasticSearch 36 Techlunch – DEVOPS & Puppet
  37. 37. 6- PRÉSENTATION D’ELK Kibana 37 Techlunch – DEVOPS & Puppet
  38. 38. 6- PRÉSENTATION D’ELK Des dashboards adaptés 38 Techlunch – DEVOPS & Puppet
  39. 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. 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. 41. 6- JENKINS PIPELINE 41 Techlunch – DEVOPS & Puppet

×