Automatisation de l administration système



Documents pareils
PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Automatisation de l administration système avec

Puppet - l infrastructure automatisée

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

GESTION D INFRASTRUCTURE AVEC PUPPET

Gestion de configuration

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

Simplifier l authentification avec Kerberos

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Table des matières Hakim Benameurlaine 1

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Le cloud computing au service des applications cartographiques à haute disponibilité

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

sshgate Patrick Guiran Chef de projet support

VAGRANT POUR LES DÉVELOPPEURS

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Serveurs de noms Protocoles HTTP et FTP

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

Statistiques réseau et système avec CACTI

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Haute disponibilité avec PostgreSQL

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

JOSY. Paris - 4 février 2010

L'automatisation open source pour SI complexes

DOMAIN NAME SYSTEM. CAILLET Mélanie. Tutoriel sur le DNS. Session Option SISR

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

Notes de cours : bases de données distribuées et repliquées

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

Cisco Certified Network Associate

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Système Principal (hôte) 2008 Enterprise x64

DSI - Pôle Infrastructures

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

Les modules SI5 et PPE2

Un exemple de cloud au LUPM : Stratuslab

Active Directory. Structure et usage

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

BES WEBDEVELOPER ACTIVITÉ RÔLE


Module BD et sites WEB

Retour d expérience sur Prelude

Environnements de développement (intégrés)

Chapitre 1 Windows Server

Groupe Eyrolles, 2004 ISBN :

Architecture de la plateforme SBC

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Environnements de Développement

DenyAll Detect. Documentation technique 27/07/2015

Système de Stockage Sécurisé et Distribué

Les stratégies de groupe (GPO) sous Windows Server 2008 et 2008 R2 Implémentation, fonctionnalités, dépannage [2ième édition]

Serveur Subversion Debian GNU/Linux

Déployer des applications Perl

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

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

DOCKER MEETUP. Christophe Labouisse

RMI le langage Java XII-1 JMF

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

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Joomla! Création et administration d'un site web - Version numérique

PRO CED U RE D I N STALLATI O N

Mise en œuvre des serveurs d application

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Spécialiste Systèmes et Réseaux

Personnes ressources Tice. Académie de Rouen

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Chapitre IX : Virtualisation

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Les systèmes de gestion de version

Automatiser le Software-Defined Data Center avec vcloud Automation Center

SSH et compagnie : sftp, scp et ssh-agent

Supervision de réseau

Projet Administration Réseaux

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Patrons de Conception (Design Patterns)

ECLIPSE ET PDT (Php development tools)

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

Guide Installation Serveur Extensive Testing

Analyse de performance, monitoring

Windows Server 2012 R2 Administration

DMZ... as Architecture des Systèmes d Information

Gestion d identités PSL Exploitation IdP Authentic

Gestion de clusters de calcul avec Rocks

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Open Source Job Scheduler. Installation(s)

Configuration de plusieurs serveurs en Load Balancing

Mise en place d un firewall d entreprise avec PfSense

INFO-F-309 Administration des Systèmes. TP7: NFS et NIS. Sébastien Collette Résumé

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Polux Développement d'une maquette pour implémenter des tests de sécurité

Installation de Smokeping sur Debian

Formations Evolix Catalogue

Contrôle d accès Centralisé Multi-sites

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Administration Linux - FTP

Transcription:

Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications Utilisation dans un service informatique pierre.gambarotto@.fr

Problématique : pourquoi plus de systèmes à gérer? plus de services à gérer applications web : transfert du coût de gestion du poste client au serveur complexité des infrastrucutres : environnements de prod, pré-prod, test, dev généralisation du poste client Les solutions triviales et leurs inconvénients : acheter des machines supplémentaires : coût en argent, mauvaise utilisation des ressources matérielles installer les nouveaux services sur des systèmes existant : adhérence des applications, frein à la mise à jour : coût maintenance/sécurité, mauvaise utilisation des ressources humaines Rationalisation des architectures plus simple de gérer un système avec un nombre réduit de services (1!) virtualisation des systèmes : meilleure utilisation des ressources matèrielles cloud/hébergement : plus de ressources matérielle

Chaque système

Les solutions techniques pour automatiser

classification en 3 couches

Installer le système de base 2 grandes catégories : machine réelle machine virtuelle : at home et cloud Prérequis : accès à la machine physique ou accès authentifié au socle (ou compte pour le cloud) Résultat : un système configuré, administrable par accès réseau Gestion par prototype : installer un nouveau système à partir de la sauvegarde d un ancien ne gère pas les évolutions : dérive des configurations la configuration est à faire à chaque fois manuellement

