Im a VMware vExpert 2018

To add to an already amazing year in world of virtualisation, today I was named a VMware vExpert 2018 . I’m honoured, humbled, and proud of my contributions to this amazing virtualisation community. The vExpert list is constantly growing, and it’s amazing to be part of this list of experts.

vExperts demonstrate significant contributions to the community and a willingness to share their expertise with others.

Studing For VCP6-NV (2V0-642)

So not had a chance to post much recently as im studying for my VCP6-NV (2V0-642). Figured i would post a couple of the places i have been using:

  1. These excellent vBrownBag Sessions

2. VMware Hands on Lab (HOL)

3. NSX 6.2 Documentation

 

vSphere Web Client (Flash) And Windows 2016

Had an interesting one the other day,  deploying windows 2016 servers for a customer, setting one up as a jump server for support staff i naturally wanted to check that we could access the vSphere web console correctly using both flash and html variants.

By reading this post you can imagine that it didn’t work due to our old friend flash. However there is an easy fix

1
dism /online /add-package /packagepath:"C:\Windows\servicing\Packages\Adobe-Flash-For-Windows-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum"

 

Running this will get the respective flash component installed to enable you to use the web client again. More details are available at Technet Article

 

ESXi And Windows Domain Controller Time Source

Bit of an old reference for the day but one i must admit i have forgotten previously, when using a windows domain controller time source for your ESXi infrastructure you may notice that with the default settings you find that it wont synchronize.

Thankfully VMware have a workaround that requires a couple of changes on the ESXi hosts to change the NTP client settings. Instructions are even provided on how to configure you domain controllers w32time service to point to one of the many internet NTP services so you always have good/reliable time source configured.

 

For the ESXi client NTP changes heres the article reference https://kb.vmware.com/s/article/1035833

 

New Release: VMware PowerCLI 10.1.0

A New version of PowerCLI has been released today to support the recent releases of vSphere 6.7/ vSAN 6.7 and NSX-T 2.1.

It includes the 20th module  vmware.vim that we can use to work with API’s in VMware on AWS so that should be something to look into later.

If like me and run via a Linux Powershell then to update the  PowerCLI modules all you need to do is the following (via the powershell prompt):

1
Update-Module VMware.PowerCLI

Heres a link to the VMware article that talks about some of the new features:

New Release: VMware PowerCLI 10.1.0

 

vCSA 6.5 How To Reset The Root Password

A nice and easy one, but one that i must admit have fallen foul to a couple of times.

If your worried your going to break something then take a snapshot of the applicance prior to all this.

1. Start the appliance up and press the space bar to freeze the GRUB menu.  You need to be fairly quick on this bit (usually takes me a couple of times)

2. Press e to enable edit mode.

3. Append rw init=/bin/bash to the end of the line

4. Press F10 to reboot. The appliance will now boot up to a shell

5. Type passwd to change the root password. Type it twice and press Enter to confirm.

6. Reboot the appliance using the power options from the VMRC or vSphere client menu, or type reboot (which ever takes your fancy).

And your done…. (if you took a snapshot do your tests then dont forget to remove it)

vCSA 6.5 Update 1 VMDK and Partition Resizing

Sometimes we have a requirement to increase the size of the drives on the vCSA Appliance due to a need for extra space for logs or we have just increased the infrastructure and need to increase the DB sizing etc. To help identify the VMDK’S to there respective mount points I have listed below the there standard sizes.

Disk Size Purpose Mount Point
VMDK1 12GB / and Boot  / and Boot
VMDK2 1.8GB VCSA’s RPM packages Not Mounted
VMDK3 25GB Swap SWAP
VMDK4 25GB Core  /storage/core
VMDK5 10GB Log  /storage/log
VMDK6 10GB DB  /storage/db
VMDK7 15GB DBLog  /storage/dblog
VMDK8 10GB Stats Events and Tasks  /storage/seat
VMDK9 1GB Net Dumper  /storage/netdump
VMDK10 10GB Auto Deploy  /storage/autodeploy
VMDK11 10GB Image Builder /storage/imagebuilder
VMDK12 100GB Update Manager  /storage/updatemgr

For example if we need to increase the storage for the logs volume, vCSA 6.5 will allow us to do this via a hot addition (so no downtime). We just need first increase the size of VMDK5 from say 10GB to 15GB using either the vSphere Web Client or PowerCLI. Once this is complete we need to do a resize on the volume, as we like PowerCLI we will do it using some of the CIS cmdlets by doing the following:

1
2
3
Connect-CisServer -Server 192.168.1.5 -User administrator@vsphere.local -Password VMware123!
$diskResize = Get-CisService -Name 'com.vmware.appliance.system.storage'
$diskResize.resize()

(I will be doing a post later to go over some of the checks we can do on the vCSA using the CIS cmdlets)

PowerCLI Deploying 6.5u1 vCSA

Deploying vCSA in 6.5 normally means that you need to run through the manual process using your web browser. However there is another method,  vcsa-deploy.exe if you like the idea of having it scripted as a re-usable configured deployment.

