Giter Site home page Giter Site logo

mc-b / lerngns3 Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 4.22 MB

Digitaler Zwilling für viele Informatik Module in der Ausbildung zum Informatiker EFZ und HF Lehrgang Dipl. Informatiker "cloud-native"

Home Page: https://tbz.ch/weiterbildung-tbz/it-services-engineer-hf-2/

License: Apache License 2.0

HCL 8.46% Shell 91.54%
container education gns3 infrastructure-as-code ioe iot kubernetes cloud-native

lerngns3's Introduction

Lern GNS3


Graphical Network Simulator-3 ist ein Netzwerk-Software-Emulator, der erstmals 2008 veröffentlicht wurde. Er ermöglicht die Kombination von virtuellen und realen Geräten, die zur Simulation komplexer Netzwerke verwendet werden.

Das Projekt stellt die die Umgebungen von LernMAAS und weitere, als Templates und Projekte, in einer GNS3 Umgebung zur Verfügung.

Dieses Projekt basiert auf den Erfahrungen von LernKube, LernMAAS und LernCloud.

Quick Start

Erstellt eine VM mit mindestens 4 CPU Cores, 8 GB RAM, 64 GB HD mit dem Cloud-init Script cloud-init-gns3.yaml.

Die VM sollte ausserdem Nested Virtualization (VM in VM) unterstützen.

Dieses kann wie folgt überprüft werden:

sudo virt-host-validate qemu

Falls die VM keine Nested Virtualization (VM in VM) unterstützt ist, die Konfigurationsdatei /opt/gns3/.config/GNS3/2.2/gns3_server.conf um folgenden Eintrag ergänzen:

[Qemu]
enable_kvm = false

GNS3 Projekte

Es stehen einen Reihe von Projekten zur Verfügung. Dazu zuerst diese Repository, auf dem lokalen Notebook, clonen und dann via GNS3 Oberfläche eines der vorbereiteten Projekte importieren -> File -> Import portable project".

git clone https://github.com/mc-b/lerngns3

Die Projekte sind dann im Verzeichnis lerngns3/projects verfügbar.

Troubleshooting

Netzwerk

Es kann vorkommen, dass Cloud Umgebung es nicht erlauben das der OpenWrt Router eine IP-Adresse bezieht (Spoofing).

Das hat zur Folge, dass hinterliegenden VMs keine Verbindung zum Internet aufbauen können.

Abhilfe: NAT Gateway statt Cloud und OpenWrt Router verwenden.

Cloud-init

Wenn die VMs vor dem Router bereit sind, kann es vorkommen, dass das Cloud-init Script nicht sauber durchläuft. Dies weil die VMs keine Verbindung zum Internet aufbauen konnte.

Abhilfe: Cloud-init zurücksetzen und nochmals laufen lassen

sudo cloud-init clean
sudo shutdown -r now

Templates in TBZ GNS3 Umgebung integrieren

Ab Zeile 15 (Ubuntu Image hole) des Installationsscripts install.sh bis max. Zeile 52 (ohne Netzwerk) manuell ausführen.

Dafür ist vorher localhost durch 192.168.23.1 zu ersetzen:

for repo in lerngns3 lernmaas
do
    git clone https://github.com/mc-b/${repo}
    cd ${repo}/scripts
    for script in gns3*.sh
    do
        sed -i -e 's/localhost/192.168.23.1/g' ${script};
        bash -x ${script}
    done
    cd ../..
done   

OpenWrt Image holen und weitere Templates Ubuntu Server, webterm und chromium anlegen.

# OpenWrt Image holen und aufbereiten
sudo wget -O /opt/gns3/images/QEMU/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz https://downloads.openwrt.org/releases/22.03.0/targets/x86/64/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz
sudo gunzip /opt/gns3/images/QEMU/openwrt-22.03.0-x86-64-generic-ext4-combined.img.gz

# Standard Templates anlegen
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{"name": "Ubuntu-22", "compute_id": "local", "qemu_path": "/usr/bin/qemu-system-x86_64", "hda_disk_image": "jammy-server-cloudimg-amd64.img", "symbol": ":/symbols/affinity/circle/gray/vm.svg", "ram": 2048, "template_type": "qemu"}' 
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{ "category": "guest", "compute_id": "local", "console_type": "vnc", "image": "gns3/webterm", "name": "webterm", "symbol": ":/symbols/affinity/circle/gray/client.svg", "template_type": "docker" }'
curl -X POST "http://192.168.23.1:3080/v2/templates" -d '{ "category": "guest", "compute_id": "local", "console_type": "vnc", "image": "jess/chromium", "name": "chromium", "symbol": ":/symbols/affinity/circle/gray/client.svg", "template_type": "docker" }'

Die OpenVPN Verbindung, kann über WireGuard verwendet werden. Dazu zuerst Konfiguration von Host im Verzeichnis /opt/cloudinitinstall/<Hostname>.ovpn holen und <connection> anpassen

<connection>
remote <WireGuard IP-Adresse> 1194 tcp4
</connection>    

Weil das 192.168.23.1 keine Internet Verbindungen zulässt, in den Projekten Cloud durch NAT Device ersetzen.

Links

lerngns3's People

Contributors

mc-b avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.