Journées du Logiciel Libre 2011 - Puppet

65
Whoami Puppet En pratique Fin Puppet Management de parc centralisé Alexandre De Dommelin Journées du Logiciel Libre 2011 19 Novembre 2011 Alexandre De Dommelin Puppet Management de parc centralisé

Transcript of Journées du Logiciel Libre 2011 - Puppet

Page 1: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

PuppetManagement de parc centralisé

Alexandre De Dommelin

Journées du Logiciel Libre 2011

19 Novembre 2011

Alexandre De Dommelin Puppet Management de parc centralisé

Page 2: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

$ whoami

Sysadmin @ Nestlé Nespresso SALinuxien depuis le début des années 2000Mainteneur de divers packages Debian, membre de la DebianPerl TeamContributeur à différents projets OpenSourceAdorateur de Puppet

Alexandre De Dommelin Puppet Management de parc centralisé

Page 3: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Règle 1 : Simplification

Sysadmin est un travail éprouvant :-)Des dizaines voire centaines de serveurs à gérer, à la fois identiquesmais différents ...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 4: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Règle 2 : Oubliez les traditions

$ for h in ‘cat hosts‘ ; dossh $h apt-get install pkg ;scp my_cfg_file $h :/etc/pkg_cfg/ssh $h /etc/init.d/pkgd reloaddone ;

Alexandre De Dommelin Puppet Management de parc centralisé

Page 5: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Imaginez ...

Pouvoir contrôler l’ensemble de vos serveurs de manièrecentraliséeDéployer en quelques secondes de nouveaux serveurs configurésaux petits oignons et intégrés à votre système de monitoringPouvoir vous assurer que l’ensemble de votre parc respecte vosderniers standards de configurationPouvoir mettre à jour un package / une configuration surl’ensemble de votre parc en quelques secondesTout cela sans travail répétitif et de manière traçable etsécurisée ...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 6: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

... tout cela est possible !

Alexandre De Dommelin Puppet Management de parc centralisé

Page 7: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet Labs

Développé en RubyCouche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 8: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en Ruby

Couche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 9: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en RubyCouche d’abstraction entre le Sysadmin & le système

DSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 10: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en RubyCouche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...

Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 11: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en RubyCouche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...

Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 12: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en RubyCouche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...

Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 13: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Généralités

Logiciel libre (GNU GPL) développé par Puppet LabsDéveloppé en RubyCouche d’abstraction entre le Sysadmin & le systèmeDSL incluant classes, variables, selecteurs, structuresconditionnelles ...Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,Windows ...Projets similaires : CFEngine, Chef ...Utilisé par quelques petites sociétés

Alexandre De Dommelin Puppet Management de parc centralisé

Page 14: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Architecture

Architecture client / serveur

Communications sécurisées over SSL (Secure Socket Layer) :Polling automatique : Client -> Serveur tcp/8140Puppetrun : Serveur -> Client tcp/8139

Alexandre De Dommelin Puppet Management de parc centralisé

Page 15: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

PuppetMaster

CA (Certification Authority) pour signer & authentifier lesclientsCompile le code en catalogueServeur de distribution de fichiers

Alexandre De Dommelin Puppet Management de parc centralisé

Page 16: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet3 Génération du certificat client4 Envoi d’une CSR à PuppetMaster5 Signature du certificat par PuppetMaster6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 17: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet

3 Génération du certificat client4 Envoi d’une CSR à PuppetMaster5 Signature du certificat par PuppetMaster6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 18: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet3 Génération du certificat client

4 Envoi d’une CSR à PuppetMaster5 Signature du certificat par PuppetMaster6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 19: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet3 Génération du certificat client4 Envoi d’une CSR à PuppetMaster

5 Signature du certificat par PuppetMaster6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 20: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet3 Génération du certificat client4 Envoi d’une CSR à PuppetMaster5 Signature du certificat par PuppetMaster

6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 21: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

1 Installation d’un nouvel OS minimal (incluant les packagespuppet) - Ou installation des packages puppet sur un systèmeexistant

2 Premier run du daemon puppet3 Génération du certificat client4 Envoi d’une CSR à PuppetMaster5 Signature du certificat par PuppetMaster6 Puppetisation (tm) du système !

