SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
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é
Whoami
                              Puppet
                          En pratique
                                  Fin


$ whoami



     Sysadmin @ Nestlé Nespresso SA
     Linuxien depuis le début des années 2000
     Mainteneur de divers packages Debian, membre de la Debian
     Perl Team
     Contributeur à différents projets OpenSource
     Adorateur de Puppet




               Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Règle 1 : Simplification




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


                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Règle 2 : Oubliez les traditions




  $ for h in ‘cat hosts‘ ; do
  ssh $h apt-get install pkg ;
  scp my_cfg_file $h :/etc/pkg_cfg/
  ssh $h /etc/init.d/pkgd reload
  done ;
                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Imaginez ...


      Pouvoir contrôler l’ensemble de vos serveurs de manière
      centralisée
      Déployer en quelques secondes de nouveaux serveurs configurés
      aux petits oignons et intégrés à votre système de monitoring
      Pouvoir vous assurer que l’ensemble de votre parc respecte vos
      derniers standards de configuration
      Pouvoir mettre à jour un package / une configuration sur
      l’ensemble de votre parc en quelques secondes
      Tout cela sans travail répétitif et de manière traçable et
      sécurisée ...


                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


... tout cela est possible !




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Généralités


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




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Généralités


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




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Généralités


      Logiciel libre (GNU GPL) développé par Puppet Labs
      Développé en Ruby
      Couche d’abstraction entre le Sysadmin & le système




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Généralités


      Logiciel libre (GNU GPL) développé par Puppet Labs
      Développé en Ruby
      Couche d’abstraction entre le Sysadmin & le système
      DSL incluant classes, variables, selecteurs, structures
      conditionnelles ...




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Généralités


      Logiciel libre (GNU GPL) développé par Puppet Labs
      Développé en Ruby
      Couche d’abstraction entre le Sysadmin & le système
      DSL incluant classes, variables, selecteurs, structures
      conditionnelles ...
      Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,
      Windows ...




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Généralités


      Logiciel libre (GNU GPL) développé par Puppet Labs
      Développé en Ruby
      Couche d’abstraction entre le Sysadmin & le système
      DSL incluant classes, variables, selecteurs, structures
      conditionnelles ...
      Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX,
      Windows ...
      Projets similaires : CFEngine, Chef ...




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Généralités
      Logiciel libre (GNU GPL) développé par Puppet Labs
      Développé en Ruby
      Couche d’abstraction entre le Sysadmin & le système
      DSL incluant classes, variables, selecteurs, structures
      conditionnelles ...
      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é
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Architecture

      Architecture client / serveur




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


                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


PuppetMaster




     CA (Certification Authority) pour signer & authentifier les
     clients
     Compile le code en catalogue
     Serveur de distribution de fichiers

                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant
    2   Premier run du daemon puppet




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant
    2   Premier run du daemon puppet
    3   Génération du certificat client




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant
    2   Premier run du daemon puppet
    3   Génération du certificat client
    4   Envoi d’une CSR à PuppetMaster




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant
    2   Premier run du daemon puppet
    3   Génération du certificat client
    4   Envoi d’une CSR à PuppetMaster
    5   Signature du certificat par PuppetMaster




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Clients - Puppetisation
    1   Installation d’un nouvel OS minimal (incluant les packages
        puppet) - Ou installation des packages puppet sur un système
        existant
    2   Premier run du daemon puppet
    3   Génération du certificat client
    4   Envoi d’une CSR à PuppetMaster
    5   Signature du certificat par PuppetMaster
    6   Puppetisation (tm) du système !
            Packages
            Daemons
            Configurations
            Utilisateurs
            Permissions
            ...
                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                             Whoami
                                        Architecture
                              Puppet
                                        Langage
                          En pratique
                                        Resource Abstraction Layer (RAL)
                                  Fin
                                        Nodes & Modules


Clients - Puppetisation




               Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                  Whoami
                                             Architecture
                                   Puppet
                                             Langage
                               En pratique
                                             Resource Abstraction Layer (RAL)
                                       Fin
                                             Nodes & Modules