I though i would give this a try using the following script i have put together for the recent 6.5u1 vCSA release.

The vcsa-cli-installer\templates folder hosts all the templates that can be selected and you can tailor your modified .json file by adding/removing attributes as required (however don’t forget the options depend on the template you will be using)

“new.vcsa”: {
         “esxi”: {
                   “hostname”: “”,
                   “username”: “root”,
                   “password”: “”,
                    “deployment.network”: “VM Network”,
                    “datastore”: “ESXi host datastore, or a specific datastore in a datastore cluster.>”

The script below will deploy a vCSA to esxi host 192.168.1.5, the deployment used will be an install (you could script migrate/upgrade) and use the database tiny option (as we are managing 10 or less hosts), it has been told all the relevant IP details to configure and the datastore it will be placed on.

Don’t forget the memory requirements, even a tiny vCSA required 10GB of RAM.

You of course need to be connected by a connect-viserver to the ESXi node to run

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Convert JSON file to PowerShell object
$configconfig = "D:\VMware-VCSA-all-6.5.0-8024368\vcsa-cli-installer\templates\install\embedded_vCSA_on_ESXi.json"
$deploy = "D:\VMware-VCSA-all-6.5.0-8024368\vcsa-cli-installer\win32\vcsa-deploy.exe install --accept-eula --acknowledge-ceip "
$UpdatedConfig = "D:\VMware-VCSA-all-6.5.0-8024368\config.json"
$config = (Get-Content -Raw $configconfig) | ConvertFrom-Json

# vCSA system information
$config."new.vcsa".os.password="VMw@re123"
$config."new.vcsa".sso.password = "VMw@re123"
$config."new.vcsa".sso."site-name" = "Default-Site"

# ESXi Host Information
$config."new.vcsa".esxi.hostname="192.168.1.5"
$config."new.vcsa".esxi.datastore="Datastore1"
$config."new.vcsa".esxi.username="root"
$config."new.vcsa".esxi.password="VMw@re123"
$config."new.vcsa".esxi."deployment.network"="VM Network"
$config."new.vcsa".appliance."deployment.option"="tiny"
$config."new.vcsa".appliance.name="MGMT-vCSA65u1"

# Networking
$config."new.vcsa".network.mode = "static"
$config."new.vcsa".network.ip = "192.168.1.25"
$config."new.vcsa".network.prefix = "24"
$config."new.vcsa".network.gateway = "192.168.1.1"
$config."new.vcsa".network."dns.servers"="192.168.1.1"
$config."new.vcsa".network."system.name"="MGMT-vCSA65u1.local"
$config | ConvertTo-Json | Set-Content -Path "$UpdatedConfig"
iex "$deploy $UpdatedConfig"

 

PowerCLI Disconnect CD Drives

So today we hit that old chestnut of an issue , you go and try and Storage vMotion a load of VM’s, when you get an error you realise that they had CD Drives connected.

You have two options manually go through through each VM and unmap the drive or a quick bit of PowerCLI to solve the problem.

First we do a quick check of the VM’s and see whats connected and to what:

1
Get-VM | Where-Object {$_.PowerState –eq “PoweredOn”} | Get-CDDrive | FT Parent, IsoPath

 

If there are none that we require lets set them all to “No Media

1
Get-VM | Where-Object {$_.PowerState –eq “PoweredOn”} | Get-CDDrive | Set-CDDrive -NoMedia -Confirm:$False

 

There we go, we can now do the Storage vMotion’s without issues.

PowerCLI 10 On A Raspberry PI

First things first I am a big fan on the raspberry PI and have more or less every iteration scattered around the house doing different jobs. In fact i tend to use one for access to my home lab using either a ssh session or via xrdp to a nice xfce session via tightvnc (maybe thats for another blog post).

However running PowerCLI on it never occurred until recently.  So i though why not try it so here goes..

Assuming your running Raspbian Stretch on a PI 3

Microsoft have kindly given some nice instructions on how to install PowerShell on the Raspberry PI and others at: Microsoft Link (I made a change to the below as we need version v6.0.1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Install prerequisites
sudo apt-get install libunwind8

# Grab the latest tar.gz (Changed as PowerCLI needs v6.0.1)
wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.1/powershell-6.0.1-linux-arm32.tar.gz

# Make folder to put powershell
mkdir ~/powershell

# Unpack the tar.gz file
tar -xvf ./powershell-6.0.1-linux-arm32.tar.gz -C ~/powershell

# Start PowerShell
~/powershell/pwsh

This gets up PowerShell up and running now all we need to do is install the PowerCLI modules. Again VMware this time have provided some instructions at VMware Link

1
2
#Install PowerCLI Module
Install-Module -Name VMware.PowerCLI -Scope CurrentUser

It Takes a little while to run, then you need to give it permission to do the install (Press Y)

And that is it, we can now use PowerCLI from our Raspberry PI

« Older posts