launchers/kvm : utilisation de variables d'environnement pour setup la VM
This commit is contained in:
parent
21855f256c
commit
f7e1c39975
1 changed files with 24 additions and 9 deletions
|
@ -1,20 +1,35 @@
|
|||
#!/usr/bin/env python3
|
||||
from os import execvp
|
||||
from os import environ
|
||||
|
||||
# Set number of vCPUs to use to the environment variable QEMUSH_NPROC or
|
||||
# half of total vCPUs installed if it fails
|
||||
try:
|
||||
nproc = environ['QEMUSH_NPROC']
|
||||
except KeyError:
|
||||
from multiprocessing import cpu_count
|
||||
nproc = str(cpu_count() // 2)
|
||||
|
||||
# Set amount of RAM to use to the environment variable QEMUSH_RAM or half
|
||||
# of total RAM installed if it fails
|
||||
try:
|
||||
ram = environ['QEMUSH_RAM']
|
||||
except KeyError:
|
||||
from psutil import virtual_memory
|
||||
ram = str(virtual_memory().available // 2 // (1024 ** 2))
|
||||
|
||||
# Set the command to initialize; all required parameters to make a sane KVM
|
||||
# are included and optional arguments are appended from argv
|
||||
from sys import argv
|
||||
|
||||
nproc = cpu_count() // 2
|
||||
ram_kilo = virtual_memory().available // 2 // 1024
|
||||
|
||||
command = [
|
||||
'qemu-system-x86_64',
|
||||
'-enable-kvm', '-daemonize',
|
||||
'-M', 'q35',
|
||||
'-cpu', 'host', '-smp', str(nproc),
|
||||
'-m', '{}K'.format(ram_kilo),
|
||||
'-cpu', 'host', '-smp', nproc,
|
||||
'-m', ram,
|
||||
'-net', 'nic'
|
||||
] + argv[1:]
|
||||
|
||||
# Print the final command and replace the main process with it
|
||||
print(command)
|
||||
from os import execvp
|
||||
execvp(command[0], command)
|
||||
|
|
Loading…
Reference in a new issue