IML deployment client

This client is a set of bash scripts to deploy a package that was built on th IML CI server. It handles a secure download, extracts the package, generates configs.

graph LR CI(CI<br>deployment<br>web gui) --> |Build| PkgDir PkgDir[Package<br>dir] PkgDir --> |rsync| Pkg1 PkgDir --> |rsync| Pkg2 PkgDir --> |rsync| Pkg3 Pkg1(CI package<br>server 1) --> |secure<br>download| DeployClient Pkg2(CI package<br>server N) Pkg3(Puppet master) subgraph Appserver DeployClient --> |installs| ApplicationA(Application A) DeployClient --> |installs| ApplicationB(Application B) end

This project is related to

License

GNU GPL 3.0

Source

URL: https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/

Requirements

A few Linux standard tools are required. It should run on any GNU Linux.

  • Bash
  • Curl
  • sed

Tested environments:

  • CentOS
  • Debian
  • Manjaro
  • Ubuntu

Features

  • Secure download from CI package server using shared secret
  • detect a changed download to run an upgrade or just apply rules for configs
  • Extraction to target dir
  • Cleanup: delete all files in target dir that are not included in the software package
  • Create (config) files by inserting strings into placeholders
  • Several hooks to allow custom actions, eg. restart a service un changes
  • Handle multiple applications on a machine (aka profiles)
  • Writes a logfile per execution and application (and to stdout)