# IML deployment client

This client is a set of bash scripts to deploy a package that was built on th IML CI server.

```mermaid
graph LR

    %% ----- STYLING
    style CIserver     fill:none,stroke:#aaa,stroke-dasharray: 3 5
    style DeployClient fill:#8e8,stroke:#4a3,stroke-width:2px

    %% ----- GRAPH
    subgraph CIserver
        CI(CI<br>deployment<br>web gui) --> |Build| PkgDir 
        PkgDir[Package<br>dir]
    end

    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

```

You need to put the files to the appliation servers. The task of the deployment client are:

* fetch software with a secure download
* extract the packages
* generates configs by replacing variables in templates

This project is related to

* CI deployment web gui <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment> - it builds the software packages
* CI package server <https://git-repo.iml.unibe.ch/iml-open-source/ci-pkg> - a sattelite with all build packages