shownotes-w3m-rice/virtualboxcli_vbx.md
2016-12-17 21:24:37 -08:00

158 lines
5.1 KiB
Markdown

# Virtualbox CLI Functions
couple of functions i created to spin up and shutdown virtualbox virtual machines (vm) because is faster for me
* tutorial video: [Link](https://www.youtube.com/watch?v=4pguqqygAd0)
* offical website: [Link](https://www.youtube.com/user/gotbletu)
### install requirements
virtualbox
rdesktop
### vm requirements: enable remote desktop on each vm
- [How to rdesktop into linux machine via xrdp](https://www.youtube.com/watch?v=WMSU66zAb3k)
- [How to rdesktop into windows machine](https://www.youtube.com/watch?v=460l2ZN_WQY)
### configuration
vim ~/.zshrc or vim ~/.bashrc
# Reset
Color_Off='\e[0m' # Text Reset
# Regular Colors
Black='\e[0;30m' # Black
Red='\e[0;31m' # Red
Green='\e[0;32m' # Green
Yellow='\e[0;33m' # Yellow
Blue='\e[0;34m' # Blue
Purple='\e[0;35m' # Purple
Cyan='\e[0;36m' # Cyan
White='\e[0;37m' # White
vbx-list() {
echo "===Available VM==="
vboxmanage list vms
echo "\n===Running VM====="
vboxmanage list runningvms
}
vbx-start() {
# Set to endless loop
while true
do
# Set the prompt for the select command
PS3="Type a number to select or 'Ctrl+C' to quit: "
# Create a list to display on menu
IFS=$'\n'
fileList=($(vboxmanage list vms | cut -d '{' -f1 | sed 's/ *$//'))
unset IFS
# Show a menu and ask for input. If the user entered a valid choice then execute command
select fileName in $fileList; do
if [ -n "$fileName" ]; then
# remove quotes from filename
vm_name=($(echo "${fileName}" | sed 's:\"::g' ))
vboxmanage startvm "$vm_name" --type headless
echo -e "${Green} $vm_name Has Been Started ${Color_Off}"
fi
break
done
done
}
vbx-quit() {
# Set to endless loop
while true
do
# Set the prompt for the select command
PS3="Type a number to select or 'Ctrl+C' to quit: "
# Create a list to display on menu
IFS=$'\n'
fileList=($(vboxmanage list runningvms | cut -d '{' -f1 | sed 's/ *$//'))
unset IFS
# Show a menu and ask for input. If the user entered a valid choice then execute command
select fileName in $fileList; do
if [ -n "$fileName" ]; then
# remove quotes from filename
vm_name=($(echo "${fileName}" | sed 's:\"::g' ))
vboxmanage controlvm "$vm_name" acpipowerbutton
echo -e "${Yellow} $vm_name Is Shutting Down ${Color_Off}"
fi
break
done
done
}
vbx-forcequit() {
# Set to endless loop
while true
do
# Set the prompt for the select command
PS3="Type a number to select or 'Ctrl+C' to quit: "
# Create a list to display on menu
IFS=$'\n'
fileList=($(vboxmanage list runningvms | cut -d '{' -f1 | sed 's/ *$//'))
unset IFS
# Show a menu and ask for input. If the user entered a valid choice then execute command
select fileName in $fileList; do
if [ -n "$fileName" ]; then
# remove quotes from filename
vm_name=($(echo "${fileName}" | sed 's:\"::g' ))
vboxmanage controlvm "$vm_name" poweroff
echo -e "${Red} $vm_name Power Cable Has Been Pulled ${Color_Off}"
fi
break
done
done
}
rdesktop-winxp() {
ipaddr=192.168.1.150
port=3389
username=gotbletu
resolution=1920x1020
echo "${Yellow}>>>Check if remote computer is alive at $ipaddr:$port ${Color_Off}"
until nc -vzw 2 "$ipaddr" "$port"; do sleep 2; done
echo "${Green}>>>Connecting to remote computer${Color_Off}"
rdesktop -u "$username" -g "$resolution" "$ipaddr":"$port" -r sound:local
}
rdesktop-fedoramate64() {
ipaddr=192.168.1.52
port=3389
username=gotbletu
resolution=1920x1020
echo "${Yellow}>>>Check if remote computer is alive at $ipaddr:$port ${Color_Off}"
until nc -vzw 2 "$ipaddr" "$port"; do sleep 2; done
echo "${Green}>>>Connecting to remote computer${Color_Off}"
rdesktop -u "$username" -g "$resolution" "$ipaddr":"$port" -r sound:local
}
### references
- https://www.howtoforge.com/tutorial/running-virtual-machines-with-virtualbox-5.1-on-a-headless-ubuntu-16.04-lts-server/
- http://serverfault.com/a/545408
- https://wiki.archlinux.org/index.php?title=Bash/Prompt_customization&oldid=419076#List_of_colors_for_prompt_and_Bash
### contact
_ _ _ _
__ _ ___ | |_| |__ | | ___| |_ _ _
/ _` |/ _ \| __| '_ \| |/ _ \ __| | | |
| (_| | (_) | |_| |_) | | __/ |_| |_| |
\__, |\___/ \__|_.__/|_|\___|\__|\__,_|
|___/
- http://www.youtube.com/user/gotbletu
- https://twitter.com/gotbletu
- https://plus.google.com/+gotbletu
- https://github.com/gotbletu
- gotbletu@gmail.com