# 🗃️ESXI

# esxi

# Clone Disk
vmkfstools --clonevirtualdisk <target> <source> -d thin

# Remove Disk
vmkfstools --deletevirtualdisk <disk_path>

# Map Raw Disk
vmkfstools -z "/vmfs/devices/disks/<disk_name>" "/vmfs/volumes/<datastore>/<path>/<vdisk_name>.vmdk"

# Some System Config
esxcli system settings advanced set -o /Misc/PreferredHostName -s "<host_name>"
esxcli system settings advanced set -o /UserVars/HostClientCEIPOptIn -i 1
esxcli system settings advanced set -o /UserVars/HostClientDefaultConsole -s "vmrc"
esxcli system settings advanced set -o /UserVars/HostClientSessionTimeout -i 1800
esxcli system settings advanced set -o /UserVars/SuppressHyperthreadWarning -i 1

# ssh login
scp id_rsa.pub root@<host>:/etc/ssh/keys-root/authorized_keys

# update ssl for web
scp chain.cert root@<host>:/etc/vmware/ssl/rui.crt
scp key.cert   root@<host>:/etc/vmware/ssl/rui.key
ssh root@<host> "
/etc/init.d/hostd restart
/etc/init.d/vpxa restart
"

# esxi license

VMware-ESXi-6.7.0 License
VMware vSphere 6 Enterprise Plus
0A65P-00HD0-3Z5M1-M097M-22P7H

# init esxi vms

apt-get install -y open-vm-tools acpid haveged

