Galleon is a provisioning tool designed to create and maintain software distributions that consist of one or more products (or components). The tool supports:
-
adding products to a distribution;
-
their default and customized configurations;
-
-
removing products from a distribution;
-
integration of the products in the distribution;
-
resolution and validation of the resulting configuration and runtime dependencies;
-
patching and version updates;
-
product-specific provisioning plugins;
-
detection of the changes in the provisioned distribution (its filesystem content and/or its configuration) applied by the user manually or by means of other management tools
-
to be able to preserve them after a version upgrade (having made sure the changes are compatible in the new version)
-
or create a provisioning configuration that could be used to reproduce the state of the distribution including the user changes;
-
-
exporting the provisioning configuration of the current state of the distribution with the goal to reproduce it later at another location.
The tool includes a command-line interface and a public API. There is also a Maven plugin that allows provisioning a distribution according to the provided configuration.
Releases of the command line tool are available on the releases page.
Download and unzip the release zip and add the bin
dir to your system path. Use galleon.sh
or galleon.bat
to launch the tool.
General provisioning and feature-pack API. Which allows to provision the desired installation specification at a specified location, install additional and/or uninstall existing feature-packs, export the currently provisioned specification to a file with the purpose to reproduce it at a different location.
Command line interface which allows to:
-
Build feature-packs and install them into the Maven repository;
-
Provision an installation by pulling the feature-packs from the Maven repository and installing them at the specified location.;
-
View the currently provisioned installation specification;
-
Export the currently provisioned installation specification to a file with goal to reproduce the installation later.
The Maven assembly plug-in is configured to create a single executable JAR file which contains all the dependencies.
The following filesystem commands are available:
-
cd - change current work directory
-
pwd - print current work directory
-
mkdir - create a new directory if it does not already exist
-
ls - list the content of a directory
-
less - display the content of a file
-
rm - remove a file
[workdir]$ provision-spec <spec-file-path> [--dir=<installation-dir>]
(Re-)Provisions the installation according to installation specification provided in an XML file.
Arguments:
<path> - filesystem path to the XML file describing the desired
installation specification.
--dir - optional, target installation directory. If the argument is
missing, the current work directory is assumed as the target.
[workdir]$ install <feature-pack-gav> [--dir=<installation-dir>]
Adds the feature-pack to the installation specification (or creates a new spec if one does not exist yet) and (re-)provisions the target installation.
Arguments:
<feature-pack-gav> - groupId:artifactId:version of the feature-pack to install.
--dir - optional, target installation directory. If the argument is
missing, the current work directory is assumed as the target.
[workdir]$ uninstall <feature-pack-gav> [--dir=<installation-dir>]
Removes the feature-pack from the installation specification and (re-)provisions the target installation.
Arguments:
<feature-pack-gav> - groupId:artifactId:version of the feature-pack to
uninstall.
--dir - optional, target installation directory. If the argument is
missing, the current work directory is assumed as the target.
[workdir]$ provisioned-spec display [--verbose] [--dir=<installation-dir>]
Displays the currently provisioned installation specification.
Arguments:
--verbose(-v) - whether to include feature-packs not explicitly chosen by
the user but installed as dependencies of other feature-packs.
--dir - optional, target installation directory. If the argument is
missing, the current work directory is assumed as the target.
[workdir]$ provisioned-spec export <file-path>
Exports the currently provisioned installation specification to the specified
file in the XML format. The resulting file can be used as an argument to
provision-spec
command.
Arguments:
<file-path> - file path to store the provisioned specification to.
The tool can be built by executing the following Maven command:
mvn clean install
The executable JAR will be built in cli/target/galleon-cli.jar
There is also a convenience do.sh
script in the root directory
of the project. If executed w/o arguments, it’ll build and launch the tool.
./do.sh build
will only build the tool.
./do.sh run
will only launch the already built tool.