edg testbed installation and configuration with lcfgng maite barroso - wp4...
TRANSCRIPT
EDG Testbed installation and configuration with LCFG - n° 2
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° 3
EDG Logical Machine Types1. User Interface (UI)
2. Resource Broker (RB)
3. Information Service (IS)
4. Computing Element (CE) Gatekeeper
(Front-end Node)
Worker Nodes (WN)
5. Storage Element (SE)
6. Replica Catalog (RC)
EDG Testbed installation and configuration with LCFG - n° 4
EDG Testbed Configuration
UIUser Interface
SEStorage Element
CEComputing Element
RBResource Broker
WNWorker Node
WNWorker Node
WNWorker Node
WNWorker Node
WNWorker Node
WNWorker Node
ProxyProxy renewal
MDSMeta Data Server
RCReplica Catalog
Minimal Testbed
LCFGInstallation
Server
EDG Testbed installation and configuration with LCFG - n° 5
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° 6
RPM configuration files
EDG Testbed installation and configuration with LCFG - n° 7
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° 8
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° 9
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° 10
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° 11
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° 12
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
*/ /* 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“
/* ComputingElement specific packages */#include "ComputingElement-rpm.h"
Rh62 list of RPMs
LCFG list of RPMs
Computing Element specific list of RPMs
EDG Testbed installation and configuration with LCFG - n° 13
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° 14
Component configuration files
EDG Testbed installation and configuration with LCFG - n° 15
Component config files: format (I) Contain the needed configuration information expressed in LCFG syntax, key-
value 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° 16
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 user for postgres
auth.userhome_postgres /home/postgres
EDG Testbed installation and configuration with LCFG - n° 17
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 in a hierarchical way, using simple inheritance by file inclussion:
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° 18
Component config files: example 1
testbed006/* testbed006 ==============================================
COMPUTING ELEMENT- NG VERSION
*/
/* Host specific definitions */
#define HOSTNAME testbed006
/* Some useful macros */
#include "macros-cfg.h"
/* Site specific definitions */
#include "site-cfg.h"
/* Basic RH62 client resources */
#include "redhat62-cfg.h"
/* Users */
#include "Users-cfg.h"
/* Computing Element specific resources */
#include "ComputingElement-cfg.h"
+auth.rootpwd a1Z1WykXTe2PU
Config files per
machine type
Site config files
Specific host configuration
Feature/component
configuration (Linux, users…)
EDG Testbed installation and configuration with LCFG - n° 19
Component config files: example 2
/* globus
------------------------------------------------------- */
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: 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
Globus component configuration needed in a
Computing Element
ComputingElement-cfg.h
inet component configuration needed in a Computing
Element
EDG Testbed installation and configuration with LCFG - n° 20
Component config files: example 3
/*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
site-cfg.h
EDG Testbed installation and configuration with LCFG - n° 21
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 (edg-release/source) to the LCFGng server, /var/obj/conf/server/source.
EDG Testbed installation and configuration with LCFG - n° 22
SERVER UPGRADE5) 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° 23
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