Slide presentation Template - DutchGrid and the DutchGrid

Download Report

Transcript Slide presentation Template - DutchGrid and the DutchGrid

EDG Testbed installation and
configuration with LCFGng
Maite Barroso - WP4
[email protected]
Contents

Current EDG Testbed structure and configuration

EDG configuration files




Description
Where to get them
How to use them
Upgrade of a basic LCFG server and client to an EDG testbed server
and client
EDG Testbed installation and configuration with LCFG - n° 2
EDG Logical Machine Types
1. User Interface (UI)
4. Computing Element (CE)

Gatekeeper
(Front-end Node)

2. Resource Broker (RB)
3. Information Service (IS)
Worker Nodes (WN)
5. Storage Element (SE)
6. Replica Catalog (RC)
EDG Testbed installation and configuration with LCFG - n° 3
EDG Testbed Configuration
UI
User Interface
CE
Computing Element
SE
WN
WN
Worker WN
Node
Worker WN
Node
Worker WN
Node
Worker WN
Node
Worker Node
Worker Node
Storage Element
Minimal Testbed
Proxy
RB
Proxy renewal
Resource Broker
LCFG
Installation
Server
MDS
RC
Meta Data Server
Replica Catalog
EDG Testbed installation and configuration with LCFG - n° 4
EDG Configuration files

EDG configuration files stored in the DataGrid cvs repository:
http://marianne.in2p3.fr/datagrid/testbed1/repositories/index.html
 In

the main directory edg-release/
Two types of LCFGng files needed:


RPM configuration files: list of RPMS to be installed on a node
Component configuration files: files containing the configuration
information associated to each LCFG component in LCFG syntax
(key-value pairs)
EDG Testbed installation and configuration with LCFG - n° 5
RPM configuration files
EDG Testbed installation and configuration with LCFG - n° 6
RPM config files
 Stored
in the cvs directory edg-release/rpmlist/
 They
are built following a hierarchical structure of files containing
standard cpp directives like #define, #include, #ifdef, comments
with /* */, etc...
 These
files should be located in the LCFGng server, in the directory:
/opt/local/linux/6.2/rpmcfg
 They


include two types of files:
header files (.h)
template configurations
EDG Testbed installation and configuration with LCFG - n° 7
RPM config files: header files (I)

The RPM config file is a list of RPMs specifications, each of the
following form:
[prefix]rpmname-version-release[/arch][:flags]
 version-release
wildcards are supported :
* as the release field will imply the latest version/release of the specified
RPM found in the RPM repository
 [prefix]


+
used to replace a previously listed package with another version or
release of the same package
-
used to remove an already listed package
 [/arch]
overrides the default architecture
EDG Testbed installation and configuration with LCFG - n° 8
RPM config files: header files (II)

[:flags] consists of one or more single character flags as defined
below:







:f
install this package without making any checks at all.
:d
install this package without making any dependency checks.
:r reboot this machine when this RPM is installed, removed or upgraded.
(not yet fully implemented).
:i
ignore any already installed RPM matching the given RPM spec.
:c
preserve this RPM's config files across upgrades.
:t
install this package without invoking trigger scripts.
:s
install this package without running any pre or postinstall scripts.
NOTE: for more detailed information, use man updaterpms
EDG Testbed installation and configuration with LCFG - n° 9
RPM config files: header files (III)

Example: ComputingElement-rpm.h
/*
ComputingElement.h
========================================================
Customized list for a ComputingElement - Globus 2 BETA 21
*/
#ifdef OPENPBS
openpbs-*-*:s
#endif
globus_common-gcc32dbg_dev-2.0-21
globus_common-gcc32dbg_pgm-2.0-21
globus_common-gcc32dbg_rtl-2.0-21
globus_common-gcc32dbgpthr_dev-2.0-21
globus_common-gcc32dbgpthr_rtl-2.0-21
cyrus-sasl-1.5.11-2:s
EDG Testbed installation and configuration with LCFG - n° 10
RPM config files: template configuration (I)
 One
template per machine-type:

BASE-rpm: Base list for minimal system

