I was one of the lucky ones that received a fantastic piece of hardware (NUC) for a home lab. The hardware giveaway was sponsored by Cohesity and the vExpert community. Again a big thanks!!!
Some of the important specs:
Model and Brand | NX6412-B11 |
CPU | Intel Elkhart Lake J6412 – 2.00 GHz base and 2.60 Ghz burst |
Memory | Dual Channel SO-DIMM DDR4 up to 32 GB |
Storage | 1 x M.2 2242 / 2280 SSD SATA |
Ethernet internal | 2 x 10/100/1000 Mbps RTL8111H |
Ports | 2 x LAN, 2 x USB 3.2, 2x USB 2.0, 1 x USB-C, 2 x HDMI 2.0 |
I never had a home lab other than VMware Workstation or VMware Fusion so I wanted to see what I could do with this piece of hardware.
First steps
The NX6412 is not provided with memory and storage so we need to check what would be the best value for money on those components.
After some investigation, I came up with the following.
Memory | Crucial DDR4 SO-DIMM 2 x 16 GB 3200 | Link to Amazon |
Storage | WD Blue M.2 2280 SA510 1 TB | Link to Amazon |
Installation of the components was quite simple. 4 screws on the bottom of the NUC. Memory is installed the same way as adding additional memory to a laptop. Storage is almost the same as the memory only now I had to use a screw to fasten the storage.
Hardware test
To check if all the hardware was functioning and working as expected I installed Linux Mint. Installation was very quick and the OS was up and running within minutes. All hardware seems to be working without any issues. I was able to connect to the internet as well as connecting multiple monitors. The performance was good as well. I didn’t do any benchmark tests.
ESXi attempt 1
The next challenge, installing ESXi. So from the beginning, I already saw that the ethernet chipset RTL8111H was not supported by VMware ESXi so I needed to create a custom ISO with drivers. I came across the website of Andreas Peetz (Link). Andreas wrote a super nice PowerShell script on how to create a customized ESXi ISO image with the possibility of injecting custom drivers from online and offline depots. Check his Github page for the most recent version. Andreas also provides his own depot with drivers for my chipset. However, the driver is for ESXi 6.7 and I want to use ESXi 7.0 so I couldn’t create a custom ISO with the drivers inside.
After some browsing, I found the USB Network Native Driver for ESXi Fling and decided to get 2 USB network cards that are supported by the USB Network Native Driver Fling. So I bought the following.
Cable Matters USB to Ethernet Adapter USB 3.0 to ethernet | Link to Amazon |
ESXi attempt 2
Once I received my USB Ethernet Adapters I thought it would be an easy fix but I was wrong. I still wanted to use Andreas his script to create a custom ISO for ESXi 7.0. The requirements for his script are at least PowerShell 2.0 or newer and VMware PowerCLI 5.1 or newer. On my Windows 10 machine I have PowerShell 5.1 and I installed the latest VMware PowerCLI version 13 via the following PowerShell command.
Install-Module VMware.PowerCLI -Scope CurrentUser
In my opinion, I am all set and ready to create an ISO image. The first run of the ESXi-Customizer-PS.ps1 gave me an error message that Python 3.7 was not installed.
So I installed Python 3.7.
ESXi attempt 3
Python was installed so the next attempt was to run the ESXi-Customizer-PS.ps1 script. Again I got an error message.
An unexpected error occurred:
Could not initialize the VMware.ImageBuilder PowerCLI module. Make sure that Python 3.7 is installed and that you have set the path to the Python executable by using Set-PowerCLIConfiguration -PythonPath. See the PowerCLI Compatibility Matrixes for information on the Python requirements.
I installed Python so that should not be the problem. So I used the command to set my PythonPath.
ESXi attempt 4
I added the Python path so let’s try again. Again the error message. It seems that I was missing some Python modules that are necessary for VMware.ImageBuilder. So I had to install the following modules:
six
psutil
lxml
pyopenssl
ESXi attempt 5
After the installation of the Python modules, I tried to run the ESXi-Customizer-PS.ps1 again. I also made sure that the USB driver from the VMware Fling was injected. Everything seems to be working… Until the export of the ESXi Image. An error message appeared (again).
Export-EsxImageProfile: Error retrieving file for VIB 'VMware_bootbank_esx-update_8.0.0-1.0.20513097': ('vib20/esx-update/VMware_bootbank_esx-update_8.0.0-1.0.20513097.vib', "Unable to open VIB archive in streaming mode: '_SharedFile' object has no attribute 'writing'")
And literally the same day I got this error message, William Lam wrote an article on this same error message: Heads Up – Unable to open VIB archive in streaming mode using Export-EsxImageProfile with PowerCLI 13.0
Conclusion
So what did I learn?
First of all, I really like to play around and run into issues like this and try to solve this on my own or with the help of the community.
Second of all, maybe (or maybe not) I need to start checking into the requirements before I start things like this.
Last but not least. At this moment I am unable to use vCenter 8 (Because of support for other products) for Lifecycle manager and/or vSphere Imagebuilder. Therefore, the hardware is now eating dust on my desk. This will be continued!!
2 Comments
Leave a comment
I also have had this error. After looking into it, the actual cause is the new powershell core was updated (possibly in a dec 2022 windows update). To use the older powershell, run CMD and type powershell.exe and in that same CMD you will be prompted by the “PS>” powershell prompt. Here I was able to run ESXi-Customizer-PS.ps1 without the error. I hope this is clear enough 🙂