Easy web terminal for students, when you have to teach system administration, and SSH is not available, not installable or not allowed.
Find a file
2022-06-16 18:06:53 +02:00
ansible terraform: rename output directory 2022-06-16 18:05:09 +02:00
docs Add docs dir 2022-05-31 01:58:46 +02:00
minica Add ignore file for minica 2022-05-31 01:58:37 +02:00
terraform terraform: rewrite ansible_inventory as yaml instead of ini 2022-06-16 18:06:53 +02:00
.gitignore Ignore .env 2022-05-30 21:39:16 +02:00
README.md Fix typo 2022-05-31 14:06:29 +02:00
Vagrantfile Add support for minica 2022-05-31 01:57:41 +02:00

Teaching WebTerm

Easy web terminal for students, when you have to teach system administration, and SSH is not available, not installable or not allowed.

Prerequisites

  • For development
    • Vagrant - manage virtual machines
    • Minica - generate certificates
    • Ansible - provisionning
  • For production
    • Terraform - manage provider infrastructure
    • Ansible - provisionning

Installation

Development / Test

vagrant up

Production

Adjust your environment variables in the .env file

TF_VAR_gandi_key="xxxxxxxx"
TF_VAR_ssh_private_key="$HOME/.ssh/path/to/key"
TF_VAR_ssh_public_key="$HOME/.ssh/path/to/key.pub"
TF_VAR_domain_name="example.com"
ANSIBLE_HOST_KEY_CHECKING=False
ANSIBLE_VAULT_PASSWORD_FILE="$HOME/path/to/passphrase"

And load it

source ../.env

Then create the infrastructure:

cd terraform/
terraform plan
terraform apply
cd ..

And install everything:

cd ansible
ansible-playbook -i inventories/terraform playbook.yml
cd ..

Usage

Open your web browser and type the gateway IP or domain.

For development

For production:

  • Please use the credentials defined in ansible/host_vars/*