- No category
advertisement
ConfLess
Revision : 1.12
Mathrice, Tours 2007 – p.1/41
système d’installation, de mise à jour et de configuration de
Linux
R
/UNIX
R développé par Miloslav Grundmann
Mathrice, Tours 2007 – p.2/41
Plan de la présentation
les besoins
(pouquoi il l’a dévloppé, pourquoi je l’ai utilisé) les principes fondamentaux les outils utilisés mode d’emploi
évolution, perspective,...
Mathrice, Tours 2007 – p.3/41
historique
le laboratoire “Mathématiques pour l’Industrie et la
Physique” (MIP) décide d’utiliser des clients lourds
2 personnes : MG (IR CNRS) et un technicien une centainne de machines
Miloslav développe ce système pour gérer le parc
Linux, le technicien s’occupe de Windows
Mathrice, Tours 2007 – p.4/41
les besoins
disposer d’un outil de gestion parc UNIX/Linux pour les postes “lourds” utilisateurs pour les serveurs pour l’équipe “Mathématiques pour l’Industrie et la
Physique” (MIP) de l’institut de Maths
Mathrice, Tours 2007 – p.5/41
gestion de parc
installation mise à jour configuration automatique de l’OS et des logiciels tout ça centralisé reproductible pérenne
Mathrice, Tours 2007 – p.6/41
résultat
l’outil idéal de gestion de parc ;) simple à utiliser : booter, partitionner, attendre
(niveau 0) installation automatique installation complète simple à configurer
(niveau 1)
1 fichier à éditer extensible
(niveau 2) robuste : redondance facile basé sur des principes simples
Mathrice, Tours 2007 – p.7/41
pourquoi je l’utilise ?
cvs ne me suffit pas pour travailler serein pour des serveurs (NIS, smtp hub, web, imap/pop) pour des machines virtuelles vmware je convertis les serveurs à ConfLess j’essaie d’expliquer aux techniciens comment passer au niveau 2 avec ConfLess
Mathrice, Tours 2007 – p.8/41
IF YOUR ARE PERSUADED THAT THE COMPUTER NEEDS ANY ACTION FROM
YOU YOU ARE COMPLETELY WRONG !!
PLEASE WAIT AND SEE !!
EVERYTHING IS OK !!
DO NOT TOUCH THE COMPUTER WHATEVER YOUR IDEAS ARE !!
IF THE COMPUTER IS IN THIS STATE FOR MORE THAN TWO HOURS
CALL YOUR COMPUTER MANAGER BUT DO NOT TOUCH THE COMPUTER
OTHERWISE IT WILL NOT BOOT !!
THIS COMPUTER SYSTEM LOVES USERS THAT DO NOT DO ANYTHING !!
DONT WORRY AND BE HAPPY !!
THE PROCEDURE WILL FINISH ONLY WITHOUT YOUR HELP
AND COMPLETELY AUTOMATICALY !!
ANY ASSISTANCE FROM YOU IS PROHIBITED !!
THIS COMPUTER NEEDS NO HELP FROM YOU, IF YOU WANT TO HELP
SOMEBODY PLEASE CHOOSE ANOTHER BENEFICIARY OF YOUR AID !!!!!!!!!!!!!!
PLEASE WAIT, THE COMPUTER IS WORKING !!!!!!!!!!!!!!
Mathrice, Tours 2007 – p.9/41
les besoins les principes fondamentaux les outils utilisés mode d’emploi
évolution, perspective,...
Mathrice, Tours 2007 – p.10/41
les principes fondamentaux
C’est un système Linux “live” qui copie des fichiers sur le disque local de la machine. Les fichiers sont choisis selon la classe de la machine.
tout ce qui peut être fait par une copie de fichier doit
être fait par une copie de fichier les ordinateurs appartiennent à des classes : ordinateur bleu, serveur web, scsi, gentoo,...
quelques chiffres
8 fichiers de configuration
20 scripts
Mathrice, Tours 2007 – p.11/41
particularités du système
le système d’installation est indépendant du système installé l’état utile d’une machine ne dépend pas de son état précédent
Mathrice, Tours 2007 – p.12/41
les conséquences
capitalisation et mutualisation pérenne du travail de configuration le crash d’une machine n’est plus un soucis si on a du matèriel de remplacement
on sait restaurer l’OS sans réfléchir
à partir d’une source “propre”
Mathrice, Tours 2007 – p.13/41
les besoins les principes fondamentaux les outils utilisés mode d’emploi
évolution, perspective,...
Mathrice, Tours 2007 – p.14/41
LE principe
C’est un système Linux “live” qui copie des fichiers sur le disque local de la machine. Les fichiers sont choisis selon la classe de la machine.
Mathrice, Tours 2007 – p.15/41
les outils utilisés
gentoo linux et nfsroot cfengine rsync quelques scripts
Mathrice, Tours 2007 – p.16/41
gentoo linux et nfsroot
l’OS d’installation boot : PXE, CD, partition locale nfsroot : montage de / par NFS os : gentoo linux + modifs
/etc/conf.d/local.start (démarrage de cfengine) configuration de cfengine les scripts
Mathrice, Tours 2007 – p.17/41
les outils : cfengine
www.cfengine.org
Mark Burgess, professor of Network and System Administration at University College Oslo www.iu.hio.no/~mark beaucoup d’articles (USENIX), de livres lssconf, Large Scale System Configuration
Mathrice, Tours 2007 – p.18/41
les outils : cfengine
appartenance des machines aux classes calcul = ( 172_16_1_33 172_16_1_36
172_16_1_38 172_16_0_16 ) web = ( 130_120_83_230 130_120_83_239 ) définition des classes web::
AddClasses = ( rootrsync rootserver globalcopy rootcopy ) rootrsync = ( "gentoo-web-2006-08-18-11:17" ) rootserver = ( "130.120.81.151::" ) rootcopy = ( "$(server)local/web/ ; $(server)local/identique/" )
Mathrice, Tours 2007 – p.19/41
les outils : cfengine
enchaînement des actions : montage des partitions, copie des fichiers, hostname,...
actionsequence =
( shellcommands.umount
shellcommands.fs
tidy shellcommands.sh
files links editfiles disable shellcommands.umount
shellcommands.reboot
)
Mathrice, Tours 2007 – p.20/41
les outils : cfengine
appartenance des machines aux classes définition des classes enchaînement des actions
Mathrice, Tours 2007 – p.21/41
cfengine et les classes génériques
redefined fs1, partition gentoo known scsi ide
Mathrice, Tours 2007 – p.22/41
classe
redefined
!redefined::
AddClasses = ( gentoo fs1 x11default )
Mathrice, Tours 2007 – p.23/41
classe
fs1
fs1:: bootrsync localroot localboot localhome
= ( "boot" )
= ( "local/gentoo" )
= ( "local/boot" )
= ( "local/home" ) cacherepertoire = ( "/mnt/cache" ) rootrepertoire = ( "/mnt/root" ) bootrepertoire = ( "/mnt/boot" ) homerepertoire = ( "/mnt/home" ) syslogrepertoire = ( "/mnt/syslog" )
Mathrice, Tours 2007 – p.24/41
rootdevice bootdevice homedevice cachedevice swapdevice
classe
!partition.fs1
= ( "$(disc)6" )
= ( "$(disc)1" )
= ( "$(disc)7" )
= ( "$(disc)5" )
= ( "$(disc)2" )
Mathrice, Tours 2007 – p.25/41
les outils : rsync
synchronisation incrémentale des fichiers man rsync !
http://samba.anu.edu.au/rsync/
...
Mathrice, Tours 2007 – p.26/41
les outils : quelques scripts
spécifique à la classe Linux gentoo montage des partitions (label Linux)
/etc/fstab
/etc/hostname
Mathrice, Tours 2007 – p.27/41
exemple 1
l’action shellcommands.umount shellcommands: umount.fs1::
"/bin/sync"
"/bin/umount $(bootrepertoire)"
"/bin/umount $(homerepertoire)"
"/bin/umount $(rootrepertoire)"
"/bin/umount $(cacherepertoire)"
"/bin/umount $(syslogrepertoire)"
Mathrice, Tours 2007 – p.28/41
exemple 2
l’action shellcommands.fs shellcommands: fs.fs1::
"/usr/local/bin/testfs $(bootdevice) bootnet"
"/usr/local/bin/testfs $(rootdevice) root"
"/usr/local/bin/hometestfs $(homedevice) home"
"/usr/local/bin/testfs $(cachedevice) cache"
"/usr/local/bin/testswap $(swapdevice)"
"/bin/mount -o noatime LABEL=bootnet $(bootrepertoire)"
"/bin/mount -o noatime LABEL=root $(rootrepertoire)"
"/bin/mount -o noatime LABEL=home $(homerepertoire)"
"/bin/mount -o noatime LABEL=system $(syslogrepertoire)"
"/bin/mount -o noatime LABEL=syslog /mnt/syslog"
Mathrice, Tours 2007 – p.29/41
exemple 3
l’action shellcommands.sh shellcommands: globalcopy.sh::
"/usr/local/bin/rcopy $(rootcopy) $(rootrepertoire) \
/tmp/files /tmp/exclude"
"/usr/local/bin/globalcopy $(rootserver)$(rootrsync) \
$(rootrepertoire) /tmp/files /tmp/exclude"
Mathrice, Tours 2007 – p.30/41
mode d’emploi : pour des serveurs
préparation d’une distribution vierge création des fichiers de configuration déclaration de la machine dans l’outil boot, partitionnement, installation, reboot fin
Mathrice, Tours 2007 – p.31/41
préparation d’une distribution vierge
gentoo tar xvjpf stage3-x86-2006.0.tar.bz2
chroot /ControlLinux/gentoo-web/ /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1" emerge --sync emerge --update --deep world emerge apache
Mathrice, Tours 2007 – p.32/41
création des fichiers de configuration
la config commune mkdir -p /ControlLinux/local/identique emacs ...
la config spécifique mkdir -p /ControlLinux/local/web/etc/apache emacs ...
Mathrice, Tours 2007 – p.33/41
déclaration de la machine dans l’outil
Emacs web = ( 130_120_83_230 130_120_83_239 ) web::
AddClasses = ( rootrsync rootserver globalcopy rootcopy ) rootrsync = ( "gentoo-web" ) rootserver = ( "130.120.81.151::" ) rootcopy = ( "$(server)local/web/ ; $(server)local/identique/" )
Mathrice, Tours 2007 – p.34/41
boot, partitionnement, installation, reboot
test sur une machine virtuelle VMware boot PXE montage rootnfs partitionnement lancement de l’installation installation sur la machine physique
Mathrice, Tours 2007 – p.35/41
les outils : cvs
historique des modifs sauvegarde des modifs en production
Mathrice, Tours 2007 – p.36/41
pour les postes utilisateurs
2 boot successifs : confless puis l’OS utilisateur installation from scratch 30min mise à jour 5min
Mathrice, Tours 2007 – p.37/41
évolution, perspective
adaptation pour un autre UNIX (BSD) une doc de mise en œuvre mise à jour sans reboot
...
Mathrice, Tours 2007 – p.38/41
référence : USENIX
conférence LISA, Large Installation System
Administration lssconf, Large Scale System Configuration
Mathrice, Tours 2007 – p.39/41
malheuresement
développé trop tard :( idéalement : dès que les PC/Linux ont existé maintenant c’est les portables et on est en retard par rapport aux utilisateurs
Mathrice, Tours 2007 – p.40/41
CIMPA, la chine
Mathrice, Tours 2007 – p.41/41
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
advertisement