GESTION D INFRASTRUCTURE AVEC PUPPET



Documents pareils
Automatisation de l administration système avec

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Gestion de configuration

Automatisation de l administration système

Gérer ses environnements de développement avec Vagrant RMLL 2012

Puppet - l infrastructure automatisée

L'automatisation open source pour SI complexes

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Gestion des journaux

Puppet : Solution de gestion de fichier de configuration - Dei...

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Machine virtuelle W4M- Galaxy : Guide d'installation

Installation et Configuration Centralisées et Automatisées d une Ferme de Serveur sous SLC6

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Dans le cadre de SECURIDAY Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Gestion d identités PSL Installation IdP Authentic

REPARTITION DE CHARGE LINUX

Supervision système et réseau avec Zabbix. Anne Facq Centre de Recherche Paul Pascal 17 avril 2008

L annuaire et le Service DNS

BTS SIO Dossier BTS. PURCHLA Romain

Virtualisation Vserver et OpenVz en entreprise

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

Le serveur web Apache

JOMARON Sébastien BTS SIO 2012/2014. Titre de l activité: Surveiller des hôtes et des services avec NAGIOS

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Guide Installation Serveur Extensive Testing

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Tutoriel compte-rendu Mission 1

La haute disponibilité dans la vraie vie

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Installation de Zabbix

Gestion d identités PSL Exploitation IdP Authentic

NACIRI Mehdi. Rapport de stage : Mise en place d un moyen pour anticiper les pannes des serveurs de l IUT. Promotion BTS SIO Option SISR

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Guide Installation Serveur Extensive Testing

application Chouette -

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

