Setup the VM

Here we describe how the VM image provided by the auto-build may be used for development and offline usage (i.e. at events).

Prerequisites

To run the image you need the Qemu/KVM or VirtualBox software for virtualization. Furthermore some software is recommended for working with the running image: ssh for shell access and sshfs for mounting the repository in the VM into your local file system.

Download

The VM-images can be downloaded from the CdE server. The access credentials can be found on the tracker.

Running

If cdedb.qcow2 is the downloaded image, then the VM can be started with QEMU via the following command (note that the name of the binary may differ from kvm):

kvm -m 1G -enable-kvm -device virtio-rng-pci -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:20022-:22,hostfwd=tcp:127.0.0.1:20389-:389,hostfwd=tcp:127.0.0.1:20443-:443,hostfwd=tcp:127.0.0.1:5000-:5000 -drive file=cdedb.qcow2,if=virtio,cache=writethrough

By default, the VM uses a single core only, which may limit performance especially in parallel to lint and integration tests. To mitigate these constraints, you may use -smp n as parameter to allow the VM to use n cores of your system.

If cdedb.vdi is the downloaded image, then the VM can be run with VirtualBox via the GUI. Thereby, choose the unpacked cdedb.vi image as hard disk. Furthermore, you would like to set some port forwarding (which is included in the kvm command).

If you dont know how to do this, take a look at the first point in Accessing – Windows. Note that there are multiple port forwardings, for 20022, 20389, 20443 and 5000.

Accessing – Linux

Once the VM is up and running you can access it in the following ways. The password for the cdedb user (used for access via ssh etc.) is empty [1].

  • web: Open https://localhost:20443/ in a browser of your choice.

  • ssh:

    ssh -p 20022 cdedb@localhost
    
  • scp (note that there are two possible directions):

    scp -P 20022 /path/to/source cdedb@localhost:/path/to/destination
    scp -P 20022 cdedb@localhost:/path/to/source /path/to/destination
    
  • sshfs (this is probably the most comfortable option for development, and only necessary for development not for usage during an event):

    sshfs cdedb@localhost:/cdedb2/ /path/to/mountpoint/ -p 20022
    

For ease of use it may be advisable to put these commands into script files.

Accessing – Windows

Note

Mittlerweile ist WSL (Windows Subsystem for Linux) soweit gereift, dass es empfehlenswert ist mithilfe dieses die Anweisungen in Accessing – Linux zu nutzen.

Das Ansprechen der VM ist unter Windows etwas komplizierter als unter Linux. Im Folgenden werden die Arbeitsschritte einmal für VirtualBox durchgegangen. Das Passwort für den Nutzer cdedb der VM ist leer.

  • Web: Im VirtualBox Manager, bearbeite die VM

    • Netzwerkadapter / Adapter1: Angeschlossen an NAT

    • Erweitert / Port-Weiterleitung: Neue Regel:

      Protokoll:TCP, Host-ID:127.0.0.1, Host-Port:20443, Gast-Port:223
      

    Jetzt lässt sich die VM unter https://localhost:20443/ im Browser ansprechen.

  • ssh

    • VirtualBox Manager / Datei / Host-only Netzwerk-Manager / Erzeuge:

      NAME, IPv4:192.168.56.1/24, DHCP-Server:enable
      
    • Im VirtualBox Manager, bearbeite die VM / Netzwerkadapter / Adapter 2:

      Angeschlossen an:Hostonly-Adapter, Name:NAME
      
    • Starte die VM, melde dich an

      • id a sollte einen Eintrag enp0s8 oder ähnlich zeigen, der leer ist:

        sudo nano /etc/network/interfaces
        
      • Am Ende der Datei hinzufügen:

        auto enp0s8
        iface enp0s8 inet static
        address 192.168.56.10
        netmask 255.255.255.0
        

    Jetzt sollte die VM über die CMD erreichbar sein:

    ssh.exe cdedb@192.168.56.10
    
  • mounten: Dies ist nur für die aktive Entwicklung relevant, nicht für die Offline-VM. Hierfür gibt es keine Windows eigene Lösung. So funktionierts trotzdem

    • Führe die Schritte unter ssh aus.

    • Installiere https://github.com/billziss-gh/sshfs-win – mindestens SSHFS-Win 3.5 BETA

    • Navigiere zum Desktop im Explorer / Rechtsklick Dieser Pc / Netzlaufwerk verbinden…

      \\sshfs.r\cdedb@192.168.56.10\cdedb2
      

    Nun sollte die VM als Netzlaufwerk eingehängt worden sein.

Footnotes