4.3 KiB
Introduction
This utility is a simple to use comand line tool to create VMs on an ESXi host from from a system running python and ssh. vCenter is not required. You need to enable ssh access on your ESXi server. It's HIGHLY RECOMMENDED to use password-less authentication by copying your ssh public keys to the ESXi host.
Command Line Args
./esxi-vm-create -h
usage: esxi-vm-create [-h] [-d] [-v] [-H HOST] [-U USER] [-P PASSWORD]
[-n NAME] [-c CPU] [-m MEM] [-s SIZE] [-i ISO] [-N NET]
[-S STORE] [-g GUESTOS] [-u]
ESXi Create VM utility.
optional arguments:
-h, --help show this help message and exit
-d, --dry Enable Dry Run mode (False)
-v, --verbose Enable Verbose mode (False)
-H HOST, --Host HOST ESXi Host (esxi)
-U USER, --User USER ESXi Host username (root)
-P PASSWORD, --Password PASSWORD
ESXi Host password (*****)
-n NAME, --name NAME VM name
-c CPU, --cpu CPU Number of vCPUS (2)
-m MEM, --mem MEM Memory in GB (4)
-s SIZE, --size SIZE Size of virt disk (20)
-i ISO, --iso ISO CDROM ISO Path | None (None)
-N NET, --net NET Network Interface | None (None)
-S STORE, --store STORE
vmfs Store | LeastUsed (DS_3TB_m)
-g GUESTOS, --guestos GUESTOS
Guest OS. (centos-64)
-u, --updateDefaults Update Default VM settings stored in ~/.esxi-vm.yml
Examples
Create a new VM named testvm01 using all defaults from ~/.esxi-vm.yml.
./esxi-vm-create -n testvm01
Create VM Success
ESXi Host: esxi
VM NAME: testvm01
vCPU: 2
Memory: 4GB
VM Disk: 20GB
DS Store: DS_4TB
Network: None
Change default number of vCPUs to 4, Memory to 8GB and vDisk size to 40GB.
./esxi-vm-create -c 4 -m 8 -s 40 -u
Saving new Defaults to ~/.esxi-vm.yml
Create a new VM named testvm02 using new defaults from ~/.esxi-vm.yml and specifying a Network interface.
./esxi-vm-create -n testvm02 -N 192.168.1
Create VM Success
ESXi Host: esxi
VM NAME: testvm02
vCPU: 4
Memory: 8GB
VM Disk: 40GB
DS Store: DS_4TB
Network: 192.168.1
Available Network Interfaces and Available Disk Storage volumes will be listed if an invalid entry is made.
./esxi-vm-create -n testvm03 -N BadNet -S BadDS
ERROR: Disk Storage BadDS doesn't exist.
Available Disk Stores: ['DS_SSD500s', 'DS_SSD500c', 'DS_SSD250', 'DS_4TB', 'DS_3TB_m']
LeastUsed Disk Store : DS_4TB
ERROR: Virtual NIC BadNet doesn't exist.
Available VM NICs: ['192.168.1', '192.168.0', 'VM Network test'] or 'None'
Create a new VM named testvm03 using a valid Network Interface, valid Disk Storage volume, enabled verbose and saving the settings as default.
./esxi-vm-create -n testvm03 -N 192.168.1 -S DS_3TB_m -v -u
Saving new Defaults to ~/.esxi-vm.yml
Create testvm03.vmx file
Create testvm03.vmdk file
Register VM
Power ON VM
Create VM Success
ESXi Host: esxi
VM NAME: testvm03
vCPU: 4
Memory: 8GB
VM Disk: 40GB
Format: thin
DS Store: DS_3TB_m
Network: 192.168.1
Guest OS: centos-64
License
Copyright (C) 2017 Jonathan Senkerik
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Support
Website : http://www.jintegrate.co
github : http://github.com/josenk/