Skip to content

Instantly share code, notes, and snippets.

View joe-speedboat's full-sized avatar
🙃
AiHoi!

Chris Rüttimann joe-speedboat

🙃
AiHoi!
View GitHub Profile
@joe-speedboat
joe-speedboat / esxi_snapshot_all_vms.sh
Created March 31, 2018 07:30
create a snapshot of all vms on esxi
createSnapshotOfAllVms(){
vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1":"$2}' | grep '^[0-9]' | while read VM
do
VMID=$(echo $VM | cut -d: -f1)
vmName=$(echo $VM | cut -d: -f2)
echo "INFO: `date '+%Y.%m.%d_%H:%M'`: create Snapshot of VM: $vmName ---"
echo exec: vim-cmd vmsvc/snapshot.create $VMID backup-`date '+%Y%m%d%H%M%S'` includeMemory
vim-cmd vmsvc/snapshot.create $VMID backup-`date '+%Y%m%d%H%M%S'`
done
}
@joe-speedboat
joe-speedboat / esxi_snapshot_list.sh
Created March 31, 2018 07:29
list all vm stnapshots on esxi
listAllSnapshots(){
vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1":"$2}' | grep '^[0-9]' | while read VM
do
VMID=$(echo $VM | cut -d: -f1)
vmName=$(echo $VM | cut -d: -f2)
echo
echo "INFO: `date '+%Y.%m.%d_%H:%M'`: snapshots of VM: $vmName ---"
vim-cmd vmsvc/get.snapshot $VMID | egrep 'name = |createTime = ' | sed 's/createTime = / createTime = /'
done
}
@joe-speedboat
joe-speedboat / esxi_vm_shutdown_wait.sh
Created March 31, 2018 07:21
shutdown vm and wait for powerdown on esxi
shutdownWaitvmName (){
vmName=$1
vmId=`vim-cmd vmsvc/getallvms | grep " $vmName " | cut -d\ -f1`
echo $vmId | grep -q '[0-9]'
if [ $? -ne 0 ]
then
echo "vm $vmName not found"
return 1
exit 1
kill -9 $$
@joe-speedboat
joe-speedboat / esxi_vm_start.sh
Created March 31, 2018 07:09
start up vm on esxi
startupVmName (){
vmName=$1
echo "`vim-cmd vmsvc/getallvms | grep " $vmName " | cut -d\ -f1 | xargs vim-cmd vmsvc/power.on` $vmName"
}
@joe-speedboat
joe-speedboat / esxi_thincopy_folder.sh
Created March 31, 2018 07:08
thincopy a vm folder to other disk on esxi
thincopy (){
FROM="$1"
TO="$2"
mkdir -p "$TO"
echo "INFO: tincopy $FROM/ $TO/$F"
find "$FROM" -type f -not -iname '*.vmdk' -exec cp -a "{}" "$TO/" \;
find "$FROM" -type f -iname '*.vmdk' | while read vmdk
do
F="`basename $vmdk`"
vmkfstools -i "$vmdk" -d thin "$TO/$F"
@joe-speedboat
joe-speedboat / esxi_remove_all_vm_snapshots.sh
Created March 31, 2018 07:07
remove all snapshots of all vms on esxi
removeAllSnapshots(){
vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1":"$2}' | grep '^[0-9]' | while read VM
do
VMID=$(echo $VM | cut -d: -f1)
vmName=$(echo $VM | cut -d: -f2)
echo "INFO: `date '+%Y.%m.%d_%H:%M'`: search Snapshots of VM: $vmName ---"
vim-cmd vmsvc/get.snapshot $VMID | grep -A5 'snapshot = ' | sed '/id =/!d;s/.*id = //g;s/,//g' | while read SNAPID
do
echo exec: vim-cmd vmsvc/snapshot.remove $VMID $SNAPID
vim-cmd vmsvc/snapshot.remove $VMID $SNAPID
@joe-speedboat
joe-speedboat / vro_get_objects_from_payload.js
Created March 16, 2018 13:35
vRO: find objects by payload handed over via event broker
// Retrieve the machine properties ------------------
var machine = payload.get("machine");
if(machine == null) {
throw("no machine found in payload, burn with fire!");
}
var machineProperties = machine.get('properties');
vmName = machine.get('name'); // vra vm hostname
// Find vcacVm and its relatives ---------------------
var virtualMachineId = machine.get("id");
@joe-speedboat
joe-speedboat / get_all_vms_from_all_clusters.js
Created March 16, 2018 13:33
vRO - SDK > vCenters > vCenter > Cluster > VM
var vCenters=VcPlugin.allSdkConnections;
for each (vCenter in vCenters){
System.log(vCenter.name);
var clusters = vCenter.getAllClusterComputeResources();
for each (cluster in clusters) {
System.log(cluster.name);
var vms = vCenter.allVirtualMachines
for each (vm in vms)
System.log(vm.name);
@joe-speedboat
joe-speedboat / ansible-role-test.sh
Created March 5, 2018 20:22 — forked from geerlingguy/ansible-role-test.sh
Ansible Role Test Shim Script
#!/bin/bash
#
# Ansible role test shim.
#
# Usage: [OPTIONS] ./tests/test.sh
# - distro: a supported Docker distro version (default = "centos7")
# - playbook: a playbook in the tests directory (default = "test.yml")
# - cleanup: whether to remove the Docker container (default = true)
# - container_id: the --name to set for the container (default = timestamp)
# - test_idempotence: whether to test playbook's idempotence (default = true)
@joe-speedboat
joe-speedboat / ad_utils.py
Created March 1, 2018 09:42 — forked from dangtrinhnt/ad_utils.py
Get Active Directory group members using python
#! /bin/env python
#
# USAGE
# $ python ad_utils.py "My Group Name"
#
# Author:
# Trinh Nguyen
# dangtrinhnt@gmail.com
# www.dangtrinh.com