Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Quattor : Installation Linux Reproductible
Michel Jouvin LAL/Orsay
2
Agenda Pourquoi Quattor ? Architecture générale
La description des configurations Serveur et client Installation initiale Administration L’exemple du GRIF Références utiles 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
3
Pourquoi Quattor ? Quattor développé par EDG WP4
EDG : besoin de gérer de grandes fermes Installation initiale ET changement de configuration Outils existants ne traitent que l’un OU l’autre Exemples : Kickstart, Imaging, APT… Expérience du CERN pour gestion de grand nombre de machines : ASIS, SUE… Besoin d’une description unique et homogène de toute la configuration Modification atomique des logiciels installés Besoin d’avoir des installations reproductibles Réinstaller 1 machine à l’identique suite à une panne Garantir 2 machines identiques pour le même service Linux (RH, rpm) et Solaris (pkg) Totalement indépendant du middleware Grille 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
4
Principales Caractéristiques…
Toute la configuration d’une machine dans une base de donnée Possibilité d’installation reproductible Modification de la configuration active à partir de la base de données (sans réinstallation) De l’installation initiale à la poubelle… Versionning de la configuration dans la base de donnée Factorisation de la production et de la maintenance des configurations Pouvoir produire plusieurs machines “presque” identiques Pouvoir modifier la configuration d’un service sur des machines de type différents 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
5
… Principales Caractéristiques
Vérification de la consistance des configurations avant déploiement (compilation) Schéma de l’arbre d’information Existence des packages à déployer Installation initiale avec l’outil standard de la plateforme Kickstart pour RH / SL Configuration de l’installeur à partir de la base de donnée 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
6
Quattor (Core Components)…
Quattor = 1 base de donnée + 1 serveur de déploiement GRIF : Base de donnée dans Subversion + accès via http Configuration décrite avec des templates Description de la configuration finale, pas du comment Langage PAN Héritage des templates Hardware et software Serveur de déploiement : dhcpd + tftpd Serveur est notifié d’un changement dans la base de donnée Notifie les clients affectés par les changements (pas de login) Possibilité de plusieurs serveurs attachés à la même base de donnée (configuration multi-site) 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
7
… Quattor (Core Components)
Client : Node Configuration Manager (NCM) En charge de faire les actions nécessaires pour atteindre la configuration demandée Basé sur le concept de composants (plugins) 1 composant gère un aspect de la configuration (NIS, accounts…) 1 composant est un script Perl avec une API standard Management possible depuis Unix, Windows et Mac Compilateur PAN + client SVN + ant disponibles sur toutes les plateformes SCDB uniquement 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
8
Quattor (Optionel)… Déploiement d’application Software Repository
Implémenté comme un composant NCM Plusieurs technologies disponibles : SPMA, APT, YUM… SPMA : développé dans le cadre de Quattor Permet la modification atomique de logiciels (rpmt) Permet upgrade et downgrade Vérifie les dépendances entre logiciels Software Repository Contient les RPMs à installer via SPMA Accessible via HTTP Permet la réplication et la génération des templates associés Possible d’utiliser un simple serveur HTTP 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
9
… Quattor (Optionel) Installation initiale : AII
Permet l’installation initiale du système et du client Quattor Configuration et déploiement d’application via NCM Utilise l’installer standard (Kickstart/Anaconda) et PXE Configuration DHCP, TFTP, KS à partir de la configuration DB 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
10
Quattor Architecture 08/11/201820/9/2006
Quattor : Installation Linux Reproductible
11
Configuration et Templates
Configuration d’une machine est décrite dans un fichier XML : profil 1 profil par machine Décrit le HW présent, le SW à installer (RPMs) et la configuration du SW Possibilité de configurer le SW à partir du HW présent Profil construit à partir d’une description de haut niveau : templates Templates utilisent un langage particulier : PAN Templates sont compilés pour produire le profil (panc) 1 profil peut être constitué à partir d’un grand nombre de templates Templates similaires à des « poupées russes » Des templates standards pour OS et MW LCG/gLite 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
12
Language PAN… Langage déclaratif Possibilité de définir des fonctions
Décrit des états à atteindre Permet la manipulation de données : calcul d’une valeur à partir d’une autre, listes, validation de valeur… Non procédural : impossible de spécifier des actions ou de définir des blocs conditionnels Assignation conditionnelle Possibilité de définir des fonctions Ecrit en langage PAN Manipulation et calcul des données Fonction de validation : exécutée à la fin de la compilation pour vérifier la conformité des valeurs 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
13
… Language PAN Organisation hiérarchique de l’information
Ressources : peut contenir des ressources ou des propriétés Propriétés : attribut ayant une valeur Exemples : « /hardware/network/interfaces/eth0/ip » = « »; Typage fort des données Définition des types (schema) de données de l’ensemble de l’arbre d’information Similaire à une définition de structure/classe 1 définition standard proposée et utilisée par les templates OS/LCG Fonctions de conversion entre type Possibilité de définir des variables Utilisable comme paramètre des autres définitions Permet de définir des templates génériques 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
14
Quattor (S)CDB Stocke les PAN templates et le fichier de configuration de chaque machine (XML) Seul le profil XML est utilisé par les autres composants Quattor Profil accédé via http Subversion (templates) + http (profils) Pas de composant spécifique à Quattor Avantages de SVN : commit atomique, nombreux clients… Contrôle d’accès « fine grained » (ACL, certificats) Versionning des templates uniquement Toujours possible de reconstruire les XML Remplace la CVS CDB originale Aussi standard que CVS CDB Conçue et développée par Cal 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
15
Gestion de la (S)CDB Ensemble des opérations via des cibles ‘ant’
Principe similaire à ‘Make’ Entièrement écrit en Java gestion possible depuis toutes les plateformes (Unix, MacOS X, Windows) : compilatation (panc) et déploiement (Subversion) 3 principales opérations compile : compile (localement) tous les profils affectés par les modifications Gestion des dépendances, compilation incrémentale deploy : déploie les nouveaux profils Compilation des profils sur le serveur, notification des clients Vérifie que toutes les modifications sont dans le repository (commit) et que l’espace de travail est à jour par rapport au repository update.rep.templates : regénère le template associé à chaque repository 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
16
Quattor Server Notifie les clients des changements de configuration dans la SCDB Script exécuté lors de la validation de modifications dans la CDB Serveurs Subversion et http peuvent être sur une autre machine Possibilité de plusieurs serveurs de déploiement associée à une CDB Configuration multi-site Prend en charge le service d’installation initiale Pas de services (daemon) spécifiques Utilise DHCP et TFTP standard pour AII 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
17
Quattor Client (CCM+NCM)…
Client Core : CCM + NCM CCM : Configuration Cache Manager NCM : Node Configuration Manager CCM : récupère la dernière configuration dans la CDB reçoit la notification (packet UDP) en cas de changement de configuration (cdp-listend) Exécute ccm-fetch pour récupérer le profil Possibilité de forcer une mise à jour manuelle du profil Notifie NCM si le contenu du profil a été modifié 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
18
… Quattor Client (CCM+NCM)
NCM : implémente la configuration ncm-cdispd (daemon) : notifié d’une modification du profil par CCM ncm-ncd : exécute un composant Lancé par cdispd pour les composants modifiés Manuellement : ‘ncm-ncd –configure composant’ ncm-query : permet de visualiser le contenu du profil 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
19
Les Composants NCM Sorte de plugins de ‘ncm-ncd’ chargés d’implémenter la configuration 1 composant par arborescence « /software/components/component-name » Possibilité de définir des dépendances entre composants Par exemple, SPMA pour installer le composant Script écrit en Perl (objet) Implémente une classe dérivée de NCM::Component qui fournit toutes les méthodes d’accès à la configuration Nombreux composants disponibles core : composants d’intérêt général chkconfig, named, filecopy… lcg : gestion de tous les services du MW LCG glite : gestion de tous les services du MW gLite 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
20
Quattor Client (SPMA) Composant NCM responsable du déploiement logiciel Lancé par ncm-ncd Configuration via les templates : « /software/packages » Configuré avec les fonctions PAN pkg_add, pkg_repl… Vérification que les packages requis existent dans un repository Possible d’utiliser APT ou YUM à la place de SPMA Utilise rpmt pour faire des installations atomiques et vérifier les dépendances rpmt basé sur les librairies RPM standards, écrit en Python Aucune modification si problème de dépendance Upgrade ou downgrade (rollback) Sélection explicite de la version à installer (avantage sur APT) Possibilité de versions différentes suivant les machines 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
21
Quattor AII AII : Automated Installation Infrastructure
Configure PXE (DHCP+TFTP) + Kickstart à partir du profil d’une machine Utilise les services standards DHCP (ISC) : pas d’utilisation exclusive requise Créer un fichier spécifique pour les entrées maintenues par AII TFTP : pas d’utilisation exclusive requise Créer un répertoire TFTP dédié à Quattor avec pxelinux… Kickstart : KS templates utilisant la configuration des profils. 1 KS template peut être complètement générique Possibilité de réinstallation sans accès console Boot toujours par PXE Sélection boot réseau / boot local par aii-shellfe 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
22
Administration avec Quattor
Editer les templates spécifiques au site La plupart des templates (95%) sont standards et ne doivent pas être modifiés Beaucoup générés automatiquement : repositories, packages RH, packages LCG… Configuration du middleware maintenue par GDB QWG Compiler et valider la configuration ant deploy Possibilité d’utiliser l’IDE Eclipse pour éditer, compiler et déployer Configurer et activer l’installation automatique Génération de l’information Kickstart : aii-shellfe --configure node Install au prochain reboot : aii-shellfe --install node 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
23
Gérer des configurations complexes
Ressources divisées en « cluster » Ensemble de machines partageant des éléments de configuration communs Machines peuvent exécuter une version OS différente Pas nécessairement relié à un cluster de calcul Possibilité de gérer des configurations multi-sites GRIF = 5 sites avec des spécificités (réseau…) Chaque cluster peut appartenir à un ou plusieurs sites Exemple : le site local + le site GRIF Pas uniquement LCG LAL : utilisation pour les serveurs internes, à l’étude pour les desktops 1 template peut être redéfini à chaque niveau Standard, GRIF, site local, cluster GRIF : +95% templates communs #10 templates spécifiques par site et par cluster 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
24
Exemple de SCDB : GRIF 08/11/201820/9/2006
(15) cluster.pan.includes=sites/ipno/**/* sites/grif/**/* os/sl305-i386/**/* standard/**/* (2500) (4) 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
25
Mettre à jour OS ou MW Récupérer les templates standard de la version
RPMs requis : générés par des scripts qui analysent la description fournie par RH (comps.xml) ou par EGEE Configuration du MW : templates génériques maintenus par le LCG QWG Création d’un nouveau cluster par copie de l’ancien mais référençant le nouveau OS ou MW Edition du fichier cluster.build.properties Pour OS, possibilité d’utiliser le pro_os_version_db.tpl Déplacement des machines d’un cluster dans l’autre 1 par 1, par groupe ou l’ensemble du cluster ‘ant deploy’ Recompile les profils Notifie les clients qu’un nouveau profil est disponible 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
26
Exemple de Templates... Tous les profils d’un même type sont identiques Type WN défini à partir d’éléments de base génériques object template profile_ipnls2005; include pro_wn; # Add repositories include repository_common; template pro_wn; # # Include base configuration of a LCG2 node include pro_lcg2_machine_config_base; # LCG-2 WN configuration include pro_lcg2_machine_config_wn; include pro_software_lcg2_machine_wn_torque; # Virtual organization configuration. include pro_vo_alice_users; include pro_vo_dteam_users; 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
27
… Exemple de Templates Définition de la configuration de base
template pro_lcg2_machine_config_base; # Include static information and derived global variables. include pro_site_databases; include pro_site_global_variables; … # hardware "/hardware" = create(DB_MACHINE[escape(FULL_HOSTNAME)]); include pro_site_system_filesystems; # common site machine configuration include pro_site_config; # software packages include pro_declaration_functions_general; # Configure Bind resolver include pro_site_named_config; # Include OS version dependent RPMs include pro_os_lcg_base; 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
28
Paramètres du Site Paramètres du site : utilisation de variables
template pro_lcg2_config_site; # Computing element. Contains gatekeeper and site-level BDII. define variable CE_HOST = "ipnls2001."+SITE_DOMAIN; define variable SITE_BDII_HOST = "bdii.grif.fr"; # List of all site's SEs. The default is the first listed unless changed # below. This must be a list even if you have only one. define variable SE_HOSTS = list("ipnsedpm."+SITE_DOMAIN); # The types of the defined SEs. This must be an nlist with the full # hostname as the key and the SE type as the value. Valid SE types #are "disk" (SE Classic), "SE_dcache", "SE_dpm", and "srm_v1". define variable SE_TYPES = nlist( SE_HOSTS[0], "srm_v1", ); define variable SE_HOST_SERVEUR_NFS = SE_HOSTS[0]; define variable SE_HOST_DEFAULT = SE_HOSTS[0]; define variable SE_HOST_DEFAULT_GRIF = SE_HOSTS[0]; #define variable SE_HOST_DEFAULT_SC3 = SE_HOSTS[2]; # Site's DPM SE #define variable SEDPM_MASTER_HOST = SE_HOSTS[1]; #define variable SEDPM_DISK1_HOST = "node11."+SITE_DOMAIN; # Site's LFC #define variable LFC_HOST = "lfc."+SITE_DOMAIN; define variable LFC_HOST = "grid07.lal.in2p3.fr"; 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
29
SCDB : Outil de Suivi… 08/11/201820/9/2006
Quattor : Installation Linux Reproductible
30
... SCDB : Outil de Suivi 08/11/201820/9/2006
Quattor : Installation Linux Reproductible
31
Documentation et Références
Le site officiel : Le site QWG : Description de l’utilisation pour la grille Description SCDB Tutorials : als/ 08/11/201820/9/2006 Quattor : Installation Linux Reproductible
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.