Quattor tutorial

Quattor tutorial


37 Pages
Downloading requires you to have access to the YouScribe library
Learn all about the services we offer


Quattor NCM and SPMAtheory and exercisesGerman CancioCERN/IThttp://quattor.orgDataGrid is a project funded by the European Commission Heidelberg project conference, Sept 2003under contract IST-2000-25182‹‹‹‹ContentsNCM and SPMA ‘theory’Exercise setupNCM exercisesSPMA exercisesQuattor tutorial – Cancio, Poznanski - n° 2PXE DHCP KS/JSPackages(rpm, pkg)http nfs ftpNode install / config designSWRep ServerscachepackagesSPMAMgmt API(RPM, PKG)SPMA.cfgACL’sSPMANCMComponentsNode NCM(re)install?Installation serverCdispdPXEMgmt APIhandlingRegistrationCCMNotification ACL’sNodeDHCPInstall handlingKS/JSgeneratorClient NodesCDBCCMQuattor tutorial – Cancio, Poznanski - n° 3„‹„„‹Node Configuration Management (NCM)Client software running on the node which takes care of “implementing” what is in the configuration profileModules:“Components”Invocation and notification frameworkComponent support librariesQuattor tutorial – Cancio, Poznanski - n° 4‹„‹„„‹‹„‹„NCM: Components“Components” (like SUE “features” or LCFG ‘objects’) are responsible for updating local config files, and notifying services if neededComponents register their interest in configuration entries or subtrees, and get invoked in case of changesComponents can also be run manually, or via cronComponents do only configure the systemUsually, this implies regenerating and/or updating local config files (eg. /etc/sshd_config)Use standard ...



Published by
Reads 23
Language English
Report a problem
Quattor NCM and SPMA theory and exercises
Heidelberg project conference, Sept 2003
German Cancio
‹ theory SPMANCM and
‹Exercise setup
‹NCM exercises
‹SPMA exercises
Node install / config design SWRep Servers
RegistrationCCM Notification
Client Nodes
Node Install
packages Mgmt API(RPM, PKG) ACLs
Node (re)install? Installation server PXE handlingMgmt API ACLs DHCP handling
KS/JS generator
„Invocation and notification framework
„Component support libraries
‹Client software running on the node which takes care of implementing what is in the configuration profile
NCM: Components
‹roLseojbFCG)aectsesporerfelbisntadpurocaloginignfcolCopmotnen(skeliUESfeurat files, and notifying services if needed
tsr tertheir interest in configuration entries or ‹nadCeso,mpbotnernesueggeitsinvoked in case of changes „Components can also be run manually, or via cron
‹Components do onlyconfigurethe system „Usually, this implies regenerating and/or updating local config files (eg. _ /etc/sshd config)
‹Use standard system facilities (SysV scripts) formanagingservices services S their „ocfngirutaionchanges.gnisuipcrVsysnhewtspmnooCcanentsifynot
‹Possible to define configuration dependencies between components „Eg. configurenetworkbeforesendmail „Components wont run if a pre-dependency is unsatisfied
NCM: Components (II)
‹Components are written inPerl
‹Each component can implement two methods:
„startup, or when there was a CDBtypically invoked on configuration change
„Mandatory method
„invoked when a component is to be removed
„Optional method most of the components wont need to implement it.
Component (simplified) example
sub Configure {
system(/sbin/service myservice reload); 
if ($changed) {
#notify affected (SysV) services if required
my ($self,$config) = @_;
#access configuration information
#(re)generate and/or update local config file(s)
$self->Fail (not supported") unless ($arch eq i386);
my $arch=$config->getValue('/system/architecture); # NVA API
open (myconfig,/etc/myconfig); 
NCM: Components (III)
NVA API: configuration access library
‹This library allows hierarchical configuration structure access on the client side
‹Most popular methods: „$value=$config->getValuenel//kerionvers(tsme/ys;)
„If ($config->elementExists($path)) {} else {}
„while ($element->hasNextElement()) { my $newel=$element->getNextElement(); ... }
NCM support libs
Core functions: „$self->log(@array):write @array to components log file „$self->report(@array):write @array to log and stdout. „$self->verbose(@array) $self->debug(@array):verbose/debug output „$self->warn(@array):writes a[WARN]message, increases # of warnings „$self->error(@array):writes an[ERROR]message, increases # of errors
Advanced support libraries available (coming from CERNs SUE tool): „Configuration file manipulation „Advanced file operations „Process management „Exception management libraries
„make EDG_LSB=edg xxx  use LSBorEDG prefixes
„make pkg  generates PKG (Solaris)
„No makefile necessary
„No specfile necessary
„make rpm  generates RPM
„checks in modified files to CVS
„Prompts for ChangeLog entry
‹Improved build tools allow for easier packaging of components
‹make release  generate new version
„Generates a new CVS tag for the component
‹Each component is packaged independently
NCM: packaging components
NCM: tools
‹ncm-ncd(Node Configuration Deployer):
„framework and front-end for executing components (via cron, cdispd, or manually) „Dependency ordering of components
‹cdispd(Configuration Dispatch Daemon)
„Monitors the config profile, and invokes registered components via thencm-ncdif there were changes
„examining configuration information as cached on theTool for node
‹More details in NCM design document http://edms.cern.ch/document/372643