PackagesDaemonsConfigurationsUtilisateursPermissions...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 22: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Puppetisation

Alexandre De Dommelin Puppet Management de parc centralisé

Page 23: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Clients - Au quotidien

Chaque client :Se connecte à intervalles réguliers au PuppetMasterRecupère le catalogue des resourcesDetermine l’ordre dans lequel appliquer ces dernièresPasse en revue l’ensemble des resources configurées, les corrigele cas échéantEnvoit un rapport à PuppetMaster

Alexandre De Dommelin Puppet Management de parc centralisé

Page 24: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Caractéristiques Clients - facter

Utilisation de "facter" pour le rassemblement de meta-données surle client :

is_virtual : Machine physique ou virtuelleoperatingsystem : Distribution utiliséeoperatingsystemrelease : Version de la distributionip_adresss : Adresse IP de la machineuptime : Uptimeselinux : Extensions SELinux activées ou non...

Alexandre De Dommelin Puppet Management de parc centralisé

Page 25: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Langage

Basé sur RubyLangage déclaratifAbstraction : "user" et non "/etc/passwd" et/ou"/etc/shadow"Vous specifiez la configuration, Puppet se charge del’implémentation

Pensez QUOI et non COMMENT

Alexandre De Dommelin Puppet Management de parc centralisé

Page 26: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un package - Old School

apt-get install perl

ou : yum install perlou encore : ports install perlvoire même : emerge perl

Alexandre De Dommelin Puppet Management de parc centralisé

Page 27: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un package - Old School

apt-get install perlou : yum install perl

ou encore : ports install perlvoire même : emerge perl

Alexandre De Dommelin Puppet Management de parc centralisé

Page 28: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un package - Old School

apt-get install perlou : yum install perlou encore : ports install perl

voire même : emerge perl

Alexandre De Dommelin Puppet Management de parc centralisé

Page 29: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un package - Old School

apt-get install perlou : yum install perlou encore : ports install perlvoire même : emerge perl

Et également aussi : rpm -Uvh perl.xxx.rpm, up2date perl, finkinstall perl, pkg_add perl, pkg-get perl ...Pas facile d’avoir un script efficace dans un environnementhétérogène ! !

Alexandre De Dommelin Puppet Management de parc centralisé

Page 30: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un package - Puppet Style

Alexandre De Dommelin Puppet Management de parc centralisé

Page 31: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un service - Old School

Alexandre De Dommelin Puppet Management de parc centralisé

Page 32: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Installation d’un service - Puppet Style

Alexandre De Dommelin Puppet Management de parc centralisé

Page 33: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Ressources

Liste (non exhaustive) des ressources supportées par Puppet :Utilisateurs & GroupesPackagesServicesFichiers / DossiersCrontabsPoints de montagesNagiosHosts filesSELinuxClés SSH

Alexandre De Dommelin Puppet Management de parc centralisé

Page 34: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Packages

Plus de 20 fournisseurs de packages supportésCouche d’abstraction pour l’OS ciblePlusieurs états disponibles : absent, present, latestUpgrade facile : remplacement de present par latest

Alexandre De Dommelin Puppet Management de parc centralisé

Page 35: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Services

Supporte 10 types de framework d’InitCouche d’abstraction pour l’OS ciblePermet un controle granulaire (démarré au boot, surveillancedu statut...)Système de notification permettant de reloader un service si unde ses fichiers de configuration a été mis à jour.

Alexandre De Dommelin Puppet Management de parc centralisé

Page 36: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Fichiers / Dossiers

Gestion des permissions et appartenancesPossibilité de déployer des fichiers "statiques" ou adaptés ausystème cible par le biais de templates ERBSupporte plusieurs types de checksum pour les vérificationsd’intégritéSupporte la création de liens symboliques

Alexandre De Dommelin Puppet Management de parc centralisé

Page 37: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Un node ?

Décrit un clientPossède un certain nombre de modules qui lui sont appliquésPeut hériter des propriétés d’un autre nodeNode "default" s’appliquant à l’ensemble des clients n’ayantpas de node configuré.Support d’expressions régulières pour la sélection de plusieursclients "similaires"