Clients - Au quotidien


  Chaque client :
      Se connecte à intervalles réguliers au PuppetMaster
      Recupère le catalogue des resources
      Determine l’ordre dans lequel appliquer ces dernières
      Passe en revue l’ensemble des resources configurées, les corrige
      le cas échéant
      Envoit un rapport à PuppetMaster




                    Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Caractéristiques Clients - facter


  Utilisation de "facter" pour le rassemblement de meta-données sur
  le client :
      is_virtual : Machine physique ou virtuelle
      operatingsystem : Distribution utilisée
      operatingsystemrelease : Version de la distribution
      ip_adresss : Adresse IP de la machine
      uptime : Uptime
      selinux : Extensions SELinux activées ou non
      ...



                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Langage


     Basé sur Ruby
     Langage déclaratif
     Abstraction : "user" et non "/etc/passwd" et/ou
     "/etc/shadow"
     Vous specifiez la configuration, Puppet se charge de
     l’implémentation

                 Pensez QUOI et non COMMENT




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Installation d’un package - Old School




      apt-get install perl




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Installation d’un package - Old School




      apt-get install perl
      ou : yum install perl




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Installation d’un package - Old School




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




                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           Nodes & Modules


Installation d’un package - Old School


      apt-get install perl
      ou : yum install perl
      ou encore : ports install perl
      voire même : emerge perl
  Et également aussi : rpm -Uvh perl.xxx.rpm, up2date perl, fink
  install perl, pkg_add perl, pkg-get perl ...
  Pas facile d’avoir un script efficace dans un environnement
  hétérogène ! !



                  Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                             Whoami
                                        Architecture
                              Puppet
                                        Langage
                          En pratique
                                        Resource Abstraction Layer (RAL)
                                  Fin
                                        Nodes & Modules


Installation d’un package - Puppet Style




               Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                             Whoami
                                        Architecture
                              Puppet
                                        Langage
                          En pratique
                                        Resource Abstraction Layer (RAL)
                                  Fin
                                        Nodes & Modules


Installation d’un service - Old School




               Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                             Whoami
                                        Architecture
                              Puppet
                                        Langage
                          En pratique
                                        Resource Abstraction Layer (RAL)
                                  Fin
                                        Nodes & Modules


Installation d’un service - Puppet Style




               Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                 Whoami
                                            Architecture
                                  Puppet
                                            Langage
                              En pratique
                                            Resource Abstraction Layer (RAL)
                                      Fin
                                            Nodes & Modules


Ressources

  Liste (non exhaustive) des ressources supportées par Puppet :
      Utilisateurs & Groupes
      Packages
      Services
      Fichiers / Dossiers
      Crontabs
      Points de montages
      Nagios
      Hosts files
      SELinux
      Clés SSH

                   Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Packages




     Plus de 20 fournisseurs de packages supportés
     Couche d’abstraction pour l’OS cible
     Plusieurs états disponibles : absent, present, latest
     Upgrade facile : remplacement de present par latest




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Services



      Supporte 10 types de framework d’Init
      Couche d’abstraction pour l’OS cible
      Permet un controle granulaire (démarré au boot, surveillance
      du statut...)
      Système de notification permettant de reloader un service si un
      de ses fichiers de configuration a été mis à jour.




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Fichiers / Dossiers



      Gestion des permissions et appartenances
      Possibilité de déployer des fichiers "statiques" ou adaptés au
      système cible par le biais de templates ERB
      Supporte plusieurs types de checksum pour les vérifications
      d’intégrité
      Supporte la création de liens symboliques




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Un node ?




     Décrit un client
     Possède un certain nombre de modules qui lui sont appliqués
     Peut hériter des propriétés d’un autre node
     Node "default" s’appliquant à l’ensemble des clients n’ayant
     pas de node configuré.
     Support d’expressions régulières pour la sélection de plusieurs
     clients "similaires"
                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Un module ?




     Collection de classes, definitions (fonctions) et de ressources




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Un module ?




     Collection de classes, definitions (fonctions) et de ressources
     Portable




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Un module ?




     Collection de classes, definitions (fonctions) et de ressources
     Portable
     Autonome




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                                Whoami
                                           Architecture
                                 Puppet
                                           Langage
                             En pratique
                                           Resource Abstraction Layer (RAL)
                                     Fin
                                           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é
