|
10 | 10 | ---
|
11 | 11 | In the first [article](https://developer.hpe.com/blog/willing-to-build-up-your-own-workshops-on-demand-infrastructure/) of this series, I described the reasons behind the decision to open source our Workshops-on-Demand (WoD) project and gave you a comprehensive picture of the project's overall infrastructure. In this second article, I will cover the backend part of the project and explain how to deploy it.
|
12 | 12 |
|
13 |
| -The overall infrastructure can run on physical servers or VMs. We usually designate one server for the frontend and a second server for the backend. You could also decide to separate every single component of each side. |
| 13 | +The overall infrastructure can run on physical servers or VMs. We usually designate one server for the frontend and a second server for the backend. You could also decide to separate every single component of each side. |
| 14 | + |
| 15 | + |
14 | 16 |
|
15 | 17 | 
|
16 | 18 |
|
@@ -53,51 +55,48 @@ Here's a quick look at what can be found in each:
|
53 | 55 | 
|
54 | 56 |
|
55 | 57 | It provides:
|
56 |
| - |
57 |
| -* A complete JupyterHub server with some addons (additional Jupyterhub kernels, Ansible galaxies, and PowerShell libraries) on your system, ready to host Workshops-on-Demand that you can find [here](https://developer.hpe.com/hackshack/workshops).[](https://github.com/Workshops-on-Demand/wod-notebooks.git) |
58 |
| -* A postfix server used for the procmail API |
59 |
| -* An Ansible engine to allow automation |
60 |
| -* A fail2ban service |
61 |
| -* An Admin user to manage everything |
62 |
| -* A set of scripts to handle different tasks such as: |
63 |
| - |
64 |
| - * Notebooks deployment |
65 |
| - * Jupyterhub compliancy |
66 |
| - * Users compliancy |
67 |
| - * Security Management |
| 58 | +• A complete JupyterHub server with some addons (additional Jupyterhub kernels, Ansible galaxies, and PowerShell libraries) on your system, ready to host Workshops-on-Demand that you can find here. |
| 59 | +• A postfix server used for the procmail API |
| 60 | +• An Ansible engine to allow automation |
| 61 | +• A fail2ban service |
| 62 | +• An Admin user to manage everything |
| 63 | +• A set of scripts to handle different tasks such as: |
| 64 | + o Notebooks deployment |
| 65 | + o Jupyterhub compliancy |
| 66 | + o Users compliancy |
| 67 | + o Security Managemen |
68 | 68 |
|
69 | 69 | #### Backend server preparation:
|
70 | 70 |
|
71 | 71 | Before cloning the backend repository, you will need to prepare the server that will host the backend features. When ready, you will proceed with the cloning and then the installation process.
|
72 | 72 |
|
73 |
| -### Prerequesites: |
| 73 | +###### Prerequesites: |
74 | 74 |
|
75 |
| -1. In order to setup the backend server, you will need: |
| 75 | +1. In order to setup the backend server, you will need: |
| 76 | + • A fresh OS install on physical / virtualized server running Ubuntu 20.04 or Centos 7.9 leveraging any deployment mechanism of your choice.(e.g. iLO, vagrant, etc.). You may even use this vagrant file to automatically generate a complete setup leveraging vagrant, libvirt and QEMU/KVM. |
| 77 | + • A Linux account with sudo priviledges on your Linux distro. Name it install |
| 78 | + Note: In order to support 100 concurrent users, you need: |
| 79 | + • 2 cpus or more machine |
| 80 | + • 128 GB of RAM |
| 81 | + • 500 GB of storage |
76 | 82 |
|
77 |
| -* A fresh OS install on physical / virtualized server running Ubuntu 20.04 or Centos 7.9 leveraging any deployment mechanism of your choice.(e.g. iLO, vagrant, etc.). You may even use this [vagrant file](https://github.com/Workshops-on-Demand/wod-backend/blob/main/install/Vagrantfile) to automatically generate a complete setup leveraging vagrant, libvirt and QEMU/KVM. |
78 |
| -* A Linux account with sudo priviledges on your Linux distro. Name it `install` |
79 | 83 |
|
80 |
| -**Note:** In order to support 100 concurrent users, you need: |
81 | 84 |
|
82 |
| -* 2 cpus or more machine |
83 |
| -* 128 GB of RAM |
84 |
| -* 500 GB of storage |
| 85 | +We are currently using an HPE ProLiant DL360 Gen10 server on our different production sites. |
85 | 86 |
|
86 |
| -We are currently using an HPE ProLiant DL360 Gen10 server on our different production sites. |
| 87 | +2. When done with OS installation and preparation |
| 88 | + • From the WoD-backend server (aka JupyterHub server), as the install user, you will need to clone the repo first. |
87 | 89 |
|
88 |
| -2. When done with OS installation and preparation |
| 90 | + ```shellsession |
| 91 | + install$ git clone https://github.com/Workshops-on-Demand/wod-backend.git |
| 92 | + install$ cd wod-backend/ |
| 93 | + ``` |
89 | 94 |
|
90 |
| -* From the WoD-backend server (aka JupyterHub server), as the `install` user, you will need to clone the repo first. |
91 |
| - |
92 |
| -```shellsession |
93 |
| -install$ git clone https://github.com/Workshops-on-Demand/wod-backend.git |
94 |
| -install$ cd wod-backend/ |
95 |
| -``` |
96 | 95 |
|
97 |
| -* Examine default installation parameters and adapt when necessary accordingly. Files are self documented. |
98 |
| -* Look at the following files within `ansible/group_vars` directory. |
| 96 | + • Examine default installation parameters and adapt when necessary accordingly. Files are self-documented. |
| 97 | + • Look at the following files within ansible/group_vars directory. |
99 | 98 |
|
100 |
| - * `all.yml` file |
| 99 | + •`all.yml` file |
101 | 100 |
|
102 | 101 | ```shellsession
|
103 | 102 | vi all.yml
|
@@ -170,7 +169,7 @@ SCRIPTPRIVDIR: "{{ WODPRIVDIR }}/scripts"
|
170 | 169 | ANSIBLEPRIVDIR: "{{ WODPRIVDIR }}/ansible"
|
171 | 170 | ```
|
172 | 171 |
|
173 |
| -* `wod-backend` file |
| 172 | + •`wod-backend` file |
174 | 173 |
|
175 | 174 | ```shellsession
|
176 | 175 | vi wod-backend
|
@@ -227,7 +226,7 @@ DATAVISUPORT1-WKSHP-DataVisu101: 22101
|
227 | 226 | DATAVISUPORT2-WKSHP-DataVisu101: 22131
|
228 | 227 | ```
|
229 | 228 |
|
230 |
| -* `wod-system` file |
| 229 | + •`wod-system` file |
231 | 230 |
|
232 | 231 | ```shellsession
|
233 | 232 | vi wod-system
|
|
0 commit comments