add initial version of env modules article
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
0660b07bb4
commit
f883d33f39
1 changed files with 100 additions and 0 deletions
|
@ -0,0 +1,100 @@
|
|||
[[!meta title="Modular use of environment modules in the systems group]]
|
||||
|
||||
## The problem
|
||||
|
||||
Maintaining custom software as a sysadmin is not easily possible for
|
||||
a research group, because ressources needed to do so easily exceed
|
||||
the available working time, as soon as the number of software is
|
||||
getting too big or the software too complex.
|
||||
|
||||
Researchers on the other hand rely on up-to-date or unpackaged
|
||||
software to do their work.
|
||||
|
||||
## General solution
|
||||
|
||||
One way to solve this issue is to provide a way researchers can install
|
||||
and maintain their own software, without interferring with the system
|
||||
software.
|
||||
|
||||
## Software solution
|
||||
|
||||
One possible software solution is provide by the
|
||||
[Environment Modules Project](http://modules.sourceforge.net/).
|
||||
|
||||
|
||||
## Implementation
|
||||
|
||||
The path **/pub/env-modules** should contain the user maintained
|
||||
software and is mounted via **nfs** and **autofs**.
|
||||
The Environment Modules Package is installed below
|
||||
**/pub/env-modules/Modules**, the files to configure modules
|
||||
(**modulefiles**) reside below **/pub/env-modules/modulefiles/**.
|
||||
|
||||
### Installation of modules
|
||||
|
||||
The usual three step work fine, if you've tcl installed:
|
||||
|
||||
modules-3.2.8% ./configure --prefix=/pub/env-modules --with-module-path=/pub/env-modules/modulefiles
|
||||
modules-3.2.8% make
|
||||
modules-3.2.8% make install
|
||||
|
||||
## Usage
|
||||
|
||||
### Creating a new module (sysadmin part)
|
||||
|
||||
Create a new directory below **/pub/env-modules** and a link
|
||||
below **/pub/env-modules/modulefiles/** to the newly created directory.
|
||||
Now give ownership to the researcher who is maintaining the new software,
|
||||
who can install the software and create a specific modulefile for the
|
||||
software. For instance:
|
||||
|
||||
% mkdir /pub/env-modules/cdist
|
||||
% chown nicosc /pub/env-modules/cdist
|
||||
|
||||
# Delegate support for cdist maintenance into the user owned folder
|
||||
% ln -s /pub/env-modules/cdist/modulefiles /pub/env-modules/modulefiles/cdist
|
||||
|
||||
### Creating a new module (user part)
|
||||
|
||||
Install the software into your directory and create modulefiles below the
|
||||
modulefiles directory:
|
||||
|
||||
% git clone git://git.schottelius.org/cdist /pub/env-modules/cdist/
|
||||
% mkdir /pub/env-modules/cdist/modulefiles
|
||||
% cat << eof > /pub/env-modules/cdist/modulefiles/git
|
||||
#%Module1.0#####################################################################
|
||||
##
|
||||
## cdist modulefile
|
||||
##
|
||||
##
|
||||
##
|
||||
proc ModulesHelp { } {
|
||||
puts stderr "\tLet's you use cdist"
|
||||
}
|
||||
|
||||
module-whatis "Configuration Management"
|
||||
|
||||
append-path PATH /pub/env-modules/cdist/bin
|
||||
eof
|
||||
|
||||
### Using env modules
|
||||
|
||||
To actually make use of the new modules, you need to add env modules into your
|
||||
shell. The following commands illustrates the way for the **bash**:
|
||||
|
||||
% . /pub/env-modules/Modules/3.2.8/init/bash
|
||||
% module avail
|
||||
|
||||
----------------------------------- /pub/env-modules/Modules/versions -----------------------------------
|
||||
3.2.8
|
||||
|
||||
------------------------------------- /pub/env-modules/modulefiles --------------------------------------
|
||||
cdist/git
|
||||
% module load cdist/git
|
||||
% module list
|
||||
Currently Loaded Modulefiles:
|
||||
1) cdist/git
|
||||
|
||||
|
||||
|
||||
[[!tag config eth unix]]
|
Loading…
Reference in a new issue