Introduction
                                  Whoami
                                             Architecture
                                   Puppet
                                             Langage
                               En pratique
                                             Resource Abstraction Layer (RAL)
                                       Fin
                                             Nodes & Modules


 Exemple de module simple : snmp

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




                    Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                               Whoami
                                          Architecture
                                Puppet
                                          Langage
                            En pratique
                                          Resource Abstraction Layer (RAL)
                                    Fin
                                          Nodes & Modules


Module simple : snmp - Problématiques

  Actions réalisées
       Installation du paquet net-snmp
      Déploiement du fichier de configuration standard
      Activation du service snmpd et rechargement de ce dernier en
      cas de mise à jour du fichier de configuration

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


                 Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                            Whoami
                                       Architecture
                             Puppet
                                       Langage
                         En pratique
                                       Resource Abstraction Layer (RAL)
                                 Fin
                                       Nodes & Modules


Module simple : snmp - Le retour




              Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


StoreConfigs




     Option de puppetmasterd
     Principale application : Exportation de resources




                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                              Whoami
                                         Architecture
                               Puppet
                                         Langage
                           En pratique
                                         Resource Abstraction Layer (RAL)
                                   Fin
                                         Nodes & Modules


Exportation de ressources ?




      Echange d’informations entre nodes
      Configurer un node en fonction d’un autre node


                Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                            Whoami
                                       Architecture
                             Puppet
                                       Langage
                         En pratique
                                       Resource Abstraction Layer (RAL)
                                 Fin
                                       Nodes & Modules


Exportation : Exemple 1




              Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                            Whoami
                                       Architecture
                             Puppet
                                       Langage
                         En pratique
                                       Resource Abstraction Layer (RAL)
                                 Fin
                                       Nodes & Modules


Exportation : Exemple 2




              Alexandre De Dommelin    Puppet Management de parc centralisé
Introduction
                            Whoami
                                       Architecture
                             Puppet
                                       Langage
                         En pratique
                                       Resource Abstraction Layer (RAL)
                                 Fin
                                       Nodes & Modules


Exportation : Auto-configuration de Nagios



                                            Utilise le type "Nagios" natif
                                            présent dans Puppet
                                            Définition d’un host / service
                                            sur le serveur Nagios, basé sur
                                            les caractéristiques de votre
                                            serveur à monitorer
                                            Aucune action manuelle !




              Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                           Whoami
                                      Reporting
                            Puppet
                                      Installation
                        En pratique
                                      Commandes utiles
                                Fin
                                      Démos


Environnements



            Tester en évitant les effets indésirables




             Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                               Whoami
                                          Reporting
                                Puppet
                                          Installation
                            En pratique
                                          Commandes utiles
                                    Fin
                                          Démos


Environments


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

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


                 Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                                Whoami
                                           Reporting
                                 Puppet
                                           Installation
                             En pratique
                                           Commandes utiles
                                     Fin
                                           Démos


Intégration avec Subversion


  2 environnements :
      Development : "trunk" subversion
      Production : branche séparée
  Modifications sur l’environnement "development" puis commitées
  dans le trunk :
      Pre-Commit Hook : Validation de syntaxe
      Post-Commit Hook : svnspam
  Cycle de tests / validations terminé : merge dans la branche
  "production"



                  Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                               Whoami
                                          Reporting
                                Puppet
                                          Installation
                            En pratique
                                          Commandes utiles
                                    Fin
                                          Démos


Reporting


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




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                                Whoami
                                           Reporting
                                 Puppet
                                           Installation
                             En pratique
                                           Commandes utiles
                                     Fin
                                           Démos


Puppet Dashboard

  Interface Web simple permettant de visualiser en temps-réel l’état
  de votre infrastructure.
  Installation
  Puppet Dashboard n’est pas fourni avec PuppetMaster, il est donc
  nécessaire de l’installer séparement.

  Configuration
  Nécessite de configurer les clients pour envoyer leurs rapports
  (report = true) et de puppetmaster pour les transmetre à Puppet
  Dashboard (reports = puppet_dashboard)



                  Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                            Whoami
                                       Reporting
                             Puppet
                                       Installation
                         En pratique
                                       Commandes utiles
                                 Fin
                                       Démos