CE-rpm: Computing Element list

NM-rpm: Network Monitoring list

RB-rpm: Resource Broker list

RC-rpm: Replica Catalogue list

SE-rpm: Storage Element list

UI-rpm: User Interface list

WN-rpm: Worker Node list
EDG Testbed installation and configuration with LCFG - n° 11
RPM config files: template configuration (II)

Each template is organized in a hierarchical way, with a list of #includes
of the needed header files. An example, CE-rpm:
/* CE-rpm
=====================================================
ComputingElement high-level RPM list
*/
Rh62 list of RPMs
/* RedHat 6.2 + updates */
#include "rh62-release-rpm.h"
#include "rh62-updates-rpm.h“
/* LCFG support */
#include "lcfg-common-rpm.h"
#include "lcfg-client-rpm.h"
/* OpenSSH */
#include "openssh-rpm.h“
LCFG list of RPMs
Computing Element
specific list of RPMs
/* ComputingElement specific packages */
#include "ComputingElement-rpm.h"
EDG Testbed installation and configuration with LCFG - n° 12
RPM config files: template configuration (III)

But they can also contain lists of RPMs, without including them from any
file. An example, CE-rpm:
/* Packages added to satisfy dependencies */
libxml-1.8.6-2


Or overwrite a previously defined RPM version:
+jade-1.2.1-9:s
+sgml-common-0.1-7:s
+docbook-3.1-3:s
+stylesheets-0.13rh-4:s
+openldap-servers-1.2.12-3:s
Or include #define directives:
/* Define architecture */
#define ISARCH_i386 1
#define ARCH i686
EDG Testbed installation and configuration with LCFG - n° 13
Component configuration files
EDG Testbed installation and configuration with LCFG - n° 14
Component config files: format (I)

Contain the needed configuration information expressed in LCFG syntax, keyvalue pairs known as resources:
hardware.keytable
us

The key specifies the LCFG component and the parameter, e.g. hardware.keytable

Types



Existing types: integer, boolean and string (default)
Type definition:
@size <%integer%>
@enable <%boolean%>
References to other component’s resources:
updaterpms.rpmcfg
<%update.initrpmcfg%>
NOTE: Remember that a machine DOES NOT have access to other machines resources.

The + symbol indicates that the new definition overrides any precedent one:
+hardware.keytable

en
If you don’t want to overrride but to add, use the EXTRA macro instead:
EXTRA(hardware.keytable ) en
EDG Testbed installation and configuration with LCFG - n° 15
Component config files: format (II)

More complex structures can also be defined:
@users
usercomment_$ userhome_$
users
usercomment_$
userhome_$

Example:
auth.users
edginfo mysql
auth.usercomment_edginfo
EDG Info user
auth.userhome_edginfo
/tmp
auth.usercomment_mysql
user for mysql
auth.userhome_mysql

/home/mysql
To add a new element use the macro EXTRA:
EXTRA(auth.users)
postgres
auth.usercomment_postgres
auth.userhome_postgres
user for postgres
/home/postgres
EDG Testbed installation and configuration with LCFG - n° 16
Component config files

Stored in the cvs directory edg-release/source/
 These
files should be located in the LCFGng server, in the
directory: /var/obj/conf/server/source
 Organized
inclussion:




