Skip to content

how_to_deploy_winslow

Axel Schwab edited this page Mar 12, 2024 · 10 revisions

How to deploy winslow in a production like environment

Prerequisite

How to proceed

Winslow is a distributed system, which can be deployed on multiple hosts, for more information click here.
For multi host usage, a NFS-Server is required to share the workdir between all Winslow instances. This guide assumes, that the server which provides the NFS-Server is also running Winslow. See the following image for a better understanding of the system overview: deploy.png

  1. Select a server to run the NFS-Server and do Install NFS-Server
  2. Do Start Winslow on every host, which will run Winslow

Install NFS-Server

Important

This step is only required on the host, which will provide the NFS-Server.

  1. Install nfs
    • sudo apt update && sudo apt install nfs-kernel-server
  2. Create the following directories for winslow
    • sudo mkdir -p /path/to/nfs/winslow/workdir
    • sudo mkdir -p /path/to/nfs/winslow/workdir/run
    • sudo mkdir -p /path/to/nfs/winslow/workdir/projects
    • sudo mkdir -p /path/to/nfs/winslow/workdir/pipelines
  3. Export the directories
    • sudo vim /etc/exports and add the absolut path of the folders created above
      /path/to/nfs/winslow/workdir *(rw,no_root_squash,all_squash,anonuid=0,anongid=0)
      /path/to/nfs/winslow/workdir/run *(rw,no_root_squash,all_squash,anonuid=0,anongid=0)
      /path/to/nfs/winslow/workdir/projects *(rw,no_root_squash,all_squash,anonuid=0,anongid=0)
      /path/to/nfs/winslow/workdir/pipelines *(rw,no_root_squash,all_squash,anonuid=0,anongid=0)
      
      It is recommended to limit access for the NFS share by setting a specific ip-range 127.0.0.1(rw,...) or 10.150.20.0/24(rw,...) instead of *(rw,...).
  4. At last restart nfs
    • sudo systemctl restart nfs-server.service
  5. Done
drawing

Start Winslow

This guide provides a step-by-step approach how to set up winslow. It is assumed that the NFS-Server is already running and the workdir is shared.

Tip

This step is required on every host, which will run Winslow (see server 1...N from the image above).

  1. Install Docker
  2. Checkout Winslow
    • git clone https://github.com/IT-Designers/winslow.git
    • cd winslow/node
  3. Set Winslow Env-Variables in start-winslow.sh
    • sudo vim start-winslow.sh and set
    • STORAGE_TYPE="nfs"
    • STORAGE_PATH="nfs-server:/path/to/nfs/winslow/workdir"
    • To use the web frontend uncomment HTTP="80". It is sufficient to do this only on one host.
  4. Enhanced Configuration (Optional) ℹ️
  5. Finally, start Winslow
    • sudo ./start-winslow.sh
  6. Done
drawing

Access Winslow

Open a browser and navigate to the IP of the host, which runs the Winslow WebUi.

hello_there_winslow.png

Troubleshooting

winslow_deployment_troubleshooting.jpeg

  • TO BE DONE

Further Information

Clone this wiki locally