Puppet Dashboard - Ecran principal



                                             Liste des derniers nodes
                                             ayant contacté PuppetMaster
                                             Liste des derniers nodes mis à
                                             jour
                                             Graphe montrant le ratio
                                             réussite/erreurs




              Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                           Whoami
                                      Reporting
                            Puppet
                                      Installation
                        En pratique
                                      Commandes utiles
                                Fin
                                      Démos


Puppet Dashboard - Vue "Nodes"


                                            Configuration actuelle du
                                            node
                                            Informations sur les dernières
                                            executions du node
                                            Graph de la durée des
                                            dernières exécutions
                                            Liste des derniers
                                            changements effectués sur le
                                            node



             Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                           Whoami
                                      Reporting
                            Puppet
                                      Installation
                        En pratique
                                      Commandes utiles
                                Fin
                                      Démos


Puppet Dashboard - Vue "Rapports"




                                            Rapport complet sur une
                                            execution (nombre de
                                            ressources affectées, rapport
                                            intégral remonté par le node,
                                            statistiques, benchmarks ...)




             Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                               Whoami
                                          Reporting
                                Puppet
                                          Installation
                            En pratique
                                          Commandes utiles
                                    Fin
                                          Démos


Packages


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

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




                 Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                                Whoami
                                           Reporting
                                 Puppet
                                           Installation
                             En pratique
                                           Commandes utiles
                                     Fin
                                           Dé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é
Environnements
                                Whoami
                                           Reporting
                                 Puppet
                                           Installation
                             En pratique
                                           Commandes utiles
                                     Fin
                                           Dé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é
Environnements
                        Whoami
                                   Reporting
                         Puppet
                                   Installation
                     En pratique
                                   Commandes utiles
                             Fin
                                   Démos


Démos !




          Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                               Whoami
                                          Reporting
                                Puppet
                                          Installation
                            En pratique
                                          Commandes utiles
                                    Fin
                                          Démos


Puppetisation d’un système neuf

  Contraintes : Déployer rapidement un nouveau serveur intégré dans
  l’environnement existant.
  Départ : 1 serveur fraîchement installé via KickStart
      Inscription sur puppetmaster
      Puppetisation initiale
           Install & configuration NTP, SSH, Rsyslog, SNMP, Munin,
           Postfix
           Install du set de packages de base configuré
           Création des comptes sysadmin de base + dotfiles & clefs SSH
           Application des politiques de standard de hardening,
           configurations PAM
           Déploiement du /etc/sudoers standard
           Création du compte service OSSEC + clef SSH

                 Alexandre De Dommelin    Puppet Management de parc centralisé
Environnements
                               Whoami
                                          Reporting
                                Puppet
                                          Installation
                            En pratique
                                          Commandes utiles
                                    Fin
                                          Démos


Mise en place d’un système de load-balancing
  Contraintes : Déployer rapidement un système de load-balancing
  Hautement Disponible Départ : 2 micro-serveurs fraîchements
  installés via KickStart
       Inscription des 2 instances sur puppetmaster
       Puppetisation initiale
           Install & configuration NTP, SSH, Rsyslog, SNMP, Munin,
           Postfix
           Install du set de packages de base configuré
           Création des comptes sysadmin de base + dotfiles & clefs SSH
           Application des politiques de standard de hardening,
           configurations PAM
           Déploiement du /etc/sudoers standard
           Création du compte service OSSEC + clef SSH

      Rajout des modules haproxy & keepalived + paramètres
                 Alexandre De Dommelin    Puppet Management de parc centralisé
Whoami
                             Puppet
                         En pratique
                                 Fin


Questions ?




              Alexandre De Dommelin    Puppet Management de parc centralisé
Whoami
                                Puppet
                            En pratique
                                    Fin


Merci !

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




  mailto : alex at tuxz.net
  twitter / identi.ca : @adedommelin
  IRC : adedommelin (oftc/freenode)
                 Alexandre De Dommelin    Puppet Management de parc centralisé

Contenu connexe

En vedette

Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppetFedora-Fr
 
Fastlane et livraison continue sous iOS
Fastlane et livraison continue sous iOSFastlane et livraison continue sous iOS
Fastlane et livraison continue sous iOSxrb
 
