Difference between revisions of "ESXi Stuff"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="color: rgb(186, 55, 42); font-size: 36pt;">WIP...</span>
<span style="color: rgb(186, 55, 42); font-size: 36pt;">WIP... <span style="font-size: 12pt;" >(tho the ship may have sailed now...)</span></span>
= Installation =
= Installation =
<span style="color: rgb(186, 55, 42); font-size: 24pt;">WIP...</span>
<span style="color: rgb(186, 55, 42); font-size: 24pt;">WIP...</span>
Line 6: Line 6:
<span style="color: rgb(186, 55, 42); font-size: 24pt;">WIP...</span>
<span style="color: rgb(186, 55, 42); font-size: 24pt;">WIP...</span>


* Laying out the Datastores
== Laying out the Datastores ==
* An "Admin" Datastore
I tend to prefer splitting up my storage into at least 3 separate datastores. (On completely separate drives or RAID arrays...)
=== An "Admin" Datastore ===
* [[ESXi - Admin Utilities{{!}}Utilities]]
** Utility space for scripts & add-ons & such
* ISOs
** ISO images & such
* [[ESXi - Admin CloneMe{{!}}CloneMe]]
** Baseline VMs for creating new VMs from
* Manager
** A VM just for remoting in & managing the server
 
=== A "VMs" Datastore ===
 
This is where I install the actual VMs.
=== 1 (or more) "Storage" Datastores ===
Secondary (storage) drives for the VMs get built here.


= Maintenance =
= Maintenance =
Line 17: Line 32:


= ESXi from the Command Line =
= ESXi from the Command Line =
There are 2 ways to reach the command line under ESXi, at the console & through SSH.
At the console kinda sucks in most cases. (Think about it, standing in front of the rack is never a good day.)
== Basic Concepts ==
== Basic Concepts ==


