ESX Web UI

The following information is about how to add in the web ui to ESX server, in one of two ways, either installing it over the internet or downloading the VIB and installing on box.

This enables the webui in ESX which can be used in place of the vsphere client

Installing it over the Internet

  1. SSH into your ESXi host
  2. Run the command
    esxcli software vib install -v http://download3.vmware.com/software/vmw-tools/esxui/esxui_signed.vib

Installing it from a local file

  1. Download the VIB file
  2. SSH into your ESXi host
  3. Copy the VIB file to /tmp/
  4. Run the command
    esxcli software vib install -v /tmp/esxui_signed.vib

    Making sure you include the full path name to the file or else installation will fail
  5. If the VIB installation completes successfully, you should now be able to navigate a web browser to https:///ui and the login page should be displayed.

Intel NUC & VMware ESXi 6.0

So, recently I’ve decided to rationalise a lot of my computing equipment at home to reduce the footprint of what I use and the power consumption associated with all the equipment.

I’ve got a series of USB Hard Drives, Raspberry Pis (x2) and ACER Revo (Atom based) and a Core2Duo DELL machine all having their own use.  The raspberry pis, were a web/intranet server as well as an SSH access gateway, download device for large file downloads and a jenkins build server.  The revo was a windows 7, then 8, then 10 remote desktop client when being access remotely.  The core2duo machine is my development box where I build all the things I work on.  I reckon I have 5 x USB hard drives which I’ve also yet to detangle/clean up.

My Revo finally died, which prompted me to do something about all the equipment as I needed to replace it.

After lots of deliberation, I decided to go all out, on a reasonably low powered, but highly performant intel i7 NUC.

My shopping list was as follows:

  • Intel NUC5i7RYH Amazon Link
  • HyperX 16GB Low Voltage (1.35V) Ram (1600 MHz DDR3L CL9 SODIMM) Amazon Link
  • HyperX Predator 240GB M.2 SSD Amazon Link
  • I’d also got a 160GB SATA 2.5″ Drive going spare from the Revo

On arrival, it’s pretty painless to get into the barebones NUC to install the RAM/SSD, basically unscrew the four screws on the feet and pull off the panel.  Adding the RAM is easy.  The M.2 drive slightly more painful just as you have to screw it down and it’s a bit fiddly, but still painless.

And that was it – all ready to go.

OS of choice VMWare ESXi6 Open Source edition.
After downloading and registering/getting the key from vmware, it was put onto a USB drive to boot, which I used Rufus (https://rufus.akeo.ie/) to create.  Of course, this fails as VMWare is missing the Sata-xahci drivers/etc.

I followed the instructions here, replicated for posterity.

  1. Download and install vSphere PowerCLI 6.0 (Link) to use the Image Builder.
    This requires an account at vmware.com.
    If you are not entitled to download PowerCLI, register for an evaluation.
  2. Download required packages (Place both files in C:\esx)
    ESXi 6.0 Offline Bundle (VMware-ESXi-6.0.0-2494585-depot.zip) Link
    Sata-xahci Offline Bundle (Provided by v-front.de) Link
  3. Open VMware vSphere PowerCLI
  4. Enter the following commands:
    cd c:\esx\
    Add-EsxSoftwareDepot c:\esx\VMware-ESXi-6.0.0-2494585-depot.zip
    Add-EsxSoftwareDepot c:\esx\sata-xahci-1.28-1-offline_bundle.zip
    New-EsxImageProfile -CloneProfile "ESXi-6.0.0-2494585-standard" -name "ESXi-6.0.0-2494585-NUC" -Vendor "pembo.co.uk" -AcceptanceLevel "CommunitySupported"
    Add-EsxSoftwarePackage -ImageProfile "ESXi-6.0.0-2494585-NUC" -SoftwarePackage "sata-xahci"
    Export-ESXImageProfile -ImageProfile "ESXi-6.0.0-2494585-NUC" -ExportToISO -filepath ESXi-6.0.0-2494585-NUC.iso
    Export-ESXImageProfile -ImageProfile "ESXi-6.0.0-2494585-NUC" -ExportToBundle -filepath ESXi-6.0.0-2494585-NUC.zip
  5. Use the ISO/Zip created to install VMWare on the NUC, using rufus to create a bootable USB Drive.
  6. Install VMWare onto either the USB Drive you booted from, or in my case the 160GB SATA Drive
  7. At this point the M.2 drive does not show.  Of course, someone has had the issue before here, replicated again
  8. Adding the M.2 NVMe card.  No problem, we can fix that. First step is to determine the PCI ID:
    ~ # lspci -v | grep storage -A 1

    0000:00:1f.2 SATA controller Mass storage controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode]
         Class 0106: <strong>8086:9c83</strong>
  9. The numbers we are looking for are where the example shows 8086:9c83. We have to add the value returned to the AHCI driver map (/etc/vmware/driver.map.d/ahci.map). Unfortunately we can’t edit this file while ESXi is running. The changes have to be made to the file that is loaded during ESXi startup (/bootbank/sata_ahc.v00). Convert the file with vmtar, extract it, change the driver map and rebuild it to /bootbank/. To do that…
  10. Enable SSH from the ESXi host screen
  11. SSH to the ESXi host
  12. Run the following commands:
    cd /tmp 
    mkdir ahci
    cd ahci
    vmtar -x /bootbank/sata_ahc.v00 -o sata_ahc.tar
    tar xvf sata_ahc.tar
    rm sata_ahc.tar
    echo "regtype=linux,bus=pci,id=8086:9c83 0000:0000,driver=ahci,class=storage" &gt;&gt; etc/vmware/driver.map.d/ahci.map
    tar cvf sata_ahc.tar etc usr
    vmtar -c sata_ahc.tar -o sata_ahc.vgz
    mv sata_ahc.vgz /bootbank/sata_ahc.v00

    Obviously substituting the 8086:9c83 with the value the previous command returned
  13. Reboot ESXi, and add the SSD storage

