Compare commits

..

No commits in common. "main" and "3.0" have entirely different histories.
main ... 3.0

19 changed files with 13 additions and 84 deletions

View File

@ -15,15 +15,15 @@ Server[Server] <----> LXC((LXC))
## Install requirements (Debian 12 example)
For your safety you can also find the packages on pip or pipx and the requirement.txt file.
## Install requirements (Debian example
For your safty you can also find the packages on pip or pipx
1 - Update and Install packages :
```sh
apt-get update -y -qq
apt-get install git lxc lxcfs lxc-templates qemu qemu-utils qemu-kvm virtinst bridge-utils virt-manager libvirt-daemon libvirt-daemon-system virt-viewer libvirt-clients libosinfo-bin websockify sqlite3 novnc
apt-get install python3 python3-flask python3-flask-login python3-flask-sqlalchemy python3-requests python3-lxc python3-libvirt python3-psutil python3-werkzeug python3-websockify python3-novnc python3-flask-socketio python3-openssl
apt-get install python3 python3-flask python3-flask-login python3-flask-sqlalchemy python3-requests python3-lxc python3-libvirt python3-psutil python3-werkzeug python3-websockify python3-novnc python3-flask-socketio python3-types-pyopenssl
apt-get install openvswitch-switch openvswitch-common
@ -32,8 +32,8 @@ apt-get install openvswitch-switch openvswitch-common
Clone the repository :
```sh
git clone https://github.com/pyhype2/Hype2.git
cd Hype2
git clone https://git.nerkdesign.com/pporcheret/Hype-2.git
cd Hype-2
mkdir storage/disks
```
@ -70,17 +70,7 @@ address XXX.XXX.XXX.XXX
netmask YYY.YYY.YYY.YYY
gateway ZZZ.ZZZ.ZZZ.ZZZ
```
4 - Modify Qemu configuration
You will have to uncomment these lines :
```sh
vnc_listen = "0.0.0.0"
user=root
group=root
```
This will ajust rights for Qemu to run as root and enable VNC on all address for the console.
## Database for users
@ -96,7 +86,7 @@ For security reason, you should remove **db.db.admin_example**
If you want to create this database by yourself, you can :
### Create Database for users (Manual creation)
### Create Database for users
```sh
sqlite3 db.db
@ -209,8 +199,6 @@ and go to https://www.example.com (or https://<server_ip>:5007 without RP) with
```
NB: The first LXC creation will take time to download files. Be patient
## Systemd
You can manage hype using Systemd management by creating a file *hype.service* :
@ -237,25 +225,6 @@ systemctl start hype.service
You can also change some configuration in the file *configuration.py* such as flask port, storage location...use it at your own risk.
## Windows requirement (Virtuio)
If you plan to install some Windows Virtual Machine, you will need to download the Virtuo (Windows drivers IO) and place the ISO in the *<hype_path>/storage/win* folder.
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.229-1/
You will also need to configure the ISO name in the *configuration.py* file.
```sh
virtuo_path= path+'/storage/win/'
virtuo_file='virtio-win-0.1.229.iso'
```
NB: Depending on the Windows version you need, you will need to use a specific Virtio version.
Lastest version will remove the old Windows version driver.
## Others
You can upload ISO directly from the interface.

Binary file not shown.

Binary file not shown.

3
app.py

File diff suppressed because one or more lines are too long

View File

@ -10,13 +10,6 @@ def get_version():
vhype = hype_version
return vlxc, vlibvirt, vhype
def get_vm_infos(vm_name):
dom = conn.lookupByName(vm_name)
vm_info = dom.guestInfo()
vm_infos=[]
vm_infos=[vm_info['os.id'],vm_info['os.pretty-name'],vm_info['os.kernel-release']]
return vm_infos
def set_memory(vm_name,memory_new):
dom = conn.lookupByName(vm_name)

View File

@ -45,7 +45,7 @@ def get_int(net_name):
def create_vswitch_int(net_int):
cmd="ovs-vsctl add-br "+net_int
out = subprocess.call(cmd, shell=True)
if out != 0:
if out2 != 0:
raise Exception("Error on creating interface")

View File

@ -1,7 +1,6 @@
from config import *
from xml.etree import ElementTree as ET
from flask import request, Response
import subprocess
import os
def get_vnc_port(vm_name):
@ -13,15 +12,14 @@ def get_vnc_port(vm_name):
return vnc_port
def kill_consoles():
subprocess.run("pkill -9 -f 'websockify'", shell=True)
subprocess.run("for i in $(pgrep -f 'pyxterm'); do kill -9 $i; done", shell=True)
os.system('kill -9 $(ps -edf | grep websockify | grep -v grep | awk \'{ print $2 }\')')
os.system('for i in $(ps -edf | grep pyxterm | grep -v grep | awk \'{ print $2 }\');do kill -9 $i;done')
def socket_connect(vm_name):
kill_consoles()
vm_port = get_vnc_port(vm_name)
subprocess.run(['websockify', '-D', '--web=/usr/share/novnc/', '6080', 'localhost:' + vm_port])
os.system('websockify -D --web=/usr/share/novnc/ 6080 localhost:'+vm_port)
def pyxterm_connect(path,lxc_name):
kill_consoles()
cmd = ['python3', f'{path}/pyxterm.py', '--command', 'lxc-attach', '--cmd-args', lxc_name]
pyx_process = subprocess.Popen(cmd)
os.system('python3 '+path+'/pyxterm.py --command \'lxc-attach\' --cmd-args \''+lxc_name+'\' &')

View File

@ -1,30 +0,0 @@
#!/bin/bash
#
# Hype² installation script
# Tested on Debian 11 and Debian 12
#
# 1.0 by Pierre Porcheret
#
#
clear
echo "Requirements packages"
apt-get update -y -qq
apt-get install git lxc lxcfs lxc-templates qemu qemu-utils qemu-kvm virtinst bridge-utils virt-manager libvirt-daemon libvirt-daemon-system virt-viewer libvirt-clients libosinfo-bin websockify sqlite3 novnc
apt-get python3-openssl
echo "Openswitch install"
apt-get install openvswitch-switch openvswitch-common
echo "Python libs install"
apt-get install python3 python3-flask python3-flask-login python3-flask-sqlalchemy python3-requests python3-lxc python3-libvirt python3-psutil python3-werkzeug python3-websockify python3-novnc python3-flask-socketio
echo "Enabling Libvirt"
systemctl --quiet enable --now libvirtd
systemctl --quiet start libvirtd
echo "Bridged interface installation"
cp ./bridged.xml /usr/share/libvirt/networks/
virsh net-define bridged.xml
virsh net-start bridged
virsh net-autostart bridged
echo "Copy default database"
cp db.db.admin_example db.db
clear
echo "Installation Done"
echo "Please follow the Qemu modification according to README.md"