Ready to cooperate?
Telegram: @haruatari

Controller for QMStatus virtual machines management

Description

A console application for automation of deployment and management of server-side part of SaaS platform inside an isolated server. The SaaS server places inside encrypted virtual machine which works inside isolated network. The attendants has no access inside the virtual machine and works with it via this controller. The application supports encryption and can work with cluster of virtual machines. It supports Windows and Linux operation systems.

  • deployment/running/stopped/recovery on fail of the virtual machine;
  • validation of the environment in which the virtual machine should be run;
  • management of OS services inside the virtual machine;
  • retrieving logs from inside the virtual machine;
  • ability to execute uploaded scripts (with signature verification of uploaded data);
  • monitoring of key services of the inner OS;
  • backups management.
Supported functions
(output of a help command)
Commands:

* General

  help
  ----
  Print help message.

* Virtual machine

  vm start
  --------
  Start the virtual machine.

  vm stop
  -------
  Stop the virtual machine.

  vm restart
  ----------
  Restart the virtual machine.

  vm status
  ---------
  Print status of the virtual machine.

* System

  system update-settings
  ----------------------
  Update settings in virtual machine based on config.json file.

  system state [<outputFile>]
  ---------------------------
  Print state of virtual machine. The state will be printed into a file if it's specified.
  State contains a list of processes and statistics of memory, CPU and disk.

  system get-logs
  ---------------
  Get program and system logs from the virtual machine and put them into the current directory.

  system kill-process <pid>
  -------------------------
  Kill system process by his PID.

  system run-scenario <scenarioFile> [<outputFile>]
  -------------------------------------------------
  Run bash scenario from specified file and print its output.
  Output will be printed into STDOUTPUT or into file if it specified.

  system service <serviceName> <command>
  -------------------------------------------------
  Run command for specified service.

  system monitoring [<outputFormat>]
  ----------------------------------
  Print state of major services in specified format.
  The format can be in one of the next values:
  plain - plain text. Using by default.
  json  - JSON format.

* Backups

  backup list
  -----------
  Print list of existing backups.

  backup create
  -------------
  Create new backup.

  backup restore <name>
  ---------------------
  Restore system state from backup with specified name.

*  Environment

   env check
   ---------------------
   Check an environment of the virtual machine.

   env validate-config
   -------------------
   Validate config.json file.

Flags:

--config <configFile>
Set path to config file. Config.json using by default.
Period of my work on the project
April 2016 — September 2019