ProxBash - a bash script to manage Proxmox VE

28-06-2012 | Remy van Elst


Table of Contents


Proxmox VE is a complete virtualization management solution for servers. You can virtualize even the most demanding application workloads running on Linux and Windows Servers. 
It is based on the leading Kernel-based Virtual Machine (KVM) hypervisor and OpenVZ, the number one solution for container based virtualization.

Proxmox Website

ProxMox VE is a very nice piece of software to setup a VM host very fast, which also is easy manageable via a webinterface. It supports both OpenVZ and KVM. I use it to manage a few VM's to test stuff on and it works really great.

However, I'm a command line lover, and I thought it would be nice to be able to "Manage" Proxmox VE from a bash shell. And I've written a script to do just that.

proxbash.sh is a bash script to manage your Proxmox VE server.

Check out my other Proxmox/OpenVZ related articles.

If you like this script and want to support my website, use this link to order a Digital Ocean VPS: https://www.digitalocean.com/?refcode=7435ae6b8212

Features
  • Add OpenVZ containers
  • Remove OpenVZ containers
  • Start / Stop OpenVZ containers
  • List all OpenVZ containers and KVM virtual machines
  • Shell dropper into OpenVZ containers
  • Command execution in openvz containers

As you can see there is a lot of OpenVZ and not a lot of KVM. Most of the VM's I use are OpenVZ, so for the KVM things you need to use the webinterface.

Download

Click here to download the script

Or use this:

wget https://raymii.org/s/inc/software/proxbash.sh; chmod +x ./proxbash.sh; ./proxbash.sh
Usage

Before you start, edit the script variables:

VAR_PROXMOXHOST="192.168.0.25"    #proxmox server IP
VAR_PROXMOXSSH="22"         #proxmox ssh port
VAR_PROXMOXUSER="root"          #proxmox ssh user
VAR_PROXMOX_NODE="proxmox"      #proxmox cluster node name

and set up passwordless key auth to the proxmox node. If you don't do that, you have to enter the proxmox root password every time.

Also edit the case statement for the templates. Default it has ubuntu 10.04 and 12.04 and centos 5 and 6.

Replace $CTID with an openvz ct id. (like 103, 104)

Create a CT
proxbash.sh createct node-hostname node-password node-template node-ram node-disk node-ip
proxbash.sh createct prod001 supersecret1 ubuntu12 1024 15 172.20.5.48

proxbash.sh createct node-hostname node-password node-template node-ram node-disk node-ip $CTID

Start/Stop a CT
./proxbash.sh startct 
./proxbash.sh startct $CTID   

./proxbash.sh stopct
./proxbash.sh stopct $CTID
Remove a CT
./proxbash.sh deletect
./proxbash.sh deletect $CTID
Shell dropper
./proxbash.sh shelldrop $CTID
Execute commands in CT
./proxbash.sh execinct $CTID "commands you -want -to; execute; in the ../ct" 
List CTs/VMs
./proxbash.sh listcts
./proxbash.sh listvms
Get CT info
./proxbash.sh ctinfo
./proxbash.sh ctinfo $CTID
Notes

If you like it or use it, please leave a comment.


Tags: bash, kvm, openvz, proxmox, proxmox-ve, ssh, virtualization,