Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parNadine St-Laurent Modifié depuis plus de 8 années
1
Utilisation des composants Guillaume PHILIPPON
2
Sommaire Fonctionnement des composants Comprendre le fonctionnement d’un composant Les bonnes pratiques pour l’utilisation d’un composant Installer un nouveau composant Comment gérer un service qui n’a pas de composant spécifique
3
Fonctionnement d’un composant Les composants se découpe en deux parties – Les templates PAN – Un programme perl qui tourne sur la machine Les templates PAN définissent le « schéma » des composants – Permet de valider que la configuration est « correct » avant le déploiement
4
Comprendre le fonctionnement d’un composant Pour chaque composant, il existe une « man page » Le prefix d’un composant est toujours ‘/software/component/name’ Toute la configuration d’un composant se « charge » en incluant le template component/name/config Ne pas hésiter à regarder si le composant est déjà utiliser
5
Comprendre un schéma Les schémas se lisent toujours de bas en haut – L’operateur ‘:’ défini une valeur obligatoire – L’opérateur ‘?’ défini une valeur optionnel – L’opérateur ‘[]’ défini une list() PAN – L’opérateur ‘{}’ défini une nlist() PAN declaration template components/ntpd/schema; include { 'quattor/schema' }; type ntpd_clientnet_type = { "net" : type_ip "mask" : type_ip }; type component_ntpd_type = { include structure_component "servers" ? type_hostname[] "clientnetworks" ? ntpd_clientnet_type[] }; bind "/software/components/ntpd" = component_ntpd_type;
6
Bonnes pratiques d’utilisation d’un composant Toujours inclure la configuration de base d’un composant avant de l’utiliser – S’assurer que le schema est bien « charger » […] ‘/software/component/ntpd/servers’=list(‘ntp.example.org’); # Renvoi une erreur si le composant ntp n’a pas été chargé avant l’utilisation […] include { ‘component/ntpd/config’ }; # Charge la configuration si cela n’a pas été fait ‘/software/component/ntpd/servers’=list(‘ntp.example.org’); […]
7
Bonnes pratiques d’utilisation d’un composant Ne pas hésiter à créer de nouveaux templates – Généralement dans cfg/site/services/name Object template box.example.org; […] # Ne peux pas être utiliser par un autre profile ‘/software/component/ntpd/servers’ = list(‘ntpd.example.org’); […] Object template box.example.org; […] include { ‘services/ntpd/config’ }; […] template services/ntpd/config; […] # Peut être inclus par n’importe quel profile ‘/software/component/ntpd/servers’=list(‘ntp.example.org’); […] Object template box2.example.org; […] include { ‘services/ntpd/config’ }; […]
8
Bonnes pratiques d’utilisation d’un composant Préférer l’utilisation de variable aux déclarations direct [...] # La valeur ne peux pas être redéfini par le profile ‘/software/component/ntpd/servers’=list(‘ntp.example.org’); […] variable NTPD_SERVERS ?= list(‘ntp.example.org’); # Permet de redéfinir la valeur "/software/components/ntpd/servers" = NTP_SERVERS; Object template box.example.org; variable NTPD_SERVERS ?= list(‘ntp2.example.org’); include {‘services/ntpd/config’}; # Le serveur ntp2.example.org est configuré Object template box.example.org; Include {‘services/ntpd/config’}; # le serveur ntp.example.org est configuré
9
Bonnes pratiques d’utilisation des composants Regrouper les configurations d’un même service dans un même repertoire template services/mail/config; Variable SPAM_ASSASSIN_ENABLE ?= true; Include { ‘services/mail/postfix’ }; Include { ‘services/mail/amavis-new’ }; Include { if (SPAM_ASSASSIN_ENABLE) { ‘services/mail/spam-assassin’; } else { null; } ;
10
Installer un nouveau composant Une liste des composants existant est disponible – http://quattor.sourceforge.net/components.html Les sources des composants sont disponible sur le SVN de sourceforge – https://quattor.svn.sourceforge.net/svnroot/quattor/t runk https://quattor.svn.sourceforge.net/svnroot/quattor/t runk Des RPMs sont créer tout les soirs – http://lapp- repo01.in2p3.fr:8081/nexus/content/repositories/rele ases/
11
Installer un nouveau composant Directement a partir de SCDB – Il existe un script utils/misc/updateComponent – Construit le RPM ($COMP_DIR/core/ncm-smartd/work/RPMS/noarch/ncm- smartd-1.1.2-2.noarch.rpm) – Installe le composant dans $SCDB_DIR/cfg/site/name/component Svn co https://quattor.svn.sourceforge.net/svnroot/quattor/trunk /path/to/https://quattor.svn.sourceforge.net/svnroot/quattor/trunk SCDB_DIR=/path/to/scdb COMP_DIR=/path/to/component-sourceforge/ncm-component cd $SCDB_DIR; Utils/misc/updateComponent –comp-dir $SCDB_DIR/cfg/site/name –source $COMP_DIR/core smartd
12
Gérer un service qui n’a pas de composant dédié Filecopy, le composant « magique » – Permet d’écrire le contenu d’une variable dans un fichier – Permet des actions après modification du fichier A utiliser avec précaution – Ne valide pas les donné en entré (pas de schéma associé au contenu du fichier)
13
Gérer un service qui n’a pas de composant Par exemple, un service foo qui a comme fichier de configuration /etc/foo.cfg variable contents = <<EOF Ceci est le contenu de mon fichier EOF include { ‘components/filecopy/config’ }; prefix ‘/software/components/filecopy/services/{/etc/foo.cfg}’; ‘config’=contents; ‘owner’=‘root:root’; ‘perms’=‘0755’; ‘restart’=’service foo restart’;
14
Gérer le démarrage automatique d’une application Le composant chkconfig permet de gérer le démarrage automatique d’une application au boot de la machine include { 'components/chkconfig/config' }; "/software/components/chkconfig/service/cups/startstop" = true; "/software/components/chkconfig/service/cups/on" = ‘’; include { 'components/chkconfig/config' }; "/software/components/chkconfig/service/cups/off" = ‘2345’;
15
En cas de soucis
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.