Configurer/mettre à jour scripter la configuration d un système, une configuration = un script Prérequis système configuré, accessible par le réseau un compte administrateur sur le système Résultat gérer plusieurs systèmes similaires avec la même configuration automatiser certaines mises à jour rassembler dans un même endroit la description de tout le parc passage de gestion de machine à gestion de parc automatisation de l intégration avec la supervision

Déploiement d applications délégué à un tiers Déléguer une partie de la gestion d un système à un tiers Cas typique : application web serveur http, serveur BD : installation, configuration et mises à jour gérées par une personne déploiements gérés par une autre personne Prérequis serveur(s) installé(s) et configuré(s) séparation des comptes d administrateur système et déploiement d application Résultat bonne entente des Administrateurs Systèmes et des Développeurs gestion d architecture de déploiement complexes

Études d exemples Puppet : gestion de configuration Capistrano : déploiement d applications

Puppet: gestion de configuration architecture client/serveur configuration : décrite avec un DSL configuration : implémentation de ressources ressources : package, file, exec, service

Puppet: DSL DSL : une configuration est exprimée dans un langage spécifique Ressource : brique de base 1 2 3 4 5 type de la ressource : fixe les paramètres de configuration réaliser la ressource : donner une valeur aux paramètres file { "/etc/passwd": # nom unique donné à la ressource owner => root, # paramètre owner, valeur donnée : root group => root, mode => 644 Type de ressources File : gestion de fichier, le contenu d un fichier peut être défini par un template. Le serveur puppetmasterd sert de serveur de fichier. Exec : exécution de script Package : installation de paquetage User : définition d utilisateur bien d autres disponibles extensible

Langage complet 1 2 3 4 5 6 7 8 9 $ssh = $operatingsystem? { # $operatingsystem : remonté par facter (redhat fedora) => 'openssh-server', (debian ubuntu) => 'ssh', default => 'openssh' package { $ssh: # $ssh est la variable définie ci-dessus ensure => installed, variables, conditionnelles, gestion de chaînes de caractères, tableaux de valeurs sur le client, facter collecte des données exposées sous forme de variables.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Gestion des dépendances entre les ressources file { '/etc/ssh/sshd_config': source => 'puppet:///modules/sshd/sshd_config', # on récupère le contenu du fichier sur le serveur owner => 'root', group => 'root', mode => '640', notify => Service['sshd'], # redémarage de sshd après changement de ce fichier require => Package[$ssh], # on force l'ordre de résolution, le paquetage avant le fichier de configuration service { 'sshd': ensure => running, enable => true, # actif au boot de la machine hasstatus => true, hasrestart => true,

Puppet : organisation des descriptions par défaut : les ressource sont réalisées sur tous les clients puppet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 node 'machine.domaine.tld' { # restriction de la réalisation de # ressources à un système spécifique class NomClasse { # Définit un espace de nommage include NomClasse # réalisation des ressources définies dans la classe define mon_type($var1, $var2) { # définition d'une collection de ressources # utilisant var1 et var2 mon_type { nom : # réalisation du type personnalisé mon_type var1 => valeur, var2 => valeur

Configuration d un produit complet ensemble de classes et de types de ressources personnalisés définition d une collection de ressources fichiers et template définissant le contenu des ressources File Module distribution de la configuration d un produit complet par exemple : un serveur Apache et un site virtuel un serveur de base de données et une base un serveur ldap maître et un serveur ldap esclave

Kerberos Serveur esclave : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 node 'krb-slave.enseeiht.fr' { include kerberos $kerberos_realm="inp-toulouse.fr" kerberos::server{$kerberos_realm: master => "krb-master.enseeiht.fr", password => "...", domains => ["enseeiht.fr", ".enseeiht.fr", "ensat.fr", ".ensat.fr", "ensiacet.fr", ".ensiacet.fr","inp-toulouse.fr", ".inp-toulouse.fr"], default_domain => "inp-toulouse.fr" # extrait, manque conf des principaux kerberos

Kerberos Serveur maître : 1 2 3 4 5 6 7 8 9 10 11 12 13 node 'krb-master.enseeiht.fr' { include kerberos $kerberos_realm="inp-toulouse.fr" kerberos::server{$kerberos_realm: password => "...", domains => ["enseeiht.fr", ".enseeiht.fr", "ensat.fr", ".ensat.fr", "ensiacet.fr", ".ensiacet.fr","inp-toulouse.fr", ".inp-toulouse.fr"], default_domain => "inp-toulouse.fr" # extrait, manque conf des principaux kerberos

Kerberos : export de ressource des esclaves vers le maître 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class kerberos # extrait define server($realm="", $password, $domains="", $master=true, $default_domain="") { case $master { true: { # définition config pour le serveur maître default:{ # slave server with master defined @@file{"/etc/krb5kdc/$realm_real/servers/$fqdn": tag => "kerberos_$realm_real", ensure => present, owner => root, group => root, mode => 640,... other stuff Gestion de parc @@file{... : ressource définie sur un client puppet, réalisée sur un autre client puppet les constituants définissant la ressource (ici de type File) sont stockés sur le serveur

Kerberos : réalisation de la ressource définie sur les esclaves sur le maître : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class kerberos # extrait define server($realm="", $password, $domains="", $master=true, $default_domain="") { case $master { true: { File << tag == "kerberos_$realm_real" >>{ # other stuff default:{ # slave server with master defined Gestion de parc réalisation de ressources exportées : File <<... filtre... >> { les informations stockées par un client puppet sur le serveur sont utilisées pour définir la configuration d un autre client puppet Sur le maître, un fichier portant le nom de l esclave est crée dans /etc/krb5kdc/$realm_real/servers. le script de propagation maître => esclaves peut maintenant utiliser cette information

Puppet : bilan Puppet permet de rédiger des procédures d installation et de configuration complètes: Avantages la documentation de la procédure est la procédure elle même la mise à jour de la procédure permet la mise à jour de tous les serveurs sur lesquels elle est employée. caractère open-source : la communauté redistribue des définitions complètes de modules. gestion centralisée : la configuration d un client peut être définie à partir de celles d autres clients permet à un grand nombre de personnes de collaborer Inconvénients courbe d apprentissage longue architecture structurante, complexe à mettre en oeuvre au niveau organisation

Puppet : gestion de configuration Études d exemples Capistrano : déploiement d applications

Capistrano librairie ruby permet de décrire et d exécuter des scripts sur plusieurs machines emploi typique : déployer une application web sur des systèmes déjà configurés gestion de tâches interdépendantes (à la Makefile) surcouche SSH pour la gestion des connexions gestion par transaction possible

Capistrano : syntaxe fichier Capfile : 1 2 3 4 5 6 7 8 9 10 11 role :db, 'postgres.domain.tld' # définition de serveurs avec leur rôle associé role :app, 'backend.domain.tld' role :web, 'frontend.domain.tld' set :user, "pierre" # définition de variable desc "Description de la tâche" # définition d'une tâche task :my_task, :roles =>:app,:web do # restriction de la tâche aux serveurs remplissant les rôles spécifiés run "echo #{user fait des choses > /tmp/example" end after("another_task, "my_task") # ordonnancement des tâches Invocation : cap my_task L action de la tâche my_task est exécuté sur les serveurs :app(backend.domain.tld) et :web(frontend.domain.tld) avec le login pierre.

Actions possibles dans une tâche capistrano : Capistrano : librairie de base exécution de commande sur un serveur distant : run, parallel transfert de fichiers : local vers distant : put, upload transfert de fichiers : distant vers local : get, download Capistrano est fourni par défaut avec des tâches adaptées aux conventions suivantes : 1 2 3 4 5 6 7 tout le code réside dans un SCM, type subversion ou git les serveurs visés : SGBD, HTTP cap deploy:setup # initialisation : création de répertoire cap deploy:update # déploiement du code à partir de la dernière version du SCM cap deploy:start, deploy:stop, deploy:restart # contrôle de l'exécution de l'application cap deploy:revert # retour à la version précédente

Capistrano : bilan Capistrano permet d automatiser le déploiement d une application dans des environnements complexes (multi-serveurs). Les plus simple : makefile+ssh fait gagner beaucoup de temps la configuration par défaut est utilisable sans comprendre le produit communauté : tâches spécifiques pour certains environnements/déploiements spécifiques Les moins apprentissage pour étendre les tâches par défaut on peut gérer entièrement un serveur distant : ce n est pas le but!

Récapitulatif des bénéfices de chaque type de solution Installation initiale du système réduction du coût d installation d une machine utilisation optimisée des ressources matérielles 1 système == 1 service : réduction du couplage, facilité d adminitration/évolution Configuration des systèmes centralisation des descriptions : modulariser, réutiliser gestion de parc : automatiser l inscription à la supervision Délégation de déploiement séparation des rôles développeur/administrateur communication par spécification d interface

Comment intégrer ces produits dans son service Politique d un service informatique nombre de personnes centralisation organisation (hiérarchie) Méthodologies : COMMUNIQUER! approche de la base : faible nombre, peu centralisé, organisation lâche approche descendante : organisation forte, centralisée, nombre important la réalité est souvent entre les extrêmes

Faire intervenir les solutions collaboration développeur/sysadmin : produit type Capistrano approche technique nombreux retours d expérience approche institutionnelle approche formelle : décrire pour mieux gérer nécessite un engagement politique caractère structurant des produits type Puppet

Conclusion et perspective Départ explosion du nombre de systèmes à gérer pléthore de solutions techniques Arrivée des cases où mettre les solutions 2 exemples comment insérer ces solutions dans son quotidien Vos questions?