]> gitweb.morketsmerke.org Git - immudex.git/commitdiff
Zakończono implementacje narzędzia. Do testów na remote serwerze.
authorxf0r3m <jakubstasinski@protonmail.com>
Tue, 10 Sep 2024 16:41:22 +0000 (18:41 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Tue, 10 Sep 2024 16:41:22 +0000 (18:41 +0200)
tools/bin/immudex-kvm

index d80df2bd81d75470df456e5fcc02ac5fbd90b34f..c03935525bffb307af670e192de2991b2f97020a 100755 (executable)
@@ -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: <vms/os-types>";
+  echo "    List args: <vms/os-types/networks>";
   echo "  create - create VM, with defaults settings.";
-  echo "    Create args: <name>, <vcpus>, <memory in MB>, <iso/installer path>, <disk path>, <disk size in GB>";
-  echo "  start - run VM.";
-  echo "    Start args: <name>";
+  echo "    Create args: <name> <os-type> <vcpus> <memory in MB> <iso/installer path> <disk path> <disk size in GB>";
+  echo "  import - create VM, with default settings, but use already existing disk.";
+  echo "    Import args: <name> <os-type> <vcpus> <memory in MB> <disk path>";
+  echo "  start - run KVM objects.";
+  echo "    Start args: vm <name>/network <network name>";
   echo "  connect - connect with VM console.";
   echo "    Connect args: <name>";
   echo "  restart - force reboot for VM.";
@@ -48,30 +50,87 @@ function immudex-kvm-help() {
   echo "    Power off args: <name>";
   echo "  delete - deletes VM.";
   echo "    Delete args: <name> [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