Before you begin, ensure the following prerequisites are met:
-
Create a file named
ip_list.txt
containing the actual IP addresses of your Cloudlab nodes. (Always end with a newline \n) -
Ensure you have access to Cloudlab without requiring an SSH passphrase.
- Remove ssh key passphrase to avoid halts due to interactive input
- ssh-keygen -p -f ~/.ssh/your-key
- Verify that
tmux
is installed and working on your local machine.
git clone https://github.com/vhive-serverless/sosp-tutorial-infra-setup/
cd sosp-tutorial-infra-setup
find . -name "*.sh" -type f -exec chmod +x {} \;
Run the script with the following command-line options:
- -q <Number_of_quickstart_VMs>: Number of Quickstart VMs to set up.
- -v <Number_of_invitro_VMs>: Number of Invitro VMs to set up.
- -u <Cloudlab_User>: Your Cloudlab user.
Example usage:
./cloud-lab-vm-setup.sh -q 5 -v 3 -u myuser
This would create separate tmux sessions that run in parallel for each Cloudlab node.
You can view the progress by running these commands:
tmux list-sessions
tmux attach -t {session_name}
This might take around ~5 minutes to be completed. Once the tmux sessions have been terminated, you can access your VMs on each node as follows:
For quickstart VMs, ports would be assigned from 10001 onwards.
Example:
Quickstart VM 01:
ssh vhive@{CLOUD_LAB_IP} -p 10001
Quickstart VM 02:
ssh vhive@{CLOUD_LAB_IP} -p 10002
Default SSH Credentials for VMs are shared on slack and tutorial slides.
For invitro VMs, ports would be assigned from 20001 onwards.
Example:
Invitro VM 01:
ssh invitro@{CLOUD_LAB_IP} -p 20001
Invitro VM 02:
ssh invitro@{CLOUD_LAB_IP} -p 20002
Default SSH Credentials for VMs are shared on slack and tutorial slides.
Usage: ./setup-node.sh <ip> <cloudlab-user>
- Install multipass
Usage: ./add-vms.sh -q <Number_of_quickstart_VMs> -v <Number_of_invitro_VMs> -u <Cloudlab_User> -i <VM_IP>