Deploying Hadoop-based Bigdata Environments
Deploying Hadoop-based Bigdata Environments Deploying Hadoop-based Bigdata Environments
Deploying Hadoop-based Bigdata Environments buildacloud
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natifHenri Gomez
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcatCERTyou Formation
 
Formation Flash
Formation FlashFormation Flash
Formation Flashjplesault
 
Presentation Tomcat Load Balancer
Presentation Tomcat Load BalancerPresentation Tomcat Load Balancer
Presentation Tomcat Load Balancertarkaus
 
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 2012Yannick Quenec'hdu
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Puppet
 
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_avancesFabien 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
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdminsPuppet
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet EnterprisePuppet
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetMichael Lessard
 
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
 

En vedette (20)

Cobbler puppet
Cobbler puppetCobbler puppet
Cobbler puppet
 
Fastlane et livraison continue sous iOS
Fastlane et livraison continue sous iOSFastlane et livraison continue sous iOS
Fastlane et livraison continue sous iOS
 
Deploying Hadoop-based Bigdata Environments
Deploying Hadoop-based Bigdata Environments Deploying Hadoop-based Bigdata Environments
Deploying Hadoop-based Bigdata Environments
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcat
 
Formation Flash
Formation FlashFormation Flash
Formation Flash
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
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
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
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
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
Introduction to Puppet Enterprise
Introduction to Puppet EnterpriseIntroduction to Puppet Enterprise
Introduction to Puppet Enterprise
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
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)
 