Alexandre De Dommelin Puppet Management de parc centralisé

Page 38: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Un module ?

Collection de classes, definitions (fonctions) et de ressources

PortableAutonome

Alexandre De Dommelin Puppet Management de parc centralisé

Page 39: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Un module ?

Collection de classes, definitions (fonctions) et de ressourcesPortable

Autonome

Alexandre De Dommelin Puppet Management de parc centralisé

Page 40: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Un module ?

Collection de classes, definitions (fonctions) et de ressourcesPortableAutonome

Alexandre De Dommelin Puppet Management de parc centralisé

Page 41: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Structure d’un module

manifests/

Fonctionnement / logique du module

files/

Fichiers statiques déployables par le module

templates/

Fichiers "dynamiques" (templates ERB) déployables par le module

lib/

Librairies Ruby relatives au module

Alexandre De Dommelin Puppet Management de parc centralisé

Page 42: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Exemple de module simple : snmp

snmp/manifests/init.pp : snmp/files/snmpd.conf :

Alexandre De Dommelin Puppet Management de parc centralisé

Page 43: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Module simple : snmp - Problématiques

Actions réaliséesInstallation du paquet net-snmpDéploiement du fichier de configuration standardActivation du service snmpd et rechargement de ce dernier encas de mise à jour du fichier de configuration

ProblèmeLa disponibilité du package "net-snmp" dépend de la distributionutilisée.Il est donc impossible d’utiliser ce module dans le cadre d’unenvironnement hétérogène (Debian + RedHat par exemple).

Alexandre De Dommelin Puppet Management de parc centralisé

Page 44: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Module simple : snmp - Le retour

Alexandre De Dommelin Puppet Management de parc centralisé

Page 45: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

StoreConfigs

Option de puppetmasterdPrincipale application : Exportation de resources

Alexandre De Dommelin Puppet Management de parc centralisé

Page 46: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Exportation de ressources ?

Echange d’informations entre nodesConfigurer un node en fonction d’un autre node

Alexandre De Dommelin Puppet Management de parc centralisé

Page 47: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Exportation : Exemple 1

Alexandre De Dommelin Puppet Management de parc centralisé

Page 48: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Exportation : Exemple 2

Alexandre De Dommelin Puppet Management de parc centralisé

Page 49: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

IntroductionArchitectureLangageResource Abstraction Layer (RAL)Nodes & Modules

Exportation : Auto-configuration de Nagios

Utilise le type "Nagios" natifprésent dans PuppetDéfinition d’un host / servicesur le serveur Nagios, basé surles caractéristiques de votreserveur à monitorerAucune action manuelle !

Alexandre De Dommelin Puppet Management de parc centralisé

Page 50: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Environnements

Tester en évitant les effets indésirables

Alexandre De Dommelin Puppet Management de parc centralisé

Page 51: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Environments

Support natif d’environnements muliplesProcess QA : Développer, tester & valider avant de déployerles changements en productionTraçabilité : Intégration avec un VCS (subversion, git ...)Par défaut, utilisation de l’environnement "production"

Bascule entre environnementsForcer manuellement un client à récupérer le catalogue d’unenvironnement spécifique :$ /usr/sbin/puppetd –environment=<nom_environnement> –test

Alexandre De Dommelin Puppet Management de parc centralisé

Page 52: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Intégration avec Subversion

2 environnements :Development : "trunk" subversionProduction : branche séparée

Modifications sur l’environnement "development" puis commitéesdans le trunk :

Pre-Commit Hook : Validation de syntaxePost-Commit Hook : svnspam

Cycle de tests / validations terminé : merge dans la branche"production"

Alexandre De Dommelin Puppet Management de parc centralisé

Page 53: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Reporting

Comment savoir ce qui se passe sur mon infra maintenant que toutest automatisé ?

Alexandre De Dommelin Puppet Management de parc centralisé

Page 54: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Puppet Dashboard

Interface Web simple permettant de visualiser en temps-réel l’étatde votre infrastructure.

InstallationPuppet Dashboard n’est pas fourni avec PuppetMaster, il est doncnécessaire de l’installer séparement.

