teaching-webterm/README.md
2022-05-31 14:06:29 +02:00

1.2 KiB

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/*