Git Product home page Git Product logo

galleon's Introduction

Galleon Provisioning

Overview

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.

Download and Installation of the Command Line Tool

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.

Project Modules

Module galleon-parent

Defines main version and common dependencies of the project.

Module core

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.

Module cli

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.

CLI Commands

The CLI commands help is printed by calling the help command.

Full documentation of the CLI commands can be found in this documentation.

Building and launching the tool

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.