in a hierarchical way, using simple inheritance by file
One file per functional entity to be configured, e.g.
FabricMonitoring-cfg.h, Users-cfg.h, pbs-cfg.h
One file per machine type, e.g. ComputingElement-cfg.h,
WorkerNode-cfg.h
One file per site, with the site dependent configuration information,
e.g. site-cfg.h
Last level on the hierarchy: one file per machine, file named after
the unqualified DNS name of the client, containing the host
dependent configuration information, e.g. testbed006
EDG Testbed installation and configuration with LCFG - n° 17
Component config files: example 1
/* testbed006
testbed006
==============================================
COMPUTING ELEMENT- NG VERSION
*/
/* Host specific definitions */
#define HOSTNAME testbed006
Specific host configuration
/* Some useful macros */
#include "macros-cfg.h"
/* Site specific definitions */
Site config files
#include "site-cfg.h"
/* Basic RH62 client resources */
Feature/component
configuration (Linux, users…)
Config files per
machine type
#include "redhat62-cfg.h"
/* Users */
#include "Users-cfg.h"
/* Computing Element specific resources */
#include "ComputingElement-cfg.h"
+auth.rootpwd
a1Z1WykXTe2PU
EDG Testbed installation and configuration with LCFG - n° 18
Component config files: example 2
ComputingElement-cfg.h
/* globus
Globus component configuration
needed in a Computing Element
------------------------------------------------------- */
EXTRA(profile.components)
globus
profile.version_globus
1
globus.ng_reconfig
configure
EXTRA(boot.services)
globus
/* globus.conf content */
globus.globusconfenabled
yes
globus.globusconf
/etc/globus.conf
inet component configuration
needed in a Computing Element
/* inet: add gatekeeper service to /etc/services,enable mount
------------------------------------------------------- */
EXTRA(inet.etcservices)
gatekeeper
inet.etcsrvconf_gatekeeper
globus-gatekeeper 2119/tcp
EXTRA(inet.allow)
mountd portmap gatekeeper
inet.allow_mountd
SITE_ALLOWED_NETWORKS
inet.allow_portmap
SITE_ALLOWED_NETWORKS
inet.allow_gatekeeper
ALL
EDG Testbed installation and configuration with LCFG - n° 19
Component config files: example 3
site-cfg.h
/*site-cfg.h
============= SITE SPECIFIC CONFIGURATION ============
*/
/* COMMON GRID DEFINITIONS -------------------------------- */
#define GRID_RB_II_HOST
lxshare0315.cern.ch
#define GRID_RB_II_PORT
2170
/* COMMON SITE DEFINITIONS -------------------------------- */
/* FQDN of your LCFG server */
#define SITE_LCFG_SERVER
lxshare0315.cern.ch
/* Your domain */
#define SITE_LOCALDOMAIN
cern.ch
/* Sysadmin e-mail */
#define SITE_MAILROOT
[email protected]
/* The gateway/router */
#define SITE_GATEWAYS
137.138.1.1
/* Allowed networks (useful for tcpwrappers) */
#define SITE_ALLOWED_NETWORKS
127.0.0.1, 192.168., 137.138.
/* DNS */
#define SITE_NAMESERVERS
137.138.16.5
EDG Testbed installation and configuration with LCFG - n° 20
SERVER UPGRADE
1) Assume LCFGng base server up & running
2) Populate the RPM repository at /opt/local/linux/6.2/RPMS
with all needed RPMs from EDG central repository (don’t forget to
generate the header files!)
3) Copy the needed RPM config files from cvs (edg-release/rpmlist)
to the LCFGng server, /opt/local/linux/6.2/rpmcfg. This
files normally don’t need to be modified.
4) Copy the needed component config files from cvs (edgrelease/source) to the LCFGng server,
/var/obj/conf/server/source.
EDG Testbed installation and configuration with LCFG - n° 21
SERVER UPGRADE
5) Adapt them to configure your clients:
5.1) Change the file site-cfg.h with your site settings.
5.2) Create/modify the configuration file for every client, naming it with
its unqualified DNS name, e.g. testbed006 (template configuration files
called testbed00x can be found in cvs).
 Decide what type of machine you want to have, e.g. Computing
Element
 Include the needed config files according to your machine type, e.g.
ComputingElement-cfg.h for a Computing Element
 Add the host-dependent configuration (host name, root password…)
5.3) Compile and generate the XML node profile
/usr/sbin/mkxprof –v –s testbed006
5.4) If it is a new client, edit /etc/dhcpd.conf and add entries for your
client machine. Don’t forget to restart the service afterwards!
EDG Testbed installation and configuration with LCFG - n° 22
CLIENT UPGRADE
5) Reboot the client
6) Check that all the components started in the correct way: have a
look to the log files located at:
/var/obj/log/component_name
7) You can always start/stop/restart the components manually:
/etc/obj/component_name start
EDG Testbed installation and configuration with LCFG - n° 23