Journées du Logiciel Libre 2011 - Puppet

  • 1. 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é
  • 2. Whoami Puppet En pratique Fin $ whoami Sysadmin @ Nestlé Nespresso SA Linuxien depuis le début des années 2000 Mainteneur de divers packages Debian, membre de la Debian Perl Team Contributeur à différents projets OpenSource Adorateur de Puppet Alexandre De Dommelin Puppet Management de parc centralisé
  • 3. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Règle 1 : Simplification Sysadmin est un travail éprouvant :-) Des dizaines voire centaines de serveurs à gérer, à la fois identiques mais différents ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 4. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Règle 2 : Oubliez les traditions $ for h in ‘cat hosts‘ ; do ssh $h apt-get install pkg ; scp my_cfg_file $h :/etc/pkg_cfg/ ssh $h /etc/init.d/pkgd reload done ; Alexandre De Dommelin Puppet Management de parc centralisé
  • 5. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Imaginez ... Pouvoir contrôler l’ensemble de vos serveurs de manière centralisée Déployer en quelques secondes de nouveaux serveurs configurés aux petits oignons et intégrés à votre système de monitoring Pouvoir vous assurer que l’ensemble de votre parc respecte vos derniers standards de configuration Pouvoir mettre à jour un package / une configuration sur l’ensemble de votre parc en quelques secondes Tout cela sans travail répétitif et de manière traçable et sécurisée ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 6. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules ... tout cela est possible ! Alexandre De Dommelin Puppet Management de parc centralisé
  • 7. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Alexandre De Dommelin Puppet Management de parc centralisé
  • 8. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Alexandre De Dommelin Puppet Management de parc centralisé
  • 9. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Couche d’abstraction entre le Sysadmin & le système Alexandre De Dommelin Puppet Management de parc centralisé
  • 10. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Couche d’abstraction entre le Sysadmin & le système DSL incluant classes, variables, selecteurs, structures conditionnelles ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 11. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Couche d’abstraction entre le Sysadmin & le système DSL incluant classes, variables, selecteurs, structures conditionnelles ... Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX, Windows ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 12. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Couche d’abstraction entre le Sysadmin & le système DSL incluant classes, variables, selecteurs, structures conditionnelles ... Multi-plateformes : Linux, Solaris, *BSD, AIX, HP-UX, OSX, Windows ... Projets similaires : CFEngine, Chef ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 13. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Généralités Logiciel libre (GNU GPL) développé par Puppet Labs Développé en Ruby Couche d’abstraction entre le Sysadmin & le système DSL incluant classes, variables, selecteurs, structures conditionnelles ... 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é
  • 14. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Architecture Architecture client / serveur Communications sécurisées over SSL (Secure Socket Layer) : Polling automatique : Client -> Serveur tcp/8140 Puppetrun : Serveur -> Client tcp/8139 Alexandre De Dommelin Puppet Management de parc centralisé
  • 15. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules PuppetMaster CA (Certification Authority) pour signer & authentifier les clients Compile le code en catalogue Serveur de distribution de fichiers Alexandre De Dommelin Puppet Management de parc centralisé
  • 16. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant Alexandre De Dommelin Puppet Management de parc centralisé
  • 17. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant 2 Premier run du daemon puppet Alexandre De Dommelin Puppet Management de parc centralisé
  • 18. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant 2 Premier run du daemon puppet 3 Génération du certificat client Alexandre De Dommelin Puppet Management de parc centralisé
  • 19. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant 2 Premier run du daemon puppet 3 Génération du certificat client 4 Envoi d’une CSR à PuppetMaster Alexandre De Dommelin Puppet Management de parc centralisé
  • 20. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant 2 Premier run du daemon puppet 3 Génération du certificat client 4 Envoi d’une CSR à PuppetMaster 5 Signature du certificat par PuppetMaster Alexandre De Dommelin Puppet Management de parc centralisé
  • 21. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation 1 Installation d’un nouvel OS minimal (incluant les packages puppet) - Ou installation des packages puppet sur un système existant 2 Premier run du daemon puppet 3 Génération du certificat client 4 Envoi d’une CSR à PuppetMaster 5 Signature du certificat par PuppetMaster 6 Puppetisation (tm) du système ! Packages Daemons Configurations Utilisateurs Permissions ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 22. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Puppetisation Alexandre De Dommelin Puppet Management de parc centralisé
  • 23. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Clients - Au quotidien Chaque client : Se connecte à intervalles réguliers au PuppetMaster Recupère le catalogue des resources Determine l’ordre dans lequel appliquer ces dernières Passe en revue l’ensemble des resources configurées, les corrige le cas échéant Envoit un rapport à PuppetMaster Alexandre De Dommelin Puppet Management de parc centralisé
  • 24. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Caractéristiques Clients - facter Utilisation de "facter" pour le rassemblement de meta-données sur le client : is_virtual : Machine physique ou virtuelle operatingsystem : Distribution utilisée operatingsystemrelease : Version de la distribution ip_adresss : Adresse IP de la machine uptime : Uptime selinux : Extensions SELinux activées ou non ... Alexandre De Dommelin Puppet Management de parc centralisé
  • 25. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Langage Basé sur Ruby Langage déclaratif Abstraction : "user" et non "/etc/passwd" et/ou "/etc/shadow" Vous specifiez la configuration, Puppet se charge de l’implémentation Pensez QUOI et non COMMENT Alexandre De Dommelin Puppet Management de parc centralisé
  • 26. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un package - Old School apt-get install perl Alexandre De Dommelin Puppet Management de parc centralisé
  • 27. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un package - Old School apt-get install perl ou : yum install perl Alexandre De Dommelin Puppet Management de parc centralisé
  • 28. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un package - Old School apt-get install perl ou : yum install perl ou encore : ports install perl Alexandre De Dommelin Puppet Management de parc centralisé
  • 29. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un package - Old School apt-get install perl ou : yum install perl ou encore : ports install perl voire même : emerge perl Et également aussi : rpm -Uvh perl.xxx.rpm, up2date perl, fink install perl, pkg_add perl, pkg-get perl ... Pas facile d’avoir un script efficace dans un environnement hétérogène ! ! Alexandre De Dommelin Puppet Management de parc centralisé
  • 30. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un package - Puppet Style Alexandre De Dommelin Puppet Management de parc centralisé
  • 31. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un service - Old School Alexandre De Dommelin Puppet Management de parc centralisé
  • 32. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Installation d’un service - Puppet Style Alexandre De Dommelin Puppet Management de parc centralisé
  • 33. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Ressources Liste (non exhaustive) des ressources supportées par Puppet : Utilisateurs & Groupes Packages Services Fichiers / Dossiers Crontabs Points de montages Nagios Hosts files SELinux Clés SSH Alexandre De Dommelin Puppet Management de parc centralisé
  • 34. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Packages Plus de 20 fournisseurs de packages supportés Couche d’abstraction pour l’OS cible Plusieurs états disponibles : absent, present, latest Upgrade facile : remplacement de present par latest Alexandre De Dommelin Puppet Management de parc centralisé
  • 35. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Services Supporte 10 types de framework d’Init Couche d’abstraction pour l’OS cible Permet un controle granulaire (démarré au boot, surveillance du statut...) Système de notification permettant de reloader un service si un de ses fichiers de configuration a été mis à jour. Alexandre De Dommelin Puppet Management de parc centralisé
  • 36. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Fichiers / Dossiers Gestion des permissions et appartenances Possibilité de déployer des fichiers "statiques" ou adaptés au système cible par le biais de templates ERB Supporte plusieurs types de checksum pour les vérifications d’intégrité Supporte la création de liens symboliques Alexandre De Dommelin Puppet Management de parc centralisé
  • 37. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Un node ? Décrit un client Possède un certain nombre de modules qui lui sont appliqués Peut hériter des propriétés d’un autre node Node "default" s’appliquant à l’ensemble des clients n’ayant pas de node configuré. Support d’expressions régulières pour la sélection de plusieurs clients "similaires" Alexandre De Dommelin Puppet Management de parc centralisé
  • 38. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Un module ? Collection de classes, definitions (fonctions) et de ressources Alexandre De Dommelin Puppet Management de parc centralisé
  • 39. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Un module ? Collection de classes, definitions (fonctions) et de ressources Portable Alexandre De Dommelin Puppet Management de parc centralisé
  • 40. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Un module ? Collection de classes, definitions (fonctions) et de ressources Portable Autonome Alexandre De Dommelin Puppet Management de parc centralisé
  • 41. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin 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é
  • 42. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Exemple de module simple : snmp snmp/manifests/init.pp : snmp/files/snmpd.conf : Alexandre De Dommelin Puppet Management de parc centralisé
  • 43. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Module simple : snmp - Problématiques Actions réalisées Installation du paquet net-snmp Déploiement du fichier de configuration standard Activation du service snmpd et rechargement de ce dernier en cas de mise à jour du fichier de configuration Problème La disponibilité du package "net-snmp" dépend de la distribution utilisée. Il est donc impossible d’utiliser ce module dans le cadre d’un environnement hétérogène (Debian + RedHat par exemple). Alexandre De Dommelin Puppet Management de parc centralisé
  • 44. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Module simple : snmp - Le retour Alexandre De Dommelin Puppet Management de parc centralisé
  • 45. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules StoreConfigs Option de puppetmasterd Principale application : Exportation de resources Alexandre De Dommelin Puppet Management de parc centralisé
  • 46. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Exportation de ressources ? Echange d’informations entre nodes Configurer un node en fonction d’un autre node Alexandre De Dommelin Puppet Management de parc centralisé
  • 47. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Exportation : Exemple 1 Alexandre De Dommelin Puppet Management de parc centralisé
  • 48. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Exportation : Exemple 2 Alexandre De Dommelin Puppet Management de parc centralisé
  • 49. Introduction Whoami Architecture Puppet Langage En pratique Resource Abstraction Layer (RAL) Fin Nodes & Modules Exportation : Auto-configuration de Nagios Utilise le type "Nagios" natif présent dans Puppet Définition d’un host / service sur le serveur Nagios, basé sur les caractéristiques de votre serveur à monitorer Aucune action manuelle ! Alexandre De Dommelin Puppet Management de parc centralisé
  • 50. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Environnements Tester en évitant les effets indésirables Alexandre De Dommelin Puppet Management de parc centralisé
  • 51. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Environments Support natif d’environnements muliples Process QA : Développer, tester & valider avant de déployer les changements en production Traçabilité : Intégration avec un VCS (subversion, git ...) Par défaut, utilisation de l’environnement "production" Bascule entre environnements Forcer manuellement un client à récupérer le catalogue d’un environnement spécifique : $ /usr/sbin/puppetd –environment=<nom_environnement> –test Alexandre De Dommelin Puppet Management de parc centralisé
  • 52. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Intégration avec Subversion 2 environnements : Development : "trunk" subversion Production : branche séparée Modifications sur l’environnement "development" puis commitées dans le trunk : Pre-Commit Hook : Validation de syntaxe Post-Commit Hook : svnspam Cycle de tests / validations terminé : merge dans la branche "production" Alexandre De Dommelin Puppet Management de parc centralisé
  • 53. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Reporting Comment savoir ce qui se passe sur mon infra maintenant que tout est automatisé ? Alexandre De Dommelin Puppet Management de parc centralisé
  • 54. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Puppet Dashboard Interface Web simple permettant de visualiser en temps-réel l’état de votre infrastructure. Installation Puppet Dashboard n’est pas fourni avec PuppetMaster, il est donc nécessaire de l’installer séparement. Configuration Nécessite de configurer les clients pour envoyer leurs rapports (report = true) et de puppetmaster pour les transmetre à Puppet Dashboard (reports = puppet_dashboard) Alexandre De Dommelin Puppet Management de parc centralisé
  • 55. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Puppet Dashboard - Ecran principal Liste des derniers nodes ayant contacté PuppetMaster Liste des derniers nodes mis à jour Graphe montrant le ratio réussite/erreurs Alexandre De Dommelin Puppet Management de parc centralisé
  • 56. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Puppet Dashboard - Vue "Nodes" Configuration actuelle du node Informations sur les dernières executions du node Graph de la durée des dernières exécutions Liste des derniers changements effectués sur le node Alexandre De Dommelin Puppet Management de parc centralisé
  • 57. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Puppet Dashboard - Vue "Rapports" Rapport complet sur une execution (nombre de ressources affectées, rapport intégral remonté par le node, statistiques, benchmarks ...) Alexandre De Dommelin Puppet Management de parc centralisé
  • 58. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Packages PuppetMaster RedHat / CentOS & Derivés (EPEL) : yum install puppet puppetmaster Debian & Dérivés : apt-get install puppet puppetmaster Puppet Node RedHat / CentOS & Derivés (EPEL) : yum install puppet Debian & Dérivés : apt-get install puppet Alexandre De Dommelin Puppet Management de parc centralisé
  • 59. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Dé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é
  • 60. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Dé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é
  • 61. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Démos ! Alexandre De Dommelin Puppet Management de parc centralisé
  • 62. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Puppetisation d’un système neuf Contraintes : Déployer rapidement un nouveau serveur intégré dans l’environnement existant. Départ : 1 serveur fraîchement installé via KickStart Inscription sur puppetmaster Puppetisation initiale Install & configuration NTP, SSH, Rsyslog, SNMP, Munin, Postfix Install du set de packages de base configuré Création des comptes sysadmin de base + dotfiles & clefs SSH Application des politiques de standard de hardening, configurations PAM Déploiement du /etc/sudoers standard Création du compte service OSSEC + clef SSH Alexandre De Dommelin Puppet Management de parc centralisé
  • 63. Environnements Whoami Reporting Puppet Installation En pratique Commandes utiles Fin Démos Mise en place d’un système de load-balancing Contraintes : Déployer rapidement un système de load-balancing Hautement Disponible Départ : 2 micro-serveurs fraîchements installés via KickStart Inscription des 2 instances sur puppetmaster Puppetisation initiale Install & configuration NTP, SSH, Rsyslog, SNMP, Munin, Postfix Install du set de packages de base configuré Création des comptes sysadmin de base + dotfiles & clefs SSH Application des politiques de standard de hardening, configurations PAM Déploiement du /etc/sudoers standard Création du compte service OSSEC + clef SSH Rajout des modules haproxy & keepalived + paramètres Alexandre De Dommelin Puppet Management de parc centralisé
  • 64. Whoami Puppet En pratique Fin Questions ? Alexandre De Dommelin Puppet Management de parc centralisé
  • 65. Whoami Puppet En pratique Fin Merci ! Présentation bientôt disponible (après un café) sur http ://www.tuxz.net/blog/ mailto : alex at tuxz.net twitter / identi.ca : @adedommelin IRC : adedommelin (oftc/freenode) Alexandre De Dommelin Puppet Management de parc centralisé