ConfigurationNécessite de configurer les clients pour envoyer leurs rapports(report = true) et de puppetmaster pour les transmetre à PuppetDashboard (reports = puppet_dashboard)

Alexandre De Dommelin Puppet Management de parc centralisé

Page 55: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Puppet Dashboard - Ecran principal

Liste des derniers nodesayant contacté PuppetMasterListe des derniers nodes mis àjourGraphe montrant le ratioréussite/erreurs

Alexandre De Dommelin Puppet Management de parc centralisé

Page 56: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Puppet Dashboard - Vue "Nodes"

Configuration actuelle dunodeInformations sur les dernièresexecutions du nodeGraph de la durée desdernières exécutionsListe des dernierschangements effectués sur lenode

Alexandre De Dommelin Puppet Management de parc centralisé

Page 57: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Puppet Dashboard - Vue "Rapports"

Rapport complet sur uneexecution (nombre deressources affectées, rapportintégral remonté par le node,statistiques, benchmarks ...)

Alexandre De Dommelin Puppet Management de parc centralisé

Page 58: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Packages

PuppetMaster

RedHat / CentOS & Derivés (EPEL) : yum install puppetpuppetmasterDebian & Dérivés : apt-get install puppet puppetmaster

Puppet Node

RedHat / CentOS & Derivés (EPEL) : yum install puppetDebian & Dérivés : apt-get install puppet

Alexandre De Dommelin Puppet Management de parc centralisé

Page 59: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Comandes utiles - Client

Connexion + enregistrement inital auprès de PuppetMaster

$ puppetd –server=puppetmaster.domain.tld –waitforcert=60 –test

Forcer le raffraichissement$ puppetd –test

Alexandre De Dommelin Puppet Management de parc centralisé

Page 60: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Commandes utiles - PuppetMaster

Lister les requetes de signature de certificats en attente

$ puppetca -l

Signer un certificat en attente

$ puppetca -s nom_du_certificat

Signer toutes les requetes en attente

$ puppetca -s -a

Alexandre De Dommelin Puppet Management de parc centralisé

Page 61: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Démos !

Alexandre De Dommelin Puppet Management de parc centralisé

Page 62: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Puppetisation d’un système neuf

Contraintes : Déployer rapidement un nouveau serveur intégré dansl’environnement existant.Départ : 1 serveur fraîchement installé via KickStart

Inscription sur puppetmasterPuppetisation initiale

Install & configuration NTP, SSH, Rsyslog, SNMP, Munin,PostfixInstall du set de packages de base configuréCréation des comptes sysadmin de base + dotfiles & clefs SSHApplication des politiques de standard de hardening,configurations PAMDéploiement du /etc/sudoers standardCréation du compte service OSSEC + clef SSH

Alexandre De Dommelin Puppet Management de parc centralisé

Page 63: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

EnvironnementsReportingInstallationCommandes utilesDémos

Mise en place d’un système de load-balancing

Contraintes : Déployer rapidement un système de load-balancingHautement Disponible Départ : 2 micro-serveurs fraîchementsinstallés via KickStart

Inscription des 2 instances sur puppetmasterPuppetisation initiale

Install & configuration NTP, SSH, Rsyslog, SNMP, Munin,PostfixInstall du set de packages de base configuréCréation des comptes sysadmin de base + dotfiles & clefs SSHApplication des politiques de standard de hardening,configurations PAMDéploiement du /etc/sudoers standardCréation du compte service OSSEC + clef SSH

Rajout des modules haproxy & keepalived + paramètres

Alexandre De Dommelin Puppet Management de parc centralisé

Page 64: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

Questions ?

Alexandre De Dommelin Puppet Management de parc centralisé

Page 65: Journées du Logiciel Libre 2011 - Puppet

WhoamiPuppet

En pratiqueFin

Merci !

Présentation bientôt disponible (après un café) surhttp ://www.tuxz.net/blog/

mailto : alex at tuxz.nettwitter / identi.ca : @adedommelinIRC : adedommelin (oftc/freenode)

Alexandre De Dommelin Puppet Management de parc centralisé