Next post in this series will be on my experiences/vms/usage/etc!

Thanks to virten.net and its contributors/authors for significant help in getting this going quickly!

E2Stream v6.5

E2Stream v6.5 is now available to download from here: E2stream (30605 downloads)

Change log:

v6.5 - 25/05/2015
* Implemented fix to avoid error on movie list items
  with no description (not normally E2 recordings!)
  
* Changed recordings/movie playback to honour the
  transcoding settings that are set in the settings menu
  to allow for playback of recordings using the
  transcoder if needed.

Please note, the installation and setup requires you to enable a ‘develop’ account on your TV.
You also need Java v7 or v8 to run the installer.

Instructions to setup can be found here

For any bugs, please email/post or create a new issue here

If you do use E2Stream, please consider donating to support the continued development and hosting costs of this app! You can donate any amount you feel is applicable here:




Building E2Stream

E2Stream is built through a combination of apache ant (http://ant.apache.org/), and Jenkins (http://jenkins-ci.org/). You don’t need to use Jenkins, but it does help to keep things simple

There are three ant build scripts, One in the E2Stream project, and two in the E2Stream-Installer, (one in assets, one in installer) project.

If using Jenkins, you’ll want to create a build job called E2stream.

1. Set Version Parameter

To build a release version, the scripts use an environment variable:

setversion

to hold the version number. This has to be a Major.Minor version number in order to prevent issues within the smart TV SDK, e.g. 6.3 This is done through Jenkins by having a parameterised build, with a text parameter named ‘setversion’, but could simply be an environment variable passed to ant if not using Jenkins.

2. Source Code for App

Next get the source for the Smart TV app from github using the following URL and the master branch (or branch of your choice!)

https://github.com/dpembo/e2stream

3. Set the Version Within the App

Now invoke the ‘version’ target in the build script. This modifies files within the build to contain the version number specified in the setversion parameter

4. Clear Debug

To build a release build, next you’ll want to ensure that the debug settings are not present, therefore invoke the ‘clearDebug’ target in the build script to do this.

5. Build App

Next call the ‘dist’ target to package up the app. This creates a zip file called ‘e2stream.pkg’ which excludes the build script, eclipse project files, and any .svn markers (code was previously in a google code subversion repository!)

6. Parameterised Trigger of E2Stream-Installer Build

Using Jenkins and a plugin, a parameterised build of the E2Stream-installer job is run next, passing the ‘setversion’ property.

7. Source code for Installer

Get the source code for the installer from the following github repository and branch of your choice:

https://github.com/dpembo/e2stream-installer

8. Copy the e2stream.pkg to the installer build directory

This can be done with a copy, or by invoking the ‘jenkinsCombine’ target of the ant script within the e2stream-assets folder/project from the installer repository.

9. Compile and JAR the assets

Next, compile the java code within the assets, and copy all the assets (html/css/js) to a location along with the e2stream.pkg (ant target ‘dist’), and jar these into e2streamassets.jar, and move to the ‘installer’ project. (ant target ‘moveToInstaller’)

10 Build the Installer

Finally build the installer (ant target ‘dist’ in the installer build.xml). This compiles the installer, and creates an executable jar e2stream-installer.jar which containas the e2streamassets.jar. Finally, copy the readme.txt and .cmd file, then zip to creae a release zip file

phew!

Screen shots for Jenkins at a later date!

E2Stream v6.3

E2Stream v6.3 is now available to download from here: E2stream (30605 downloads)

Change log:

v6.3 - 22/03/2015
* Added option in installer to download the app as a zip
&nbsp; for installation from other software

v6.2 - 22/03/2015
* Moved source to github and updated build processes to use github
  https://github.com/dpembo/e2stream
  https://github.com/dpembo/e2stream-installer
* Corrected positional issue of title text on the now/next
  detail infobar


Please note, the installation and setup requires you to enable a ‘develop’ account on your TV.
You also need Java v7 or v8 to run the installer.

Instructions to setup can be found here

For any bugs, please create a new issue here

If you do use E2Stream, please consider donating to support the continued development and hosting costs of this app! You can donate any amount you feel is applicable here: