Title: EDG Testbed installation and configuration with LCFGng
1EDG Testbed installation and configuration with
LCFGng
- Maite Barroso - WP4
- Maite.Barroso.Lopez_at_cern.ch
2Contents
- 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
3EDG Logical Machine Types
- Computing Element (CE)
- Gatekeeper
- (Front-end Node)
- Worker Nodes (WN)
- Storage Element (SE)
- Replica Catalog (RC)
- User Interface (UI)
- Resource Broker (RB)
- Information Service (IS)
4EDG Testbed Configuration
UI User Interface
CE Computing Element
SE Storage Element
Minimal Testbed
Proxy Proxy renewal
RB Resource Broker
LCFG Installation Server
RC Replica Catalog
MDS Meta Data Server
5EDG Configuration files
- EDG configuration files stored in the DataGrid
cvs repository - http//marianne.in2p3.fr/datagrid/testbed1/reposit
ories/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) -
6RPM configuration files
7RPM 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/rpm
cfg - They include two types of files
- header files (.h)
- template configurations
8RPM config files header files (I)
- The RPM config file is a list of RPMs
specifications, each of the following form - prefixrpmname-version-release/archflags
- 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
9RPM 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
10RPM 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-2s
11RPM 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
12RPM 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
13RPM 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-9s
- sgml-common-0.1-7s
- docbook-3.1-3s
- stylesheets-0.13rh-4s
- openldap-servers-1.2.12-3s
- Or include define directives
- / Define architecture /
- define ISARCH_i386 1
- define ARCH i686
14Component configuration files
15Component 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
- _at_size ltintegergt
- _at_enable ltbooleangt
- References to other components resources
- updaterpms.rpmcfg ltupdate.initrpmcfggt
- 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 dont want to overrride but to add, use
the EXTRA macro instead - EXTRA(hardware.keytable ) en
16Component config files format (II)
- More complex structures can also be defined
- _at_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
17Component 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/sou
rce - 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
18Component config files example 1
/ 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-c
fg.h" auth.rootpwd a1Z1WykXTe2PU
19Component 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.globusconf
enabled 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_mou
ntd SITE_ALLOWED_NETWORKS inet.allo
w_portmap SITE_ALLOWED_NETWORKS inet
.allow_gatekeeper ALL
20Component 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
louis.poncet_at_cern.ch / 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
21SERVER UPGRADE
- Assume LCFGng base server up running
- Populate the RPM repository at /opt/local/linux/6.
2/RPMS with all needed RPMs from EDG central
repository (dont forget to generate the header
files!) - Copy the needed RPM config files from cvs
(edg-release/rpmlist) to the LCFGng server,
/opt/local/linux/6.2/rpmcfg. This files normally
dont need to be modified. - Copy the needed component config files from cvs
(edg-release/source) to the LCFGng server,
/var/obj/conf/server/source.
22SERVER 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. Dont
forget to restart the service afterwards!
23CLIENT 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
-