Skip to content

hellgate75/go-deploy

Repository files navigation

  trevis-ci  Check last build on Travis-CI

   



Go Deploy

GoLang deploy manager via command line or service

Goals

Definition of an automated deploy system, easy to install, easy to update, compliant to innovation programs. No base frameworks, no system library links. Just get it, and us it. Only need is go-lang 1.3 or upper installed.

Reference Repositories

Reference is on modules repository:

It has a configuration to use a similar technology TLS server (easy-to-use).

Please take a look at:

How does it work?

Server starts with one or more input server certificate/key pairs.

Call help --help or -h from command line to print out the available instructions and command help.

It reads feeds that contains action instructions, it allows to store, read and use variables and create variables via remote shell command.

It allows to write configuration and variables in following encodings:

  • YAML

  • XML

  • JSON

It executes a main feed that can contain multiple sub-feed, imported in the current one, on selected servers or importing new ones, related to new servers.

We are preparing a site about that features.

Write your own modules

In linux system it's possible to write new features using the current client ones or developing new features.

Plugin(s) clients have own interfaces for writing a plugin, available pluggable clients are:

For client(s) plugins (definition of custom clients), you can :

An example of this kind of plugin is available in following repositories:

For deploy custom command(s) plugins you can:

  • Develop Proxy Function interface GetModulesMap

  • Develop a Discovery Function and allocating a map of string (unique plugin name) and ProxyStub that contains the discovery function, providing the command Converter component. Converter interface is used to parse the code from the Feed file and provifing a runnable element implementing StepRunnable interface, filled with parsed data.

An example of this kind of plugin is available in following repositories:

Coming soon

Accordingly to policies we identified following modes for the system:

  • Reading from a physical file (single run) - IMPLEMENTED

  • Reading from a Web Source - FUTURE

  • Reading from a Rest Service - FUTURE

  • Reading from a Stream (JMS, IoT, Database flows, etc...) - FUTURE

Official product documentation

Official produict documentation is available at:

  • The product Wiki pages, that contain a lot of important information about haw to install and how to use this product.

Sample code

Source test script is :

./test.sh

It accepts optional parameters or the help request.

Commands included in the main and sub-feeds will give you an overview of capabilities provided by the framework.

In order to execute the sample you must install Go! TCP Server and execute the binaries in the sample folder

Enjoy the experience.

License

The library is licensed with LGPL v. 3.0 clauses, with prior authorization of author before any production or commercial use. Use of this library or any extension is prohibited due to high risk of damages due to improper use. No warranty is provided for improper or unauthorized use of this library or any implementation.

Any request can be prompted to the author Fabrizio Torelli at the following email address:

hellgate75@gmail.com

About

GoLang deploy manager via command line or service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published