THÈME TECHNIQUE - ADMINISTRATION SYSTÈME La gestion de configuration à la portée de tous avec Rudder Jonathan CLARKE - jcl@
Qui suis-je? Jonathan Clarke Job : Co-fondateur et directeur technique de Normation Métier : D'abord administration système, gestion d'infrastructures Maintenant plein d'autres choses! Logiciel libre : Contributeur OpenLDAP, CFEngine, LSC, LTB... Contacts Mail : jcl@ Twitter : @jooooooon42 (ca fait 7 'o', mais c'est pas ma faute...) 2
Qui suis-je? Nicolas Charles Job : Co-fondateur et Président de Normation Métier : D'abord développeur Maintenant plein d'autres choses! Dont remplacement de speaker à la dernière minute Logiciel libre : Contributeur CFEngine, développeur Rudder Contacts Mail : nch@ Twitter : @nico_charles 3
De quoi parle-t-on? Un service IT cycle de vie Cahier des charges Environnement dév Changement Bonnes pratiques Règles de sécurité Environnement intég/test/qa Environnement prod Changement Changement Les enjeux au niveau d'un parc De 1 service à... 10, 100, 1000! Disaster recovery Prouver la conformité 4
Les trois approches de la configuration 1. L'artisanat 2. La duplication 3. La gestion centrale Configuration à la main, aux «petits oignons» Une installation «parfaite», reproduite à l'identique Configuration automatique, pilotée depuis un point Adaptable à chaque besoin Solution sur mesure Attention au détail Gain de temps à partir du deuxième déploiement Environnements identiques Problème d'échelle La répétition n'est pas un point fort des humains Partage du savoir Adaptation des paramètres Gestion des changements Compatibilité des formats d'image Contrôle centralisé Gestion des changements Vérification et reporting Partage du savoir Agent sur chaque serveur Montée en compétences Complexité des opérations accrue ÉVOLUTION 5
Gestion de configuration : avantages Reproductibilité Industrialisation Automatisation Documentation Historisation Capitalisation du savoir Gestion de configuration Vigilance Réparations automatiques Maîtrise Alertes Formalisation Reporting 6
Les outils de gestion de configuration Solutions open source existantes CFEngine 1 CFEngine 2 Puppet CFEngine 3 Chef 1993 2002 2005 2009 Leurs origines Solutions propriétaires BMC BladeLogic (2001) HP Opsware (2002) IBM Tivoli CA Unified Automation Puppet Enterprise 7
Les solutions open source existantes Quelques différences... Technologie C Ruby on Rails Ruby Sécurité 4 vulnérabilités en 19 ans 16 vulnérabilités en 7 ans? Configuration Langage dédié Langage dédié Ruby GPL Apache Apache Licence 8
Les solutions open source existantes...et beaucoup de points communs Origines communes Interface CLI (ligne de commande) Conçu spécifiquement pour la gestion de configuration Montée en compétence non négligeable Modèle client-serveur (parfois optionnel)? Reporting manuel ou non synthétique 9
Les solutions open source existantes Comparaison (rapide) des langages (et sûrement fausse) packages: "rabbitmq-server" package_policy package_version => => "addupdate", "2.8.2-1"; package "rabbitmq-server" do action :upgrade version "2.8.2-1" end package { "rabbitmq-server": ensure => "2.8.2-1" } 10
Le projet Rudder : objectifs Faciliter la gestion de configuration et propager son utilisation Baisser le coût d'entrée pour apprendre et utiliser la gestion de configuration Utilisation simplifiée Puissance conservée Étendre les bénéfices de la gestion de configuration à une population plus large Managers Sysadmins juniors Non experts 11
Rudder points clés Conçu spécifiquement pour la gestion de configuration Basé sur CFEngine, standard depuis 1993 Inventaire automatique (matériel et logiciel) Multi-plateforme (paquets pour chaque OS) Expérience utilisateur simplifiée (interface web) Reporting graphique Bibliothèque de best practices incluse Open Source 12
Rudder principe de fonctionnement Nouveaux nœuds Inventaire Interface web du serveur Rudder Voir inventaire du nœud Créer groupes de nœuds (statique, dynamique) Configurer des règles sur les groupes Visualiser l'état de l'infrastructure Politique CFEngine Rapports Noeuds gérés 13
Rudder aperçu de l'interface web 14
Rudder aperçu de l'interface web 15
Rudder aperçu de l'interface web 16
Rudder aperçu de l'interface web 17
Rudder aperçu de l'interface web 18
Rudder workflow c c Communauté Expert Techniques Nœuds Implémentées en syntaxe CFEngine + variables pour la configuration web Critères de recherche sur les données d'inventaire Hardware/OS/Réseau Software Nom du nœud... Directives Groupes Décideur Règles Appliquer des Directives à un Groupe Administrateurs 19
Rudder le projet open source Créé en 2009 Octobre 2011 : Première version publique (2.3) Juillet 2012 : Deuxième version majeure (2.4) Technologies principales : CFEngine, Scala Communauté Développeurs temps plein : 8 (chez Normation) Contributeurs officiels : 4 Autres membres : ~10 Liens clés : Site communautaire : http://www.rudder-project.org Code source : http://github.com/normation/ IRC : #rudder sur Freenode Twitter : @RudderProject 20
Questions? Pour en savoir plus pendant les RMLL Atelier à 16:20 aujourd'hui! (Uni Mail 2170) Suivez-nous sur Twitter! @RudderProject