From f0a04b09ffe4d9002244dd9a6fd5e86ad3281b32 Mon Sep 17 00:00:00 2001 From: xf0r3m Date: Tue, 10 Sep 2024 18:41:22 +0200 Subject: [PATCH] =?utf8?q?Zako=C5=84czono=20implementacje=20narz=C4=99dzia?= =?utf8?q?.=20Do=20test=C3=B3w=20na=20remote=20serwerze.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- tools/bin/immudex-kvm | 85 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 13 deletions(-) diff --git a/tools/bin/immudex-kvm b/tools/bin/immudex-kvm index d80df2b..c039355 100755 --- a/tools/bin/immudex-kvm +++ b/tools/bin/immudex-kvm @@ -7,14 +7,14 @@ if [ "$1" ] && [ "$1" = "-L" ] || [ "$1" = "-R" ]; then export CONNECT="$2"; shift 2; else - if $(sudo virsh net-list --all | grep '\ nieaktywne\ '); then + if $(sudo virsh net-list --all | grep -q '\ nieaktywne\ '); then sudo virsh net-start default; fi export CONNECT="qemu:///system"; shift; fi else - if $(sudo virsh net-list --all | grep '\ nieaktywne\ '); then + if $(sudo virsh net-list --all | grep -q '\ nieaktywne\ '); then sudo virsh net-start default; fi export CONNECT="qemu:///system"; @@ -33,11 +33,13 @@ function immudex-kvm-help() { echo; echo "COMMANDS:"; echo " list - list of KVM virtual machines on this instance"; - echo " List args: "; + echo " List args: "; echo " create - create VM, with defaults settings."; - echo " Create args: , , , , , "; - echo " start - run VM."; - echo " Start args: "; + echo " Create args: "; + echo " import - create VM, with default settings, but use already existing disk."; + echo " Import args: "; + echo " start - run KVM objects."; + echo " Start args: vm /network "; echo " connect - connect with VM console."; echo " Connect args: "; echo " restart - force reboot for VM."; @@ -48,30 +50,87 @@ function immudex-kvm-help() { echo " Power off args: "; echo " delete - deletes VM."; echo " Delete args: [delete-disk]"; - #Dodać polecenie sprawdzenia sieci wirtualny, oraz możliwość jej/ich włączenia. } function immudex-kvm-list() { - virsh -c $CONNECT list --all; - #Dodać wyświetlanie listy os-types + if [ "$1" ]; then + case $1 in + 'vms') virsh -c $CONNECT list --all;; + 'os-types') osinfo-query -f short-id,name os | grep "$2";; + 'networks') sudo virsh net-list --all;; + *) immudex-kvm-help;; + esac + fi } function immudex-kvm-create() { virt-install --connect $CONNECT --name=$1 --vcpus=$3 --memory=$4 --cdrom=$5 --disk=${6},bus=sata,size=${7} --os-variant=$2 } +function immudex-kvm-import() { + virt-install --connect $CONNECT --name=$1 --vcpus=$3 --memory=$4 --disk=${5},bus=sata --os-variant=$2 --import --boot hd +} + function immudex-kvm-connect() { virt-viewer -c $CONNECT $1; -} +} -echo "Connect: $CONNECT"; -#immudex-kvm-help; +function immudex-kvm-start() { + if [ "$1" ]; then + case $1 in + 'vm') shift; + virsh -c $CONNECT start $1;; + 'network') shift; + sudo virsh -c $CONNECT net-start $1;; + *) immudex-kvm-help;; + esac + fi + } + +function immudex-kvm-restart() { + virsh -c $CONNECT reset $1; + #polite: virsh -c $CONNECT reboot $1 +} + +function immudex-kvm-shutdown() { + virsh -c $CONNECT shutdown $1; +} + +function immudex-kvm-poweroff() { + virsh -c $CONNECT destroy $1; +} + +function immudex-kvm-delete() { + if [ "$2" ] && [ "$2" = "delete-disk" ]; then + virsh -c $CONNECT undefine $1 --storage sda; + else + virsh -c $CONNECT undefine $1; + fi +} + +if [ "$1" ] && [ "$1" = "--debug" ]; then + shift; + echo "Connect: $CONNECT"; +fi case "$1" in - 'list') immudex-kvm-list;; + 'list') shift; + immudex-kvm-list $@;; 'create') shift; immudex-kvm-create $@;; + 'import') shift; + immudex-kvm-import $@;; 'connect') shift; immudex-kvm-connect $1;; + 'start') shift; + immudex-kvm-start $@;; + 'restart') shift; + immudex-kvm-restart $1;; + 'shutdown') shift; + immudex-kvm-shutdown $1;; + 'poweroff') shift; + immudex-kvm-poweroff $1;; + 'delete') shift; + immudex-kvm-delete $@;; *) immudex-kvm-help;; esac -- 2.39.5