This commit is contained in:
bluxmit 2021-09-23 11:39:38 +00:00
commit e228b2ce29
5 changed files with 79 additions and 53 deletions

View file

@ -28,14 +28,14 @@ backups; can be used by several users and make collaboration easier.***
<img src="./img/wid-advantages.svg" alt="Htop">
</p>
Essentially, workspace - is everything needed for a specific kind of work, packed in a docker image. It is a self-contained environment
Essentially, workspace - is a toolset for a specific kind of work, packed in a docker image. It is a self-contained environment
that is ready to use as soon as you execute `docker run`. Dockerized workspaces do not require other tools to be set up on the host
machine, apart from docker itself. You can use such workspace locally or launch it securely on any cloud server.
Workspace would typically include file browser, code editor, IDE, terminal, job scheduler, resource and process monitor, documentation
solution. Designed for specific IT projects, workspaces could also include frameworks, linters, profilers, testing, and auto-documentation tools,
tools to visualize and study data, report generators, task orchestrators, infrastructure visualization tools, interactive notebooks,
simulation UIs, custom dashboards, and many other.
simulation UIs, custom dashboards, etc.
<div align="center" style="font-style: italic;">
Demo: Ansible-Terraform workspace
@ -47,39 +47,65 @@ simulation UIs, custom dashboards, and many other.
## Available workspaces
[`Ubuntu-workspace`](./workspaces/ubuntu-workspace/README.md). Docker as a light-weight Virtual Machine. It
### [`Ubuntu-workspace`](./workspaces/ubuntu-workspace/README.md)
Docker as a light-weight Virtual Machine. It
provides isolation of environments, but uses less resources than VMs. Allows to start multiple processes inside the
same docker container, has docker-in-docker, Python and Node.js, and a collection of common applications such as text editors,
git, supervisord, z-shell etc. Ubuntu-workspace with browser-based terminal can be used on both local and remote server with the same experience.
When it runs on the remote server, the access can be restricted with a password, and secured with TLS encryption.
When it runs on the remote server, the access can be restricted with a password, and secured with TLS encryption.
[`Python-Workspace`](./workspaces/python-workspace/README.md). Python development enviroment inside the isolated docker container. Includes VS-code IDE,
```
docker run --name space-1 -d -p 8020-8030:8020-8030 alnoda/ubuntu-workspace
```
### [`Workspace-in-docker`](./workspaces/workspace-in-docker/README.md)
General-purpose dockerized workspace - an environment fully isolated inside a docker container.
It can run anywhere, can be started and stopped, moved to another machine, archived to file or restored, pushed to docker registry, started on a cloud server.
This workspace has a powerful cod editor (browser-based VS-Code version), its own UI, and a collection of applications for more
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
MkDocs for documentation of the workspace and projects. Has all the features of the Base-workspace and Ubuntu-workspace.
```
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/workspace-in-docker
```
### [`Codeserver-Workspace`](./workspaces/codeserver-workspace/README.md)
An alternative workspace to the workspace-in-docker. It has all the features ot the latter, except for the
different implementation of the Visual Studio Code. While workspace-in-docker has [Eclipse Theia IDE](https://theia-ide.org/), Codeserver-Workspace
includes [Codeserver](https://github.com/cdr/code-server) instead.
```
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/codeserver-workspace
```
### [`Python-Workspace`](./workspaces/python-workspace/README.md)
Python development enviroment inside the isolated docker container. Includes VS-code IDE,
job scheduler and other tools for linting, testing, auto-documentation and profiling. Start coding in Python rght away! Has all the features of
the Base-workspace and Ubuntu-workspace.
the Base-workspace and Ubuntu-workspace.
[`Ansible-Terraform-Workspace`](./workspaces/ansible-terraform-workspace/README.md). This workspace - is a "dockerized" development environment
```
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/python-workspace
```
### [`Ansible-Terraform-Workspace`](./workspaces/ansible-terraform-workspace/README.md)
This workspace - is a "dockerized" development environment
with [Ansible](https://docs.ansible.com/), [Terraform](https://www.terraform.io/) and lots of other stuff installed,
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure it with Ansible.
Workspace will help to code and develop; visualize infrastructures and planned terraform changes;
display ansible hosts plays; schedule and observe executions and more! Has all the features of
the Base-workspace and Ubuntu-workspace.
the Base-workspace and Ubuntu-workspace.
[`MkDocs-MagicSpace`](./workspaces/mkdocs-magicspace/README.md) - an all-in-one tool, carefully crafted to develop, build and serve awesome static websites, for the purpose
```
docker run --name space-1 -d -p 8020-8035:8020-8035 -p 9000:9000 alnoda/ansible-terraform-workspace
```
### [`MkDocs-MagicSpace`](./workspaces/mkdocs-magicspace/README.md)
All-in-one tool, carefully crafted to develop, build and serve awesome static websites, for the purpose
of documentation, tutorials, and training. Has all the features of the Base-workspace and Ubuntu-workspace.
[`Workspace-in-docker`](./workspaces/workspace-in-docker/README.md). General-purpose dockerized workspace - an environment fully isolated inside a docker container.
It can run anywhere, can be started and stopped, moved to another machine, archived to file or restored, pushed to docker registry, started on a cloud server.
This workspace has a powerful cod editor (browser-based VS-Code version), its own UI, and a collection of applications for more
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
MkDocs for documentation of the workspace and projects. Has all the features of the Base-workspace and Ubuntu-workspace.
[`Codeserver-Workspace`](./workspaces/codeserver-workspace/README.md) - an alternative workspace to the `workspace-in-docker`. It has all the features ot the latter, except for the
different implementation of the Visual Studio Code. While `workspace-in-docker` has [Eclipse Theia IDE](https://theia-ide.org/), Codeserver-Workspace
includes [Codeserver](https://github.com/cdr/code-server) instead.
[`Base-Workspace`](./workspaces/base-workspace/README.md). Base-Workspace has its own UI, and a collection of applications for more
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
MkDocs for documentation of the workspace and projects. Does not include code editor, has all the features of Ubuntu-workspace.
```
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/mkdocs-magicspace
```
## Why workspace In Docker
@ -145,8 +171,8 @@ a self-contained isolated environment first.
For example, if you are a data analyst, data scientist, researcher you make experiments, simulations, train ML models. Such work often involves
frequent changes to your environment (updating packages, install new applications, change datasets, etc.). To reproduce analytics,
experiment, or ML model training you need to have an exact version of your environment at a specific point in time. Dockerized workspaces in docker
solve this problem very well! At any moment you can backup and save your entire workspace running in the docker container, and launch it
as a new workspace whenever you want.
solve this problem very well! At any moment you can backup and save your entire workspace as an image, and launch it
as a new workspace whenever and wherever you want.
**Collaboration made simple.** You need a workspace that can be shared with your peers or colleagues. Launch it on the cloud server
and use together.

View file

@ -1,10 +1,10 @@
# Ansible-Terraform Workspace
This workspace - is a "dockerized" development environment with [Ansible](https://docs.ansible.com/)
and [Terraform](https://www.terraform.io/) and lots of other stuff installed,
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure it with Ansible.
This workspace - is a "dockerized" development environment with [Ansible](https://docs.ansible.com/),
[Terraform](https://www.terraform.io/), and lots of other stuff installed,
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure with Ansible.
Workspace will help to code and develop; visualize infrastructures and planned terraform changes;
display ansible hosts plays; schedule and observe executions and more!
display ansible hosts; schedule plays and much more!
<p align="center">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ansible-terraform-workspace/img/ansible-terraform-wid-collage.png" alt="Collage">
@ -230,7 +230,7 @@ install in future. So we map several extra ports just inn case.
Ansible-Terraform workspace has the following applications installed, but not started by default
1) **Terraform Rover** provides great visualisation for your terraform infrastructure. To visualize any (innitialized) teffarorm project
1) **Terraform Rover** provides great visualization for your Terraform infrastructure. To visualize any (initialized) Teffarorm project
execute
> `rover --workingDir <TERRAFORM_PROJECT_FOLDER>`
@ -306,7 +306,7 @@ This way allows to ssh into the workspace as a root user at any time, even if th
docker exec -it --user=root space-1 /bin/zsh
```
You can work in Ubuntu terminal now. Execute the followinng command to know your workspace user
You can work in the Ubuntu terminal now. Execute the following command to know your workspace user
> `whoami`
@ -387,15 +387,15 @@ After the command is executed, you will see folder `/home/abc/utils/remote` is c
</p>
. Copy this folder to the remote server where you want to launch Ansible-Terraform workspace.
Copy this folder to the remote server where you want to launch Ansible-Terraform workspace.
You can use cyberduck or [scp](https://kb.iu.edu/d/agye). ssh to the server, cd to the directory you copied and execute
```sh
docker-compose up -d
```
That's it, you workspace is running securely on the remote server, using
self-signed TLS certificates for encrypted https communication between you laptop and the remote workspace, and authentication is added.
That's it, your workspace is running securely on the remote server, using
self-signed TLS certificates for encrypted HTTPS communication between your laptop and the remote workspace, and authentication is added.
@ -414,7 +414,7 @@ fully configured in the Ansible-Terraform workspace - it captures any execution
of any ansible playbook.
Ara server is up and running in the workspace, and available on the internal port 8029. If you mapped standard ports to your Ansible-Terraform
workspcae, then Ansible Ara WEB UI is onn [localhost:8029](http://localhost:8029)
workspcae, then Ansible Ara WEB UI is on [localhost:8029](http://localhost:8029)
<p align="center">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ansible-terraform-workspace/img/Ansible-Ara.gif" alt="Htop" width="750">
@ -544,8 +544,8 @@ Create infrastructure with
#### Terraform report
A small tool that produces several outputs from a terraform project, and visualizes terraform plan as an interactive HTML page.
Terraform report can be generated from the small example terraform project, included in the Workspcae
A small tool that produces several outputs from a terraform project and visualizes terraform plan as an interactive HTML page.
Terraform report can be generated from the small example terraform project, included in the Workspace
> `cd /home/examples/terraform-scaleway/ && terraform-report`
@ -606,8 +606,8 @@ Use Static File Server to review the report
#### Terraform Rover
[Rover](https://github.com/im2nguyen/rover) - is an awesome Terraform vizualizer with browser-based UI. Rover helps to better understand
Terraform state and planned changes. To see how Rover works, you can use a basic tterraform example in folder */home/examples/terraform-scaleway/*.
[Rover](https://github.com/im2nguyen/rover) - is an awesome Terraform visualizer with browser-based UI. Rover helps to better understand
Terraform state and planned changes. To see how Rover works, you can use a basic Terraform example in folder */home/examples/terraform-scaleway/*.
Initialize Terraform project first
> `cd /home/examples/terraform-scaleway/ && terraform init`

View file

@ -6,7 +6,7 @@ MkDocs-MagicSpace is an all-in-one tool, carefully crafted to make the developme
websites like [**this one**](https://mkdocs-magicspace.alnoda.org/) as easy as possible.
<p align="center">
<img src="./img/mkdocs-collage.png" alt="Collage">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-collage.png" alt="Collage">
</p>
@ -67,7 +67,7 @@ The Workspace contains browser-based Visual Studio Code, and several browser-bas
</div>
<p align="center">
<img src="./img/mkdocs-magicspace-demo.gif" alt="Magicspace demo" width="900">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-magicspace-demo.gif" alt="Magicspace demo" width="900">
</p>
- **Workspace UI** - launch all workspace tools from one place.
@ -299,7 +299,7 @@ use utility `/home/abc/utils/remote.py` to generate create docker-compose projec
After the command is executed, you will see folder `/home/abc/utils/remote` is created. Download it out from the workspace to the local environment using the Filebrowser:
<p align="center">
<img src="./img/mkdocs-remote.gif" alt="mkdocs-remote.gif" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-remote.gif" alt="mkdocs-remote.gif" width="750">
</p>
. Copy this folder to the remote server where you want to launch the Python workspace.

View file

@ -4,7 +4,7 @@ Use docker as a lightweight Virtual Machine. Provides isolation of environments,
and requires less resources than VMs. Run locally or on a cloud server (with HTTPS and auth).
<p align="center">
<img src="./img/ubuntu-wid-collage.png" alt="Collage">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-wid-collage.png" alt="Collage">
</p>
Try it out:
@ -59,7 +59,7 @@ when you need interactive Linux, python, or node shell for ad-hock tasks.
</div>
<p align="center">
<img src="img/ubuntu-workspace.gif" alt="Ubuntu workspace" width="900">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-workspace.gif" alt="Ubuntu workspace" width="900">
</p>
### Standard
@ -73,7 +73,7 @@ runs on the remote server, access can be restricted with a password, and communi
</div>
<p align="center">
<img src="img/ubuntu-workspace-remote.gif" alt="Standard Ubuntu workspace" width="900">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-workspace-remote.gif" alt="Standard Ubuntu workspace" width="900">
</p>
@ -240,13 +240,13 @@ Now you can navigate in your browser to `<IP_OF_CLOUD_SERVER_WITH_PUBLIC_ACCESS>
**NOTE:** The HTTPS is with self-signed certificate, and your browser will show a warning, asking you to accept the risk
<p align="center">
<img src="img/accept-risks.png" alt="accept-risks.png" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/accept-risks.png" alt="accept-risks.png" width="750">
</p>
After you accept the risk, authentication window will appear asking you the user and password, that you have set as`<ANY_USER_NAME>`, `<ANY_USER_PASSWORD>`.
<p align="center">
<img src="img/auth.png" alt="auth.png" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/auth.png" alt="auth.png" width="750">
</p>
@ -260,7 +260,7 @@ Explore file system with Midnight Commander
> ```mc```
<p align="center">
<img src="img/mc.png" alt="Moonlignt commander" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/mc.png" alt="Moonlignt commander" width="750">
</p>
Launch system-monitor, process-viewer and process-manager
@ -268,7 +268,7 @@ Launch system-monitor, process-viewer and process-manager
htop
```
<p align="center">
<img src="img/htop.png" alt="Htop" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/htop.png" alt="Htop" width="750">
</p>
Explore file/folder sizes
@ -276,7 +276,7 @@ Explore file/folder sizes
ncdu
```
<p align="center">
<img src="img/ncdu.png" alt="Htop" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ncdu.png" alt="Htop" width="750">
</p>
Text editors ```vim```, ```nano``` and ```mcedit``` are available. For example, clone git repo and edit python file with nano
@ -286,14 +286,14 @@ cd sendmail
nano sendmail.py
```
<p align="center">
<img src="img/nano.png" alt="Htop" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/nano.png" alt="Htop" width="750">
</p>
```
mcedit sendmail.py
```
<p align="center">
<img src="img/mcedit.png" alt="Htop" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/mcedit.png" alt="Htop" width="750">
</p>
## Use Workspace

View file

@ -232,7 +232,7 @@ Open [localhost:8020](http://localhost:8020), and from there open other applicat
</div>
<p align="center">
<img src="./img/wid-ui.png" alt="wid-ui.png" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-ui.png" alt="wid-ui.png" width="750">
</p>
The rest of the ports from the port range can be used in order to expose optional applications, or applications you might
@ -313,7 +313,7 @@ use utility `/home/abc/utils/remote.py` to generate create docker-compose projec
After the command is executed, you will see folder `/home/abc/utils/remote` is created. Download it out from the workspace to the local environment using the Filebrowser:
<p align="center">
<img src="./img/wid-remote.gif" alt="generate-remote.gif" width="750">
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-remote.gif" alt="wid-remote.gif" width="750">
</p>
. Copy this folder to the remote server where you want to launch the Python workspace.