netgroup-polito / CrownLabs

Kubernetes-based Remote Laboratories
https://crownlabs.polito.it
Apache License 2.0
107 stars 42 forks source link

Automating GNS3 lab setup via Ansible #864

Closed fracappa closed 1 year ago

fracappa commented 1 year ago

Description

This pull request introduces Ansible automation to streamline the GNS3 setup process. It replaces manual operations with automated tasks, making the setup more efficient and user-friendly.

Steps

  1. Download the Cisco IOS Image
  2. Start GNS3
  3. Create a new template for the Cisco 2691 router
  4. Configure the Xfce4 terminal in GNS3
  5. Add the network-multitool docker image to the list of end devices

Step 2 is typically performed using the GUI. To enhance the process and ensure proper systemd integration, we have created a custom gns3.service file.

How Has This Been Tested?

This setup has been tested locally on the target host.

kingmakerbot commented 1 year ago

Hi @francescocappa. Thanks for your PR.

I am @kingmakerbot. You can interact with me issuing a slash command in the first line of a comment. Currently, I understand the following commands:

Make sure this PR appears in the CrownLabs changelog, adding one of the following labels:

QcFe commented 1 year ago

Thanks for the PR! Only thing, I'd use NFS for retrieving the needed files, as has been done here: https://github.com/netgroup-polito/CrownLabs/commit/be3ac2a7f97a97d8c55dfb563e679767a5648573 (search for matlab_nfs_source to see how it has been done).

I already created a volume and added the image inside, I can send you privately the details for testing.

fracappa commented 1 year ago

@QcFe I have implemented the modifications as per your suggested. I introduced a variable called gns3_device_images, which points to an NFS path containing the required files. After testing it in a local environment, it appears to be functioning correctly. If you have any further feedback, please let me know

fracappa commented 1 year ago

Done

QcFe commented 1 year ago

/merge