Présentation devops&puppet 04112014

  • Published on
    07-Jul-2015

  • View
    240

  • Download
    4

Embed Size (px)

DESCRIPTION

Prsentation DevOps et Puppet

Transcript

  • 1. TECHLUNCH DEVOPS & PUPPET05 Novembre 20141 Techlunch DEVOPS & Puppet

2. SOMMAIRE1|Introduction au concept DevOps2|DevOps Sopra ?3|Introduction Puppet4|Puppet sur MSS5|Bonnes pratiques6|Questions7|Bonus2 Techlunch DEVOPS & Puppet 3. 1- INTRODUCTION AU CONCEPT DEVOPS3 Techlunch DEVOPS & Puppet 4. 1- INTRODUCTION AU CONCEPT DEVOPS4 Techlunch DEVOPS & Puppet 5. 1- INTRODUCTION AU CONCEPT DEVOPSProblmesDiffrentes approches mtier => Diffrents besoins => ProblmatiquesdiffrentesCommunication parfois peu videnteQui automatise les tches ? Qui industrialise ? A quel moment ?5 Techlunch DEVOPS & Puppet 6. 1- INTRODUCTION AU CONCEPT DEVOPSDeux entits :Mouvement visant rduire la friction organisationnelle entre les "devs" (chargs defaire voluer le systme d'information) et les "ops" (chargs d'exploiter les applicationsexistantes)Personne qui fait le pont entre les deux parties en connaissant lunivers de lun et delautre. Charg dapporter lindustrialisation au sein du projet (ou de lamliorer)En rsum :Travailler ensemble, promouvoir la cooprationGain de temps sur des taches rptitivesAutomatisation des processusCulture base sur la veille technologiqueDevopsDay : journes de confrences et de forums ouverts au public sur lethme du DevOps6 Techlunch DEVOPS & Puppet 7. 1- INTRODUCTION AU CONCEPT DEVOPSDevOps EngineerComprend les problmatiques du Dev et de lOpsAmliore la mise en productionFacilite les changesIndustrialise les environnements / tchesParfois on parle mme du prochain PM 7 Techlunch DEVOPS & Puppet 8. 1- INTRODUCTION AU CONCEPT DEVOPSGestion de configuration-crit: DSL Ruby / JSON-Licence: GNU GPL / Apache-Bdd: PuppetDB/Hiera-Divers: Communautdutilisateur + grande,Documentation Excellente,Twitter8 MSSant V1 quipe-crit: Language Ruby /Earlang-Licence: Apache-Bdd: Postgres, Solr-Divers: Bonnedocumentation,Facebook-crit: Langage C-Licence: GNU GPL-Divers: Trs rapide,Consomme trs peu,Documentation,Difficile daccs-crit: Python-Licence: Apache-Divers:Trs rapide,Trs lcoute de lacommunaut,Linkedin 9. 1- INTRODUCTION AU CONCEPT DEVOPSConteneur virtuel9 Techlunch DEVOPS & Puppet- Type: LXC(LinuxContainers)- Licence: GNU LGPL-crit: C-Divers: Plus rapide,Ebay-Type: VM-Licence: MIT Licence-crit: Ruby- Divers: Support parplus OS 10. 1- INTRODUCTION AU CONCEPT DEVOPSTechlunch DEVOPS & Puppet10 11. 2 - DEVOPS SOPRA ?11 Techlunch DEVOPS & Puppet 12. 2- DEVOPS SOPRA ?Qui ?SB ? ARC ? PM ?? Filire part entire ?A quel moment du projet ?Dbut ? Pendant ? Fin ?Les outils ?JenkinsSonarMavenSVN/GITPuppet12 Techlunch DEVOPS & Puppet 13. 2- DEVOPS SOPRA ?ProblmesVeille technologiqueManque de processus dindustrialisationSouvent mis de cot dans le projetPas les bonnes ressources sur le sujet13 Techlunch DEVOPS & Puppet 14. 3 - INTRODUCTION PUPPET14 Techlunch DEVOPS & Puppet 15. 3- INTRODUCTION PUPPETPuppetOutil de gestion de configurationPermet de grer les dploiements systme et applicatifIntgr dans le repository RedHat-BaseDSL Ruby/JSONUtilise une architecture client/serveur ou juste client15 Techlunch DEVOPS & Puppet 16. 3- INTRODUCTION PUPPETviter les tches rptitives : on ne fait le travail de configuration quuneseule foisConfiguration des htesGestion des applications, services, etc.Permettre une configuration homogne de parc (recette, pr-production,production)Dployer rapidement des machinesGain de temps lors de lexcution dune MEP et lors de la cration denouveaux environnements / machinesInstaller compltement un composant ou le mettre jour avec le mmescript16 Techlunch DEVOPS & Puppet 17. 3- INTRODUCTION PUPPETArborescenceImportFiles Import.plManifests Init.ppTemplates Config.pl.erb17 Techlunch DEVOPS & PuppetModule : est unestructure qui permetlinstallation duncomposant.Par convention le fichier dit main du module est le init.pp. On doit dclarerune classe dans chacun des fichiers du dossier manifest. La class dite mre doitporter le nom du module.Tous les fichiers templates doivent avoir comme extension .erb 18. 3- INTRODUCTION PUPPETScriptChaque module contient une ou plusieurs class qui utilise des ressources 18 Techlunch DEVOPS & Puppet 19. 3- INTRODUCTION PUPPETAttribut des ressourcesExempleFichier de templateworking_folder=template_folder=import_folder=wsdl_url=Nodenode "bdd1.prod.mssante.fr" {include bdd;}19 Techlunch DEVOPS & Puppetservice{ 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 PUPPETPuppet agentLancement de modulepuppet apply -e "include modulepuppet apply --modulepath=/tmp/puppet_install -e "include moduleLancement de fichier nodesRapport sur la sortie standardnotice /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/etc/cron.daily/automysqlbackup-automysqlbackup]/content: content changed '{md5}ab094dbf90957a96d7c5960aec7db107' to '{md5}b746e8f3d54780c8aae3c8568d0c0913notice:/Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_user[replication@%DBMY_SLAVE_IP]/ensure: creatednotice: /Stage[main]/Mysqlsocle::Mysqlsoclemaster/Mysql_grant[replication@%DBMY_SLAVE_IP/*.*]/ensure: creatednotice: /Stage[main]//Node[dbmy-master]/Exec[mkdir -p /var/backup/mysql]/returns: executed successfullynotice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/usr/local/etc/automysqlbackup.conf]/content:content changed '{md5}d1149a15b29302ddd7378270345d1ceb' to '{md5}6d421cd0a3cb98d36b2b4d981bdec2denotice: /Stage[main]//Node[dbmy-master]/Automysqlbackup::Backup[automysqlbackup]/File[/var/backup/mysql/db]/ensure: creatednotice: Finished catalog run in 0.94 seconds20 Techlunch DEVOPS & Puppet 21. 3- INTRODUCTION PUPPETPuppet MasterDes certificats signs par le Puppet Master doivent tre gnrs pour chaquePuppet agent21 Techlunch DEVOPS & PuppetServeur de dploiement/ Puppet MasterMachine grer/ Puppet AgentMachine grer/ Puppet AgentMachine grer/ Puppet AgentMachine grer/ Puppet AgentMachine grer/ Puppet Agent 22. 3- INTRODUCTION PUPPETDes outils lis PuppetMCollective: Framework pour orchestrer le dploiement (middleware)Dashboard : Interface web de management pour analyser les rapports22 Techlunch DEVOPS & Puppet 23. 4 PUPPET SUR MSS23 Techlunch DEVOPS & Puppet 24. 4 PUPPET SUR MSS24 Techlunch DEVOPS & Puppet 25. 4 PUPPET SUR MSSLes grands principes dindustrialisation mis en placeAutomatisation des installations (Puppet)Automatisation des dploiements en intgration (Jenkins + Mcollective)Automatisation de la gestion de configuration de plateforme (Puppet)25 Techlunch DEVOPS & Puppet 26. 4 PUPPET SUR MSS26 Techlunch DEVOPS & Puppet 27. 4 PUPPET SUR MSSUtilisation de Puppet :en mode standalone en proden mode standalone et serveur/client chez nouslments connexes au projet Centralisation des variables Systme de nodes Installation FULL ou Diffrentielle Ordonnancement des tches27 Techlunch DEVOPS & Puppet 28. 4 PUPPET SUR MSSJenkinsOutil dintgration continue (build, tests, analyse de code)Dploiement automatique sur les environnements internes avecmCollective28 Techlunch DEVOPS & Puppet 29. 5 - BONNES PRATIQUES PUPPET29 Techlunch DEVOPS & Puppet 30. 5 - BONNES PRATIQUES PUPPETInstallation FULL / DIFF (simplification des docs)Document dinstallation diffrentiel nexiste plus !Centralisation des variablesUtilisation de larticulation en noeud en deux niveaux :Node hostname_machine inherits composant1{}Node composant1 {include module1}30 Techlunch DEVOPS & Puppet 31. 5 - BONNES PRATIQUES PUPPETMise en oeuvre dun outil de gestion de version (SVN, GIT, ) au niveau duserveur de rfrenceDcoupage en module mono-fonctionnalit (ex : apache)Sappuyer sur les modules dj existant (test et approuv) souspuppetlabs / puppetforge / github31 Techlunch DEVOPS & Puppet 32. 6- QUESTION32 Techlunch DEVOPS & Puppet 33. 6- BONUS33 Techlunch DEVOPS & Puppet 34. 6- PRSENTATION DELKELK : ElasticSearch / Logstash / Kibana34 Techlunch DEVOPS & Puppet 35. 6- PRSENTATION DELKLogstash35 Techlunch DEVOPS & Puppet 36. 6- PRSENTATION DELKElasticSearch36 Techlunch DEVOPS & Puppet 37. 6- PRSENTATION DELKKibana37 Techlunch DEVOPS & Puppet 38. 6- PRSENTATION DELKDes dashboards adapts38 Techlunch DEVOPS & Puppet 39. 6- PRSENTATION DE VAGRANTCration denvironnement virtuelConfiguration automatiqueSystme de BOXVM jetable Saffranchir de Vmware, VirtualBox, etcchange de VM39 Techlunch DEVOPS & Puppet 40. 6- LES OUTILS DINDUSTRIALISATION UTILISS SUR MSSJenkinsMoins utilis pour :LivraisonDploiementLe principe du dploiement continu (pipelining)40 Techlunch DEVOPS & Puppet 41. 6- JENKINS PIPELINE41 Techlunch DEVOPS & Puppet