Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
|
Although each component of the Grassroots infrastructure can be built in isolation, it can be much easier to manage all of the components together. That is what this package achieves.
There are various third party packages that Grassroots uses and there is an installation script to simplify this process.
The first stage is to make sure that the required OS packages are installed. On most systems the following packages are already installed, but you can make sure by running:
Check to see whether libcurl is installed by running the following command
If no file is found it can be installed from one of the following packages:
or
or
You only need to install one of these so simply choose whichever one you prefer.
The other dependencies can be installed using the supplied installation script at build-config/unix/linux/install_dependencies
.
The first stage is to edit this file and set the path that you want to install the Grassroots dependencies to. This is specified by the GRASSROOTS_EXTRAS_INSTALL_PATH
variable within this file.
Once you have set this to the path that you would like to install to, you can run this script e.g.
The various libraries annd tools that are part of Grassroots are built from source so you need to create the structure to store them. This is not where the actual files that are generated will be installed to, this is simply a place to generate them. The default layout for the subdirectories containing the Grassroots can be achieved by:
which gives the layout shown below
Where any client, server or service components can be cloned inside the clients, handlers, servers or services directories respectively.
You can view the available repositories of each type by going to one of the links below:
The next stage is to set your preferences which is done in a file called build-config/unix/<PLATFORM NAME>/dependencies.properties
. For example if you are running on Linux, then this would be build-config/unix/linux/dependencies.properties
, whereas on a mac it would be build-config/unix/mac/dependencies.properties
. An example one is provided so you can get an initial version of your preferences file by making a copy of this by doing
We can now proceed to amending this file, unix/linux/dependencies.properties
, to your chosen layout.
The three main variables are:
DIR_GRASSROOTS_INSTALL: This is the Grassroots folder where the libraries, services, configuration, etc. will be stored. So to set to this to /opt/grassroots
, the setting would be
export DIR_GRASSROOTS_INSTALL := /opt/grassroots
DIR_APACHE: This is the path to your Apache Httpd installation. So to set to this to /opt/apache
, the setting would be
export DIR_APACHE := /opt/apache
If however you are using an Apache Httpd that is spread across different directories, such as is often the case when using the OS package manager, then simply leave this blank
export DIR_APACHE :=
DIR_GRASSROOTS_EXTRAS: This should be set to the value you used for GRASSROOTS_EXTRAS_INSTALL_PATH
when you installed the dependencies. So to set to this to /opt/grassroots/extras
, the setting would be
export DIR_GRASSROOTS_EXTRAS := /opt/grassroots/extras
If you have iRODS installed and you wish to the Grassroots iRODS functionality such as the search service, etc., then this can be configured here too.
The variables are:
IRODS_ENABLED: Set this to 0 to disable the iRODS support and 1 to enable it. For example, to enable the iRODS functionality within Grassroots:
export IRODS_ENABLED := 1
IRODS_VERSION: This specifies the major version of the iRODS installation. For recent installations this will be 4.x, so the setting is
export IRODS_VERSION := 4
Grassroots has support for running jobs on high performance computing clusters using DRMAA via LSF, Slurm or HTCondor. When Grassroots is built, you have to specify which system, if any, you wish to use it with. The 3 variables are SLURM_DRMAA_ENABLED
, LSF_DRMAA_ENABLED
and HTCONDOR_DRMAA_ENABLED
and setting them to 0 disables and setting one of them to 1 enables the DRMAA support for that system. So for example, to disable all DRMAA support, the configuration would be:
To enable HTCondor support, the configuration would be:
Once you have finished setting up the dependencies.properties
file, you can then proceed to building Grassroots.
Although any web server could potentially be used as Grassroots server, the default is to use the Apache httpd web server as it has the the benefit of being able to add functionality easily with its modular approach.
On Linux, there are 2 options for installing httpd; using the OS package manager or building it from source
To install httpd using the package manager on Debian and its derivatives such as Ubuntu, Mint, etc., you can run the following commands
To build the Grassroots system, you need to specify the build subfolder which is unix/<PLATFORM>
. So, for example, to build it for Linux, the folder is unix/linux
and for MacOS it is unix/mac
. These are specified using the
make -C unix/linux
make -C unix/mac
make -C unix/linux all
make -C unix/linux install
make -C unix/linux git-pull
make -C unix/linux git-check
make -C unix/linux show-config ```