* ESXi appears to be based on [https://www.busybox.net/ BusyBox]
* ESXi appears to be based on [https://www.busybox.net/ BusyBox]
** So... If you're bashing your head against a wall trying to figure out how do do something low-level, check out the documentation for BusyBox.
** So... If you're bashing your head against a wall trying to figure out how do do something low-level, check out the documentation for BusyBox.
** Basically tho... Most of the functionality is very close to typical Linux, so the man pages on a Linux machine will get you very close.
** Basically tho... Most of the functionality is very close to typical Linux, so the man pages on a Linux machine will get you very close.


==Usability Fixes==
== AvailableESXi Command sets ==
ESXi has at least 2 separate command interpreters available at the command line...
 
* [[ESXi - vim-cmd{{!}}vim-cmd]]
* [[ESXi - esxcli{{!}}esxcli]]
 
== Usability Fixes ==
ESXi has a '''NON-EDITABLE''' shell profile at '''/etc/profile'''.
ESXi has a '''NON-EDITABLE''' shell profile at '''/etc/profile'''.


Line 31: Line 56:


* <code>source /etc/profile.local</code>
* <code>source /etc/profile.local</code>
enables your changes.
enables your changes.


Line 37: Line 61:


* <code>/sbin/auto-backup.sh</code>
* <code>/sbin/auto-backup.sh</code>
To tell ESXi to save the changes.
To tell ESXi to save the changes.


===The Shell Prompt===
=== The Shell Prompt ===
The shell prompt (when you're in a directory on a mounted volume) is fugly & useless.
The shell prompt (when you're in a directory on a mounted volume) is fugly & useless.


* <code>vi /etc/profile.local</code>
* <code>vi /etc/profile.local</code>
  PS1="[\u@\h \e[1;33m\A \W\e[m]\$ "
  PS1="[\u@\h \e[1;33m\A \W\e[m]\$ "
(My current preference...)
(My current preference...)


See [https://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html here] or [https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ here] for a couple of articles about customising your prompt...
See [https://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html here] or [https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ here] for a couple of articles about customising your prompt...


===Useful Aliases===
=== Useful Aliases ===
* <code>vi /etc/profile.local</code>
* <code>vi /etc/profile.local</code>
  alias ll="ls -l"
  alias ll="ls -l"


===PATH===
=== PATH ===
By default, the execution PATH is <code>/bin:/usr/bin</code> . This is fine if you don't want to add executables elsewhere.
By default, the execution PATH is <code>/bin:/usr/bin</code> . This is fine if you don't want to add executables elsewhere.


Line 64: Line 84:


* <code>vi /etc/profile.local</code>
* <code>vi /etc/profile.local</code>
  PATH=/bin:/usr/bin:/vmfs/volumes/Admin/Utilities/Scripts
  PATH=/bin:/usr/bin:/vmfs/volumes/Admin/Utilities/Scripts
export PATH
(Note that '''/vmfs/volumes/Admin/Utilities/Scripts''' will be specific to your system...)
(Note that '''/vmfs/volumes/Admin/Utilities/Scripts''' will be specific to your system...)


Line 73: Line 90:
Remote execution through SSH does not read the '''/etc/profile.local''' file.
Remote execution through SSH does not read the '''/etc/profile.local''' file.


One solution is to put your custom executables in the '''/bin''' folder.   '''<big>BUT</big>''', this is not maintainable. It can break on reboot and will DEFINITELY break on upgrades.
One solution is to put your custom executables in the '''/bin''' folder. '''<big>BUT</big>''', this is not maintainable. It can break on reboot and will DEFINITELY break on upgrades.


A better solution is to put a symbolic link there.
A better solution is to put a symbolic link there.
Line 80: Line 97:


* <code>ln -s /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh /bin</code>
* <code>ln -s /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh /bin</code>
Or...
Or...


Line 87: Line 103:
* <code>ssh root@esxi1 /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh</code>
* <code>ssh root@esxi1 /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh</code>


== ESXi Command sets ==
= Neat Tricks =
* [[ESXi - vim-cmd|vim-cmd]]
== Copying a VM from one server to another ==
* [[ESXi - esxcli|esxcli]]
 
=Neat Tricks=
==Copying a VM from one server to another==
Start by shutting down the VM...
Start by shutting down the VM...


Line 98: Line 110:


* <code>ssh root@esxi0</code>
* <code>ssh root@esxi0</code>
Next, copy the VM to the destination server.
Next, copy the VM to the destination server.


* <code>scp -r /vmfs/volumes/VMs/TinkersVM root@esxi1:/vmfs/volumes/VMs</code>
* <code>scp -r /vmfs/volumes/VMs/TinkersVM root@esxi1:/vmfs/volumes/VMs</code>
Wait a while...
Wait a while...


Line 111: Line 121:
That'd be a '''Yes'''.
That'd be a '''Yes'''.


==Messing about with the DCUI screen==
== Messing about with the DCUI screen ==


* [https://kb.vmware.com/s/article/2046347 Creating a welcome message on the DCUI screen of an ESXi host (2046347)]
* [https://kb.vmware.com/s/article/2046347 Creating a welcome message on the DCUI screen of an ESXi host (2046347)]
Line 117: Line 127:
* [https://williamlam.com/2010/09/how-to-add-splash-of-color-to-esxi-dcui.html How to add a splash of color to ESXi DCUI Welcome Screen]
* [https://williamlam.com/2010/09/how-to-add-splash-of-color-to-esxi-dcui.html How to add a splash of color to ESXi DCUI Welcome Screen]


=Oddities=
= Oddities =
==SCP Copy Stalled and/or rekeyed ciphers==
== SCP Copy Stalled and/or rekeyed ciphers ==
See:[https://techpress.net/copy-files-between-esxi-hosts-by-using-scp-secure-copy-command-scp-copy-stalled-fix/ Copy Files between ESXi Hosts by using SCP (Secure Copy) Command / SCP Copy Stalled Fix]
See:[https://techpress.net/copy-files-between-esxi-hosts-by-using-scp-secure-copy-command-scp-copy-stalled-fix/ Copy Files between ESXi Hosts by using SCP (Secure Copy) Command / SCP Copy Stalled Fix]



Latest revision as of 15:28, 23 December 2023

WIP... (tho the ship may have sailed now...)

Installation

WIP...

Setup

WIP...

Laying out the Datastores

I tend to prefer splitting up my storage into at least 3 separate datastores. (On completely separate drives or RAID arrays...)

An "Admin" Datastore

  • Utilities
    • Utility space for scripts & add-ons & such
  • ISOs
    • ISO images & such
  • CloneMe
    • Baseline VMs for creating new VMs from
  • Manager
    • A VM just for remoting in & managing the server

A "VMs" Datastore

This is where I install the actual VMs.

1 (or more) "Storage" Datastores

Secondary (storage) drives for the VMs get built here.

Maintenance

ESXi from the Command Line

There are 2 ways to reach the command line under ESXi, at the console & through SSH.

At the console kinda sucks in most cases. (Think about it, standing in front of the rack is never a good day.)

Basic Concepts

  • ESXi appears to be based on BusyBox
    • So... If you're bashing your head against a wall trying to figure out how do do something low-level, check out the documentation for BusyBox.
    • Basically tho... Most of the functionality is very close to typical Linux, so the man pages on a Linux machine will get you very close.

AvailableESXi Command sets

ESXi has at least 2 separate command interpreters available at the command line...

Usability Fixes

ESXi has a NON-EDITABLE shell profile at /etc/profile.

Luckily, there's an override file at /etc/profile.local

After any changes you make to this file,

  • source /etc/profile.local

enables your changes.

To make the changes persist over a restart of the server:

  • /sbin/auto-backup.sh

To tell ESXi to save the changes.

The Shell Prompt

The shell prompt (when you're in a directory on a mounted volume) is fugly & useless.

  • vi /etc/profile.local
PS1="[\u@\h \e[1;33m\A \W\e[m]\$ "

(My current preference...)

See here or here for a couple of articles about customising your prompt...

Useful Aliases

  • vi /etc/profile.local
alias ll="ls -l"

PATH

By default, the execution PATH is /bin:/usr/bin . This is fine if you don't want to add executables elsewhere.

I tend to put various utility scripts & such in sub-folders of /vmfs/volumes/Admin/Utilities

This can also be fixed in /etc/profile.local

  • vi /etc/profile.local
PATH=/bin:/usr/bin:/vmfs/volumes/Admin/Utilities/Scripts

(Note that /vmfs/volumes/Admin/Utilities/Scripts will be specific to your system...)

Caveat

Remote execution through SSH does not read the /etc/profile.local file.

One solution is to put your custom executables in the /bin folder. BUT, this is not maintainable. It can break on reboot and will DEFINITELY break on upgrades.

A better solution is to put a symbolic link there.

eg.:

  • ln -s /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh /bin

Or...

Just provide the complete path on the command line when running scripts via SSH:

  • ssh root@esxi1 /vmfs/volumes/Admin/Utilities/Scripts/MyCustomCode.sh

Neat Tricks

Copying a VM from one server to another

Start by shutting down the VM...

Then SSH into the originating server.

  • ssh root@esxi0

Next, copy the VM to the destination server.

  • scp -r /vmfs/volumes/VMs/TinkersVM root@esxi1:/vmfs/volumes/VMs

Wait a while...

Then... let's see if it'll register & run like the restored backups do.

w00t!

That'd be a Yes.

Messing about with the DCUI screen

Oddities

SCP Copy Stalled and/or rekeyed ciphers

See:Copy Files between ESXi Hosts by using SCP (Secure Copy) Command / SCP Copy Stalled Fix

But more usefully... See:SSH Frequently Asked Questions

Basically... It really doesn't mean much.

Older Notes (Mostly still on the TinkerNet Wiki)

Why virtualize your server infrastructure (Morton Hjorth)