Le protocole FTP (File Transfert Protocol,

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Installation GLPI-OCSNG-SSL Linux Debian Sarge

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

Virtualisation et le hosting. Christophe Lucas Sébastien Bonnegent rouen.fr>

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Serveur de messagerie sous Debian 5.0

C O M P E T E N C E S

Configurer la supervision pour une base MS SQL Server Viadéis Services

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Installation de Smokeping sur Debian

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Chapitre VIII : Journalisation des événements

Architecture de serveurs virtualisés pour la communauté mathématique

Raspberry pi : Développer une petite application web sur Raspberry

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Eyes Of Network 4.0. Documentation d installation et de configuration

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

Table des matières. Date : Version : 29/06/ Objet : OpenVas 6.0

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Devoir Surveillé de Sécurité des Réseaux

PPE Installation d un serveur FTP

GOUTEYRON ALEXIS. SIO2 N candidat: UEpreuve E4. USituation professionnelle 2. serveurs de fichiers. Uen haute disponibilité

Préparation d un serveur Apache pour Zend Framework

Nagios 3 pour la supervision et la métrologie

AUTHENTIFICATION MANAGEMENT

TP LINUX Travaux avec Debian ETCH

Plesk Automation. Questions techniques fréquemment posées

Syslog et outils de supervision

Un serveur web léger et ouvert

DOCUMENTATION ADMINISTRATEUR

Bacula R - The Network Backup Solution

sshgate Patrick Guiran Chef de projet support

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

Pratique et administration des systèmes

Installation d'un serveur FTP géré par une base de données MySQL

Forfaits de gestion iweb Listes des services et des logiciels pris en charge

Les différentes méthodes pour se connecter

Statistiques réseau et système avec CACTI

Table des matières Hakim Benameurlaine 1

Tour des Unités du C.I.A.M. Tour des Unités du C.I.A.M. Maurice Baudry Laboratoire Statistique & Génome, Évry.

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Bind, le serveur de noms sous Linux

Serveur Subversion Debian GNU/Linux

Architecture distribuée

UE5A Administration Réseaux LP SIRI

INTRODUCTION AUX SGBD/R LUW

TP Service HTTP Serveur Apache Linux Debian

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Documentation technique Nagios

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Installation d'un serveur sftp avec connexion par login et clé rsa.

Problématique. Techniques générales. Déploiement Windows. Déploiement Linux. Déploiement Mac OS X. Applications Windows. Applications Linux

Réseaux. 1 Généralités. E. Jeandel

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

Installation d un Serveur de Messagerie

Transcription:

GESTION D INFRASTRUCTURE AVEC PUPPET Séminaire RAISIN du 27/05/2010 Florent Paillot & Christophe Delalande INRIA Bordeaux - Sud-Ouest

Sommaire 2 Qu est ce que Puppet? Pourquoi faire Avantages/Inconvénients Architecture Installation Fonctionnement Organisation Présentation du langage Bonnes pratiques Bilan

Qu est ce que Puppet? 3 Un outil de gestion automatique de configuration Amener et maintenir un système dans un état désiré (rôle) à partir association nom de machine/recette(s) Basé sur une architecture client/serveur Multi-plateformes (Linux, Unix, Windows en préparation) Écrit en Ruby Utilise un langage déclaratif Développé par Luke Kanies et PuppetLabs sous GPLv2 Concurrents: cfengine, bcfg2, lcfg, chef

Pourquoi faire (1)? 4 Eviter les tâches répétitives : on ne fait le travail de configuration qu une seule fois Permettre une configuration homogène de parc S'assurer que les machines conservent leur configuration

Pourquoi faire (2)? 5 Déploiement rapide de machine Sécurité Plus facile de déployer massivement un durcissement Écart par rapport à la cible reporting et remise en état Brique d'une base de gestion des configurations (CMDB ITIL)

Puppet / Pro (1) 6 Orienté administration système Couche d abstraction de ressources services, paquets, fichiers, utilisateurs, cron, Facter Configuration puissante (tests conditionnels, dépendance, héritage, template, ) Code compact et lisible

Puppet / Pro (2) 7 L indisponibilité du serveur n est pas bloquante Rentrer/sortir dans le système Puppet = installer/supprimer le daemon client Extensible : on peut commencer par ne gérer que quelques paramètres/fichiers, puis accroître la surface progressivement. Développement et communauté actifs

Puppet / Cons 8 Ticket d entrée Pas forcément adapté à tous les services Intérêt faible en dessous d'une taille critique Permet de se tirer une balle rafale dans le pied

Architecture 9 Serveur : puppetmasterd TCP/8140 Utilisateur "puppet" Communications chiffrées PKI intégrée Serveur de fichiers Client : puppetd Se connecte au serveur toutes les 30 mn Utilisateur "root"

Architecture 10

Composants 11 facter S exécute sur le client Renvoi couple attribut/valeur => facts architecture => x86_64 fqdn => puppet.bordeaux.inria.fr hostname => puppet operatingsystem => CentOS operatingsystemrelease => 5.5 kernelversion => 2.6.18 puppetca Utilitaire pour approuver les certificats clients

PKI 12 Puppet utilise une PKI pour sécuriser les échanges entre le serveur et le client Les clients demandent la signature de leur certificat Possibilité d utiliser une liste de révocation

PKI: schéma 13

Installation 14 Fedora/CentOS/RedHat yum install puppet puppetmaster Utiliser le dépôt EPEL Debian/Ubuntu apt-get install puppet puppetmaster Ruby gem gem install puppet -y

Commandes 15 Démon puppet /etc/init.d/puppet(master) start stop restart puppetca (client)# puppetd --server <server-name> --waitforcert 60 --test --d (serveur)# puppetca --list (serveur)# puppetca --sign <client-name> Debug puppet(master)d --test -d -v

Fonctionnement de Puppet 16 node.bordeaux.inria.fr puppet.bordeaux.inria.fr Puppetd Puppetmasterd Facter Requête du client Facts Compilation du catalogue Applications des ordres Système Catalogue des ordres Fichiers/Templates Rapport

Organisation des fichiers 17 Configuration /etc/puppet/puppet.conf (client & serveur) Cœur du système /etc/puppet/manifest/site.pp (serveur)

Modules 18 Un module est un ensemble logique de composants dédiés à un sous-système particulier 3 types de composants: Des manifests (*.pp) écrits en "langage Puppet" Des fichiers de configuration (ex: sshd_config) Des templates (*.erb) Conçus pour être portables

Les manifests 19 Le dossier manifests/ contient un ou plusieurs fichiers manisfest (extension.pp) Le fichier init.pp est le premier fichier traité. Il peut appeler d autres fichier via import

Le langage Puppet 20 Les concepts Ressources Classes Variables Nodes Définitions Templates

Ressources 21 Un élément que Puppet sait configurer file (contenu, permissions, propriétaire) package (présence ou absence) service (activation/désactivation, démarrage/arrêt) exec (exécution commande) Et aussi cron, group, host, user, yumrepo, mount, sshkey

Ressources: exemple 22 Type package { "openssh-server": ensure => installed } file { "/etc/ssh/sshd_config": path => "/etc/ssh/sshd_config", owner => root, group => root, mode => 700, require => Package["openssh-server"], source => ["puppet:///ssh/sshd_config.${hostname}"], }

Classes 23 Un ensemble nommé de ressources Instance unique pour un hôte Peut inclure ou hériter d'autres classes class ssh::server { include linuxserver package { "openssh-server": ensure => installed } }

Classes : héritage 24 Permet d'hériter des valeurs définies dans la classe parente Intéressant pour modifier des attributs de la classe parente ou pour surcharger ses attributs Sinon, préférer l'inclusion class unix { file ["etc/passwd","/etc/shadow"] { group => root } file {"etc/group" : group => root } } class freebsd inherits unix { File["/etc/passwd","/etc/shadow"] { group => wheel } }

Variables 25 Possède une valeur valable dans une espace de nom Surcharge $server = «primary» Class master { file {«/etc/serveur.conf»: content => «$server», ensure => present,} } Class slave { $server= «secondary» include master }

Nodes 26 Un bloc de configurations applicable à un client Peut contenir des ressources, définitions, classes node ldap1.inria.fr' { $log_type = "local" $puppet_env = "production" include server::debian include server::debian::ldap } }

Définitions 27 Ensemble de ressources Pouvant avoir plusieurs instances pour un même hôte Ex: virtualhost apache

Définitions: exemple 28 node srvweb1.bordeaux.inria.fr { define apache::vhost-ssl ( $ensure=present, $ip_address="*", $cert=false, $certkey=false, $cacert=false, $certchain=false, $sslonly=false, ) include apache apache::vhost-ssl { «site1.bordeaux.inria.fr": ensure => present, ip_address => «X.X.X.X", cert => "puppet:///apache/ssl-certs/site1.inria.fr.pem", certkey => "puppet:///apache/ssl-certs/site1.inria.fr.key", cacert => "puppet:///apache/ssl-certs/chain-tcs.pem", } apache::vhost-ssl { «site2.bordeaux.inria.fr": ensure => present, ip_address => «X.X.X.X", cert => "puppet:///apache/ssl-certs/site2.inria.fr.pem", certkey => "puppet:///apache/ssl-certs/site2.inria.fr.key", cacert => "puppet:///apache/ssl-certs/chain-tcs.pem }

Templates 29 Fichier à contenu dynamique Contient du code Ruby (.erb) "Debian": { $nrpedir } "CentOS": { $nrpedir } = "/etc/nagios/" = "/etc/nagios/" Nrpe.cfg.erb include=<%= nrpedir %>nrpe_command.cfg

Bonnes pratiques 30 Gestion de versions Surveillez votre infrastructure Passez de webrick à Mongrel ou Passenger Documentez!

Bonnes pratiques: versionning 31 Utilisez des outils tels que Subversion,Git, etc. Utilisez des branches : [testing] Production Test manifest = /var/lib/puppet/testing/manifests/site.pp modulepath = /var/lib/puppet/testing/modules/ pluginpath = /var/lib/puppet/testing/plugins/ [production] manifest = /var/lib/puppet/production/manifests/site.pp modulepath = /var/lib/puppet/production/modules/ pluginpath = /var/lib/puppet/production/plugins

Bonnes pratiques: surveillance 32 Les logs Nagios, RRD Les mails PuppetDashboard

Bonnes pratiques: surveillance 33 Les logs debug: Finishing transaction 23474806028980 with 0 changes debug: Storing state debug: Stored state in 0.12 seconds warning: Value of 'preferred_serialization_format' (pson) is invalid for report, using default (marshal) debug: report supports formats: b64_zlib_yaml marshal raw yaml; using marshal notice: Finished catalog run in 4.52 seconds

Bonnes pratiques: surveillance 34 Les logs Nagios, RRD Les mails PuppetDashboard

Bonnes pratiques: surveillance 35 Nagios, RRD

Bonnes pratiques: surveillance 36 Les logs Nagios, RRD Les mails PuppetDashboard

Bonnes pratiques: surveillance 37 Les mails From: root@puppet.bordeaux.inria.fr Subject: Puppet Report for pinocchio.bordeaux.inria.fr To: root@puppet2.bordeaux.inria.fr Date: Mon, 29 Mar 2010 16:16:16 +0200 (CEST) Mon Mar 29 16:16:16 +0200 2010 //ssh::server/sshd_config[puppet]/file[/etc/ssh/sshd_config] (err): Failed to retrieve current state of resource: Could not retrieve information from source(s) puppet:///ssh/sshd_config.pinocchio, puppet:///ssh/sshd_config at /var/lib/puppet/production/modules/ssh/manifests/init.pp:58

Bonnes pratiques: surveillance 38 Les logs Nagios, RRD Les mails PuppetDashboard

Bilan 39 Déployé à l'inria Bordeaux depuis Avril 2009 Une refonte en cours 55 machines (serveurs & postes de travail) gérées Centos, Debian, Ubuntu Physique, Xen, OpenVZ Services Dépots (yum, apt-get), ssh, ntp, postfix, logwatch, apache, php, nagios, autofs, nut et puppet

Liens 40 Site PuppetLabs http://www.puppetlabs.com Site Github http://github.com Livre: Pulling String with Puppet http://apress.com/book/view/1590599780