Linux
- First you will prepare your host for an hypervisor
- Second you will prepare your python environment
Prepare your Provider
-
Vagrant
- In order to download vm and create them on virtualbox you need to install vagrant
- https://developer.hashicorp.com/vagrant/install#linux
-
Virtualbox
- Install virtualbox
-
Install vagrant plugins
Disk space
The lab takes about 77GB (but you have to get the space for the vms vagrant images windows server 2016 (22GB) / windows server 2019 (14GB) / ubuntu 18.04 (502M)) The total space needed for the lab is ~115 GB (depend on the lab you use and it will take more space if you take snapshots), be sure you have enough disk space before install.
RAM
Depending on the lab you will need a lot of ram to run all the virtual machines. Be sure to have at least 20GB for GOAD-Light and 24GB for GOAD.
Tip
Vmware workstation is now free for personal use !
-
Vagrant
- In order to download vm and create them on virtualbox you need to install vagrant
- https://developer.hashicorp.com/vagrant/install#linux
-
Vmware workstation
- Install vmware workstation https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Workstation+Pro
-
Install vagrant vmware utility : https://developer.hashicorp.com/vagrant/install/vmware
-
Install the following vagrant plugins:
Disk space
The lab takes about 77GB (but you have to get the space for the vms vagrant images windows server 2016 (22GB) / windows server 2019 (14GB) / ubuntu 18.04 (502M)) The total space needed for the lab is ~115 GB (depend on the lab you use and it will take more space if you take snapshots), be sure you have enough disk space before install.
RAM
Depending on the lab you will need a lot of ram to run all the virtual machines. Be sure to have at least 20GB for GOAD-Light and 24GB for GOAD.
- Azure CLI
- Install azure cli https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux
- Connect to azure :
- Terraform
- The installation to Azure use terraform so you will have to install it: https://developer.hashicorp.com/terraform/install
-
AWS CLI
- Install aws cli https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions
-
- Go to IAM > User > your user > Security credentials
- Click the Create access key button
- Create a group "[goad]" in credentials file ~/.aws/credentials
- Be sure to chmod 400 the file
Create an aws access key and secret for goad usage
credentials in plain text
Storing credentials in plain text is always a bad idea, but aws cli work like that be sure to restrain the right access to this file
-
Terraform
- The installation to Aws use terraform so you will have to install it: https://developer.hashicorp.com/terraform/install
- Proxmox install is very complex and use a lot of steps
- A complete guide to proxmox installation is available here : https://mayfly277.github.io/categories/proxmox/
- To add GOAD on Ludus please use goad directly on the server.
-
By now goad can work only directly on the server and not from a workstation client.
-
Install Ludus : https://docs.ludus.cloud/docs/quick-start/install-ludus/
-
Be sure to create an administrator user and keep his api key
-
Once your installation is complete on ludus server (debian 12) and your user is created do :
Prepare your python environment for goad.py
-
To run the Goad installation/management script you will need :
- Python (version between 3.8 and 3.11) with venv module installed
-
Install the python3-venv corresponding to your python version
- Example:
Python version
Be sure to use a python version between python3.8 and python 3.11. Others python versions are not supported by now due to incompatibility with the fixed version in the requirements.
Info
With this method ansible-core will not be installed locally on your venv
- be sure you have docker installed on your os for the provisioning part (ansible will be run from the container)
-
To run the Goad installation/management script you will need :
- Python (version >= 3.8) with venv module installed
-
Install the python3-venv corresponding to your python version
- Example:
- Run goad with
./goad_docker.sh
instead of./goad.sh
to install the dependencies without the ansible part (local and runner provisioning method will not be available)