cat /dev/null > /var/log/wtmp 2>/dev/null
logrotate -f /etc/logrotate.conf 2>/dev/null
rm -f /var/log/*-* /var/log/*.gz 2>/dev/null
history -c
unset HISTFILE

# govc

Reference: GOVC Document

# environment - option

export GOVC_USERNAME=
export GOVC_PASSWORD=
# -u
export GOVC_URL=
# -ds=
export GOVC_DATASTORE=

# commands
govc datastore.mkdir -ds <datastore> <dir>
govc datastore.mkdir -ds main-storage k8s-volumes

# upload file
govc datastore.upload -ds=<datastore> <local> <remote>
govc datastore.upload -ds=light-storage "D:\Images\Windows.iso" system-images

# download file
govc datastore.download -ds=<datastore> <local> <remote>
govc datastore.download -ds=light-storage debian-template.vmdk base/debian-template.vmdk

# copy file
govc datastore.cp -ds=<datastore> <source> <target>
govc datastore.cp -ds=light-storage templates/debian.vmdk base/debian.vmdk


# create disk
govc datastore.disk.create -d thin -ds <datastore> -size <size> <path>/<disk_name>.vmdk
govc datastore.disk.create -d thin -ds main-storage -size 100G k8s-volumes/minio.vmdk

# create vm
govc vm.create -ds=<datastore> -m=<memory> -c=<core> -g=<system_name> --net.adapter=vmxnet3 -net=<network> --disk.controller=pvscsi -on=false -disk <disk> <vm_name>
govc vm.create -ds=main-storage -m=4096 -c=4 -g=debian9_64Guest --net.adapter=vmxnet3 -net=vlan-base --disk.controller=pvscsi -on=false -disk templates/debian-template.vmdk co.geektr.template

# get vm info
device.info -vm <vm_name> -json <resource>
device.info -vm co.geektr.template -json ethernet-0

# power
govc vm.power -on=true <vm_name>
govc vm.power -on=true co.geektr.template

# attach network interface
govc vm.network.add -vm=<vm_name> -net=<network> --net.adapter=vmxnet3
govc vm.network.add -vm="co.geektr.minio" -net=vlan-service --net.adapter=vmxnet3

# More

1. VMWare VMGuestOsIdentifier

Reference

NAME DESCRIPTION
asianux3_64Guest Asianux Server 3 (64 bit)
asianux3Guest Asianux Server 3
asianux4_64Guest Asianux Server 4 (64 bit)
asianux4Guest Asianux Server 4
asianux5_64Guest Asianux Server 5 (64 bit)
asianux7_64Guest Asianux Server 7 (64 bit)
centos6_64Guest CentOS 6 (64-bit)
centos64Guest CentOS 4/5 (64-bit)
centos6Guest CentOS 6
centos7_64Guest CentOS 7 (64-bit)
centos7Guest CentOS 7
centosGuest CentOS 4/5
coreos64Guest CoreOS Linux (64 bit)
darwin10_64Guest Mac OS 10.6 (64 bit)
darwin10Guest Mac OS 10.6
darwin11_64Guest Mac OS 10.7 (64 bit)
darwin11Guest Mac OS 10.7
darwin12_64Guest Mac OS 10.8 (64 bit)
darwin13_64Guest Mac OS 10.9 (64 bit)
darwin14_64Guest Mac OS 10.10 (64 bit)
darwin15_64Guest Mac OS 10.11 (64 bit)
darwin16_64Guest Mac OS 10.12 (64 bit)
darwin64Guest Mac OS 10.5 (64 bit)
darwinGuest Mac OS 10.5
debian10_64Guest Debian GNU/Linux 10 (64 bit)
debian10Guest Debian GNU/Linux 10
debian4_64Guest Debian GNU/Linux 4 (64 bit)
debian4Guest Debian GNU/Linux 4
debian5_64Guest Debian GNU/Linux 5 (64 bit)
debian5Guest Debian GNU/Linux 5
debian6_64Guest Debian GNU/Linux 6 (64 bit)
debian6Guest Debian GNU/Linux 6
debian7_64Guest Debian GNU/Linux 7 (64 bit)
debian7Guest Debian GNU/Linux 7
debian8_64Guest Debian GNU/Linux 8 (64 bit)
debian8Guest Debian GNU/Linux 8
debian9_64Guest Debian GNU/Linux 9 (64 bit)
debian9Guest Debian GNU/Linux 9
dosGuest MS-DOS.
eComStation2Guest eComStation 2.0
eComStationGuest eComStation 1.x
fedora64Guest Fedora Linux (64 bit)
fedoraGuest Fedora Linux
freebsd64Guest FreeBSD x64
freebsdGuest FreeBSD
genericLinuxGuest Other Linux
mandrakeGuest Mandrake Linux
mandriva64Guest Mandriva Linux (64 bit)
mandrivaGuest Mandriva Linux
netware4Guest Novell NetWare 4
netware5Guest Novell NetWare 5.1
netware6Guest Novell NetWare 6.x
nld9Guest Novell Linux Desktop 9
oesGuest Open Enterprise Server
openServer5Guest SCO OpenServer 5
openServer6Guest SCO OpenServer 6
opensuse64Guest OpenSUSE Linux (64 bit)
opensuseGuest OpenSUSE Linux
oracleLinux6_64Guest Oracle 6 (64-bit)
oracleLinux64Guest Oracle Linux 4/5 (64-bit)
oracleLinux6Guest Oracle 6
oracleLinux7_64Guest Oracle 7 (64-bit)
oracleLinux7Guest Oracle 7
oracleLinuxGuest Oracle Linux 4/5
os2Guest OS/2
other24xLinux64Guest Linux 2.4x Kernel (64 bit) (experimental)
other24xLinuxGuest Linux 2.4x Kernel
other26xLinux64Guest Linux 2.6x Kernel (64 bit) (experimental)
other26xLinuxGuest Linux 2.6x Kernel
other3xLinux64Guest Linux 3.x Kernel (64 bit)
other3xLinuxGuest Linux 3.x Kernel
otherGuest Other Operating System
otherGuest64 Other Operating System (64 bit) (experimental)
otherLinux64Guest Linux (64 bit) (experimental)
otherLinuxGuest Linux 2.2x Kernel
redhatGuest Red Hat Linux 2.1
rhel2Guest Red Hat Enterprise Linux 2
rhel3_64Guest Red Hat Enterprise Linux 3 (64 bit)
rhel3Guest Red Hat Enterprise Linux 3
rhel4_64Guest Red Hat Enterprise Linux 4 (64 bit)
rhel4Guest Red Hat Enterprise Linux 4
rhel5_64Guest Red Hat Enterprise Linux 5 (64 bit) (experimental)
rhel5Guest Red Hat Enterprise Linux 5
rhel6_64Guest Red Hat Enterprise Linux 6 (64 bit)
rhel6Guest Red Hat Enterprise Linux 6
rhel7_64Guest Red Hat Enterprise Linux 7 (64 bit)
rhel7Guest Red Hat Enterprise Linux 7
sjdsGuest Sun Java Desktop System
sles10_64Guest Suse Linux Enterprise Server 10 (64 bit) (experimental)
sles10Guest Suse linux Enterprise Server 10
sles11_64Guest Suse Linux Enterprise Server 11 (64 bit)
sles11Guest Suse linux Enterprise Server 11
sles12_64Guest Suse Linux Enterprise Server 12 (64 bit)
sles12Guest Suse linux Enterprise Server 12
sles64Guest Suse Linux Enterprise Server 9 (64 bit)
slesGuest Suse Linux Enterprise Server 9
solaris10_64Guest Solaris 10 (64 bit) (experimental)
solaris10Guest Solaris 10 (32 bit) (experimental)
solaris11_64Guest Solaris 11 (64 bit)
solaris6Guest Solaris 6
solaris7Guest Solaris 7
solaris8Guest Solaris 8
solaris9Guest Solaris 9
suse64Guest Suse Linux (64 bit)
suseGuest Suse Linux
turboLinux64Guest Turbolinux (64 bit)
turboLinuxGuest Turbolinux
ubuntu64Guest Ubuntu Linux (64 bit)
ubuntuGuest Ubuntu Linux
unixWare7Guest SCO UnixWare 7
vmkernel5Guest VMware ESX 5
vmkernel65Guest VMware ESX 6.5
vmkernel6Guest VMware ESX 6
vmkernelGuest VMware ESX 4
vmwarePhoton64Guest VMware Photon (64 bit)
win2000AdvServGuest Windows 2000 Advanced Server
win2000ProGuest Windows 2000 Professional
win2000ServGuest Windows 2000 Server
win31Guest Windows 3.1
win95Guest Windows 95
win98Guest Windows 98
windows7_64Guest Windows 7 (64 bit)
windows7Guest Windows 7
windows7Server64Guest Windows Server 2008 R2 (64 bit)
windows8_64Guest Windows 8 (64 bit)
windows8Guest Windows 8
windows8Server64Guest Windows 8 Server (64 bit)
windows9_64Guest Windows 10 (64 bit)
windows9Guest Windows 10
windows9Server64Guest Windows 10 Server (64 bit)
windowsHyperVGuest Windows Hyper-V
winLonghorn64Guest Windows Longhorn (64 bit) (experimental)
winLonghornGuest Windows Longhorn (experimental)
winMeGuest Windows Millenium Edition
winNetBusinessGuest Windows Small Business Server 2003
winNetDatacenter64Guest Windows Server 2003, Datacenter Edition (64 bit) (experimental)
winNetDatacenterGuest Windows Server 2003, Datacenter Edition
winNetEnterprise64Guest Windows Server 2003, Enterprise Edition (64 bit)
winNetEnterpriseGuest Windows Server 2003, Enterprise Edition
winNetStandard64Guest Windows Server 2003, Standard Edition (64 bit)
winNetStandardGuest Windows Server 2003, Standard Edition
winNetWebGuest Windows Server 2003, Web Edition
winNTGuest Windows NT 4
winVista64Guest Windows Vista (64 bit)
winVistaGuest Windows Vista
winXPHomeGuest Windows XP Home Edition
winXPPro64Guest Windows XP Professional Edition (64 bit)
winXPProGuest Windows XP Professional