= Layout and Customization of gLite Templates = [[TracNav]] [[TOC(inline)]] This page contains a description of the layout of templates for gLite provided by QWG and how the site customization should be integrated. See page on template [wiki:Doc/TemplateCustom framework] for more details on template framework structure and site customization. Layout of gLite templates is based on PAN namespaces. This PAN feature brings improved manageability. Among the advantages, it allows : * More structured layout * Easier to guess where a template is located as its relative path is part of its name gLite templates are organized per ''service''. There are 3 categories of services, described in 3 different directories : * `glite` : one directory per gLite high-level service (WN, LFC, ...) * `lcg` : one directory per LCG high-level service (LCG CE and LCG RB) that are still part of gLite (gLite 3.0 only). * `common` : one directory per lower-level service (nfs, ssh, ...) used to configure high-level service. There are a few exceptions to the service-oriented layout of templates : * `users` : to improve consistency in account IDs allocation, all the account related templates (user/group creation) are now in one directory, `common/users`, and are no longer part of service information. There is one template per user/group and the name of this template is generally the name of the user created. Some of them are empty : they are just placeholders to allow a site to define this account. * `common/security` : this directory contains all the templates related to security configuration, mainly GSI (host certificates checking, accepted CAs, CRL management...) In addition, gLite templates include the following hierarchies : * `machine-types` : one template per machine type describing configuration (including OS, VO configuration...) for a machine dedicated to the corresponding service. * `vo` : all the VO related information. * `components` : description of NCM components related to gLite services used in other gLite templates (doesn't include OS related components). * `defaults/glite` : templates providing sensible default values, mainly `site.tpl' for default site parameter values. * `repository` : template defining RPM repositories where gLite RPMs are located. ''May need to be edited to match site repository names.'' Inside each service directory, template names are quite standardized. Main templates, available in every service where it is relevant, are : * `rpms/arch/config.tpl` : contains all the RPMs required to run the service on the corresponding OS architecture (in gLite 3.0 templates where there was only one architecture supported, the corresponding template was `rpms.tpl`). * `service.tpl` : contains all middleware components that need to be configured to run a specific service. This is mainly used for high level services, like CE, WN, BDII... This doesn't include any OS related information. * `config.tpl` : contains all the configuration information required to configure the service itself (but not the included services). This template is generally responsible for including the relevant RPMs related templates. Some services are made of several sub-components using different configuration information but providing no specific RPMs (e.g. `gridice`). In this case, `config.tpl` is replaced by one template for each sub-component, named after the sub-component name. If the sub-component requires some RPMs, a sub-directory is created (e.g. `nfs/client` and `nfs/server`) and if they share common configuration information, the template for this is generally placed in the parent directory (e.g. `nfs`) and the template is generally named `base.tpl`.