Quattor Installation Linux Reproductible Michel Jouvin LALOrsay jouvinlal
Quattor : Installation Linux Reproductible Michel Jouvin LAL/Orsay jouvin@lal. in 2 p 3. fr
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 2
Pourquoi Quattor ? Quattor développé par EDG WP 4 • - 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 3
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 4
… 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 5
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) 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 6
… 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 7
Quattor (Optionel)… Déploiement d’application • - 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 8
… 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 9
Quattor Architecture 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 10
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/g. Lite 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 11
Language PAN… Langage déclaratif • - 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 12
… 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/eth 0/ip » = « 134. 158. 88. 34 » ; 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 13
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 14
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, Mac. OS X, Windows) : compilatation (panc) et déploiement (Subversion) 3 principales opérations • compile : compile (localement) tous les profils affectés par les modifications • deploy : déploie les nouveaux profils - - Gestion des dépendances, compilation incrémentale • 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 15
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 16
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é 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 17
… 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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 18
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 g. Lite 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 19
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 20
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 21
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 22
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 23
Exemple de SCDB : GRIF (15) cluster. pan. includes=sites/ipno/**/* sites/grif/**/* os/sl 305 -i 386/**/* standard/**/* (2500) (4) 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 24
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 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 25
Exemple de Templates. . . • Tous les profils d’un même type sont identiques object template profile_ipnls 2005; include pro_wn; # Add repositories include repository_common; • Type WN défini à partir d’éléments de base génériques template pro_wn; # # Include base configuration of a LCG 2 node # include pro_lcg 2_machine_config_base; # # LCG-2 WN configuration # include pro_lcg 2_machine_config_wn; include pro_software_lcg 2_machine_wn_torque; # # Virtual organization configuration. # include pro_vo_alice_users; include pro_vo_dteam_users; 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 26
… Exemple de Templates • Définition de la configuration de base template pro_lcg 2_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; … 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 27
Paramètres du Site • Paramètres du site : utilisation de variables template pro_lcg 2_config_site; # Computing element. Contains gatekeeper and site-level BDII. define variable CE_HOST = "ipnls 2001. "+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_v 1". define variable SE_TYPES = nlist( SE_HOSTS[0], "srm_v 1", ); define variable SE_HOST_SERVEUR_NFS = SE_HOSTS[0]; define variable SE_HOST_DEFAULT_GRIF = SE_HOSTS[0]; #define variable SE_HOST_DEFAULT_SC 3 = SE_HOSTS[2]; # Site's DPM SE #define variable SEDPM_MASTER_HOST #define variable SEDPM_DISK 1_HOST # Site's LFC #define variable LFC_HOST 16/09/202120/9/2006 = SE_HOSTS[1]; = "node 11. "+SITE_DOMAIN; = "lfc. "+SITE_DOMAIN; = "grid 07. lal. in 2 p 3. fr"; Quattor : Installation Linux Reproductible 28
SCDB : Outil de Suivi… 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 29
. . . SCDB : Outil de Suivi 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 30
Documentation et Références • Le site officiel : http: //quattor. org • Le site QWG : http: //trac. lal. in 2 p 3. fr/LCGQWG - Description de l’utilisation pour la grille - Description SCDB Tutorials : • - http: //agenda. lal. in 2 p 3. fr/full. Agenda. php? ida=a 05110 - http: //quattor. web. cern. ch/quattor/documentation/tutori als/ 16/09/202120/9/2006 Quattor : Installation Linux Reproductible 31
- Slides: 31