What’s in my bag for Nutanix .Next

Intro

So previous to VMworld and also for MS Ignite I saw some people posting pictures of what would be in their bag for those events. Since I have always been a bad copycat I decided to make a post like that myself for Nutanix .Next Europe that I will be attending. Since it’s still some weeks to go the list might change a bit but this is the core of what i will be bringing.

Laptop

My day to day laptop is an HP Probook 440 G4 it by defaults comes with an 128GB NVME and has an extra 500Gb SSD added to it with 16Gb of ram. This is plenty for me and when I want I am always able to run a couple of VM’s. It has an USB-C port but sadly HP made sure it can’t be charged over that 🙁 It does have a regular USB port that gives some more power to charge my phone. When doing simple office work it has a battery life of about 6-7 hours so for most convention days I only need to charge it overnight. With 14 inch it has a nice size and the weight is also low enough.

Phone

this smart talky talky thing is a Samsung A5 2017 and yes the screencover needs to be replaced. Again it goes a very long time on the battery, only when i get distracted by Boom Beach it goes down a lot faster. From my employer I have a Samsung S4 mini, this makes phone calls, does whatsapp and the mail and that’s about it.

Headset

To keep the rotten sounds out and the good sounds in my ear I use the Sony MDR-ZX770BN. Since in ear buds always give my headaches I went with this over ear set that i got recommended by a lot of folks in the community and I love it. it gives a lot of bang for the noise cancelling buck.

Loose stuf

For the rest I have a supposedly (but who believes China?) Bubm DIS-L case fits all those goodies that normally would get lost in my backpack. It will be holding a battery pack (Xiaomi 10k for when i have played to much Boom Beach), Xiaomi Bluetooth mouse (Cheap, works perfect), USB stick, charging cables and whatever else I can think off. Xiaomi does have some good and cheap things to use it just takes a while before they arrive from China.

Travel Adapter

Wait, a travel adapter? You’re form The Netherlands just use your normal plugs! Yes I will be using those but this is an ideal travel adapter. The Powercube Rewireable USB isn’t a normal adapter. This cube uses a normal C14 cable or one of the plugs that come with it for other countries. So for France a normal power cable is all it takes to give me four power outlets + two 2A USB ports. Ideal for when you are travelling.

Creating local ESXi user in a locked down situation and add it to exception list

So my customer asked for a solution to add local users on ESXi hosts that are in lockdown mode. A side quest was to add these to the lockdown exception list. The use case for this is app volumes, they want to be able to keep using them in case the vCenter server goes down. The trick to this that you need to talk to two different viserver entities. The vCenter server and the local ESXi host since you can add those users via vCenter.

Offcourse PowerCLI to the rescue! I decided to do everything in a try catch construction for some error handling and to give some visual output. These cab be stripped if you want but i like some feedback.

Some of the outtakes:

(get-vmhost $vmhost | get-view).ExitLockdownMode()
(get-vmhost $vmhost | get-view).EnterLockdownMode()

These two disable and enable the current lockdown mode, this is necessary before being able to create the local user.

Try {
$account = Get-VMHostAccount -server $vmhost.name -Id $accountName -ErrorAction Stop |
Set-VMHostAccount -server $vmhost.name -Password ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($accountPswd))) -Description $accountDescription 
}
Catch   {
$account = New-VMHostAccount -server $vmhost.name -Id $accountName -Password ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($accountPswd))) -Description $accountDescription -UserAccount -GrantShellAccess 
}

Some encryption stuff in here but that’s because I dislike having password visible as plain tekst. This first test if the account exists and then sets the password and description. If the user doesn’t exist it will create the user for you.

 $rootFolder = Get-Folder -server $vmhost.name -Name ha-folder-root
 New-VIPermission -server $vmhost.name -Entity $rootFolder -Principal $account -Role admin

This gives the newly created or edited user the admin role. If you want to use a custom role this could be added to the script, we decided to go for the admin role since app volumes needs an awful lot of rights anyway. In that case i would recommend to use a variable for role name and create it per host using new-VIrole

$HostAccessManager = Get-View -Server $vCenter $vmhost.ExtensionData.ConfigManager.HostAccessManager
$HostAccessManager.UpdateLockdownExceptions($accountName)

This simply adds the user to the lockdown exception list.

So now the complete script:

#-------------------------------------------------
# Create local ESXi user with admin rights and lockdown exception while the host is in lockdown mode
# 
# Requires PowerCLI 6.5 or higher (module based not snappin)
# Based on scripts by Luc Dekens and others
#
# Version 1.0
# 09-10-2017
# Created by: Wouter Kursten
#
#-------------------------------------------------
#
# Load the required VMware modules (for PowerShell only)

Write-Host "Loading VMware PowerCLI Modules" -ForegroundColor Green
try	{
    get-module -listavailable vm* | import-module -erroraction stop
}
catch	{
    write-host "No Powercli found" -ForegroundColor Red
}

#Ask for connection information

$vcenter=Read-Host "Enter vCenter server name"
$Target = Read-Host "Which hosts? (i.e. server*)"
$rootpassword = Read-Host "Enter root Password" -AsSecureString
$accountName = $userPassword = Read-Host "Enter New Username"
$accountDescription = $userPassword = Read-Host "Enter New User description"
$accountPswd = Read-Host "Enter New User Password" -AsSecureString
$rootuser="root"

# Connect to vCenter
$connectedvCenter = $global:DefaultVIServer

if($connectedvCenter.name -ne $vcenter){
	Connect-VIServer $vCenter -wa 0 | Out-Null
	Write-Host "Connected"
	Write-Host " "
}

# Get the host inventory from vCenter
$vmhosts = Get-VMHost $Target | Sort Name

foreach($vmhost in $vmhosts){
    try {
        (get-vmhost $vmhost | get-view).ExitLockdownMode()
        write-host "Lockdown disabled for $vmhost" -foregroundcolor green
    }
    catch   {
        write-host "can't disable lockdown for $vmhost maybe it's already disabled" -foregroundcolor Red
    }

    connect-viserver -server $vmhost -user $rootuser -password ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($rootpassword))) -wa 0 -notdefault | Out-Null

    Try {
        $account = Get-VMHostAccount -server $vmhost.name -Id $accountName -ErrorAction Stop |
        Set-VMHostAccount -server $vmhost.name -Password ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($accountPswd))) -Description $accountDescription 
    }
    Catch   {
        $account = New-VMHostAccount -server $vmhost.name -Id $accountName -Password ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($accountPswd))) -Description $accountDescription -UserAccount -GrantShellAccess 
    }
    
    $rootFolder = Get-Folder -server $vmhost.name -Name ha-folder-root
    New-VIPermission -server $vmhost.name -Entity $rootFolder -Principal $account -Role admin

    #Adding the new user to the Lockdown Exceptions list
    $HostAccessManager = Get-View -Server $vCenter $vmhost.ExtensionData.ConfigManager.HostAccessManager
    $HostAccessManager.UpdateLockdownExceptions($accountName)
     
      
    Disconnect-VIServer $vmhost.name -Confirm:$false  
    try {	
        (get-vmhost $vmhost | get-view).EnterLockdownMode()
        write-host "Lockdown enabled for $vmhost" -foregroundcolor green
    }
    catch   {
        write-host "can't disable lockdown for $vmhost maybe it's already Enabled?" -foregroundcolor Red}
    }
}

    Disconnect-VIServer -Confirm:$false

Future versions of this script will not be edited on here so always check the latest version on github.

 

Nutanix Releases Xtract for VM’s

Today Nutanix has released the Xtract for VM’s product. With this tool you will finally be able to directly move your existing vSphere infrastructure to the Nutanix Cloud platform on AHV without any 3rd party tooling or workarounds.

Previously there where several ways to move from ESXi to AHV. The first way was to use 3rd party tooling like starwind to convert the disks. The other ways where completely manual by adding existing disks to new VM’s, use the cross hypervisor DR functionality or in place ESXi > AHV conversion if both clusters where already running on Nutanix. While these are tested and well documented scenario’s, there was no easy way to just test this and it could require a large maintenance window with a lot of manual actions. Rolling back could be a pita as well so it might end up being a costly effort.

In the spring Nutanix already announced Xtract, a tool that would solve all these headaches for you. With it you can schedule the migration and it will insert the required drivers and network settings for you. This results in a migration with hardly any downtime. You can setup the sync from ESXi to AHV wel advance so it is possible to test the complete migration procedure well in advance of the final cutover.

TLDR:

Release of new Nutanix tool called Xtract for Vm’s that efficiently and safely automates the move of your vm’s from ESXi to AHV.

 

New and updated VMware flings for September 2017

Intro

No WWE quotes,clips or sounds this month. So here I am reporting from couch central that there have been three updated flings in September. One steady name in this monthly post has been the vSphere HTML5 Web client but don’t underestimate the VMware OS Optimization Tool that is been in here a couple of times already as well. A new name is the Horizon Migration Tool, while it’s been there for quite some time it doesn’t get a lot of updates but it gets them and that’s awesome.

New Flings

None, nada, nothing, you can’t expect to have a new one every month do you?

Updated Flings

The Horizon Migration Tool has been created to help companies migrate from Citrix to Horizon View.

Changelog

Version 3.0.0

  • Supports Citirx to Horizon 7.2 migration
  • Added Citrix PVS Desktop pool migration to Horizon 7.2
  • Added Citrix Dedicate MCS Desktop Pool migraiton to Horizon 7.2 as manual pool, linked-clone pool or instant clone pool
  • Fixed Bug: XenApp applications with customerized path includes spaces will migrate properly.

Like I said before the VMware OS Optimization Tool  is THE tool to use when you want (and you need to!) optimize any Golden Image. No matter if it’s build for VDI,RDS or even physical desktops this is THE go to tool for that.

Changelog

September 20, 2017

  • Supports new mode for optimization item: display-only
  • Supports more easy information retrieval. For example, installed product version, service current status

Clearly the vSphere HTML5 Web Client is getting a lot of updates. In the August version of this post the newest was 3.20 while we’re at 3.23 at the moment. I will give all updates, fixes and known issues since then.

Changelog
Fling 3.23 – Build 6682372

New Features

  • Download folder from the File Browser

Improvements

  • DRS groups can be filtered by member.
  • Replication group are shown on the VM Storage Policy portlet

Known Issues

  • If you see error in the vSphere Client (HTML5) similar to this – ‘getHostIsAssignLicenseActionAvailable’, then you can resolve this error by following below steps:
    • If vSphere Client (HTML5) Fling appliance is pointed to a vCenter Server Appliance (VCSA), then you should reregister the fling appliance by logging in to FAMI UI (or by running the config-ui CLI). Refer the instructions document to follow the steps for configuring Fling appliance for VCSA.
    • If vSphere Client (HTML5) Fling appliance is pointed to a Windows vCenter Server, then reregister by downloading latest server-configure.bat from the Download section of this website. Refer the instructions document to follow the steps for configuring Fling appliance for Windows vCenter Server.
Fling 3.22 – Build 6613965

New Features

  • The list of software packages installed on a host can be viewed (for ESXi version 6.5)
  • Edit Video Card information for a VM

Bug Fixes

  • Fixed few bugs related to snapshots

Known Issues

  • If you see error in the vSphere Client (HTML5) similar to this – ‘getHostIsAssignLicenseActionAvailable’, then you can resolve this error by following below steps:
    • If vSphere Client (HTML5) Fling appliance is pointed to a vCenter Server Appliance (VCSA), then you should reregister the fling appliance by logging in to FAMI UI (or by running the config-ui CLI). Refer the instructions document to follow the steps for configuring Fling appliance for VCSA.
    • If vSphere Client (HTML5) Fling appliance is pointed to a Windows vCenter Server, then reregister by downloading latest server-configure.bat from the Download section of this website. Refer the instructions document to follow the steps for configuring Fling appliance for Windows vCenter Server.
Fling 3.21 – Build 6555866

New Features

  • Create and edit VM customization specifications with custom network configurations
  • Edit/Clone Storage Policy Component
  • Datastore capability sets (Datastore > Configure > Capability sets)
  • Create, edit and delete Link Aggregation Groups on Distributed Switches

Improvements

  • Confirmation on logout when there is upload file task in progress
  • Quick filter is introduced in the network selection dialog at Edit VM Settings > Network Adapter > Browse. It replaces the per-column filtering.
  • Enable/disable IPv6 on ESXi hosts.
  • Shares information is now available on Resource Allocation views for clusters and resource pools.
  • ESXi hardware health: when deployed against 6.5 vCenter, timestamps for sensor readings are displayed.

Bug Fixes

  • Cluster > Monitor > vSphere HA > Heartbeat now displays the actual set of datastores used by HA (used to display only the user-configured datastores)

Known Issues

  • If you see error in the vSphere Client (HTML5) similar to this – ‘getHostIsAssignLicenseActionAvailable’, then you can resolve this error by following below steps:
    • If vSphere Client (HTML5) Fling appliance is pointed to a vCenter Server Appliance (VCSA), then you should reregister the fling appliance by logging in to FAMI UI (or by running the config-ui CLI). Refer the instructions document to follow the steps for configuring Fling appliance for VCSA.
    • If vSphere Client (HTML5) Fling appliance is pointed to a Windows vCenter Server, then reregister by downloading latest server-configure.bat from the Download section of this website. Refer the instructions document to follow the steps for configuring Fling appliance for Windows vCenter Server.

Horizon view vCheck : Pool Overview plugin

So one of the things still missing in the Horizon View vCheck was a plugin that simply gives an overview of all Pools with their status. In short what I am talking about is a translation from this view:

Although this sounds easy there where a lot of challenges for this one. First of all there are three separate pool types: Automated,Manual and RDS and all of them have subtypes like VIEW_COMPOSER,VIRTUAL_CENTER,FULL_CLONES,INSTANT_CLONE_ENGINE,UNMANAGED or RDS and not all of these subtypes are available for all pool types. This gives a lot of options that need to be separated for the pool types. Also the VIRTUAL_CENTER subtype is used for both manually added desktops that reside on a vSphere environment and for an automatic pool creating full clones. The FULL_CLONES subtype I haven’t been able to create in my lab yet.

Further outputs like true, false or any of the subtypes above weren’t clear enough for me to use as output. For this I learned a new trick in my book called switch.

switch ($source)
		{
			VIRTUAL_CENTER {$sourceoutput="vCenter Managed Desktop"}
			FULL_CLONES {$sourceoutput="Full Clones"}
			VIEW_COMPOSER {$sourceoutput="Linked Clones"}
			INSTANT_CLONE_ENGINE {$sourceoutput="Instant Clones"}
			UNMANAGED {$sourceoutput="Non-vCenter Desktops"}
			RDS {$sourceoutput="RDS Desktops"}
			{$_ -eq "VIRTUAL_CENTER" -AND $pool.type -eq "Automated"} {$sourceoutput="Full Clones"}
			{$_ -eq "VIRTUAL_CENTER" -AND $pool.type -eq "MANUAL"} {$sourceoutput="Manually Added vCenter Managed Desktops"}
			default {$sourceoutput="No Source data available"}
		}

Some documentation for the switch command can be found here but what it in short does is match the variable u use as input and sets or gives some output based on that. Also it can do a comparison as in above example so I was able to distinguish between Full Clones and Manually Added vCenter Managed Desktops. One thing to be aware of is that it will go trough the complete list. At first I had the two lines with the comparison in it at the top but that got overwritten since below it VIRTUAL_CENTER was recognized and the $sourceoutput would be based on that.

The Automated and Manual pools use a very similar set of code, the biggest difference is that one gets the data from the AutomatedDesktopData propertywhile the other gets it from the manualdesktopdata property.

	if ($pool.type -eq "Automated"){
		$Automaticassignment=$pool.AutomatedDesktopData.UserAssignment.AutomaticAssignment
		switch ($Automaticassignment)
		{
			$TRUE {$Automaticassignmentoutput="Automatic"}
			$FALSE {$Automaticassignmentoutput="Manual"}
			default {$Automaticassignmentoutput="No Assignment Status Available"}
		}
		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
			"Displayname" = $pool.base.DisplayName;
			"Description" = $pool.base.Description;
			"Status" = $poolstatusoutput;
			"Provisioning" = $ProvisioningStatusoutput;
			"Type" = $pool.type;
			"Source" = $sourceoutput;
			"User_Assignment" = $pool.AutomatedDesktopData.UserAssignment.userassignment;
			"Assignment_Type" = $Automaticassignmentoutput;
			}
		}
	elseif ($pool.type -eq "MANUAL"){
		$Automaticassignment= $pool.manualdesktopdata.UserAssignment.AutomaticAssignment
		switch ($Automaticassignment)
		{
			$TRUE {$Automaticassignmentoutput="Automatic"}
			$FALSE {$Automaticassignmentoutput="Manual"}
			default {$Automaticassignmentoutput="No Assignment Status Available"}
		}
		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
		"Displayname" = $pool.base.DisplayName;
		"Description" = $pool.base.Description;
		"Status" = $poolstatusoutput;
		"Provisioning" = $ProvisioningStatusoutput;
		"Type" = $pool.type;
		"Source" = $sourceoutput;
		"User_Assignment" = $pool.manualdesktopdata.UserAssignment.UserAssignment;
		"Assignment_Type" = $Automaticassignmentoutput;
			}
		}

The RDS block gives a totally different view though. The information had to be pulled from the farms that are the backend for the desktops.

	elseif ($pool.type -eq "RDS"){
		$source=($services1.farm.farm_get($pool.rdsdesktopdata.farm)).source
		$ProvisioningStatus=($services1.farm.farm_get($pool.rdsdesktopdata.farm)).automatedfarmdata.VirtualCenterProvisioningSettings.enableprovisioning
		switch ($source)
		{
			VIEW_COMPOSER {$sourceoutput="Linked Clones RDS Hosts"}
			INSTANT_CLONE_ENGINE {$sourceoutput="Instant Clones RDS Hosts"}
			default {$sourceoutput="Manually Added RDS Hosts"}
		}

		switch ($ProvisioningStatus)
		{
			$True {$ProvisioningStatusoutput="Enabled"}
			$False {$ProvisioningStatusoutput="Disabled"}
			default {$ProvisioningStatusoutput="N/A"}
		}

		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
		"Displayname" = $pool.base.DisplayName;
		"Description" = $pool.base.Description;
		"Status" = $poolstatusoutput;
		"Provisioning" = $ProvisioningStatusoutput;
		"Type" = ($services1.farm.farm_get($pool.rdsdesktopdata.farm)).type;
		"Source" = $sourceoutput;
		"User_Assignment" = "N/A";
		"Assignment_Type" = "N/A";
			}
		}

And when done I ended up with the following script. As usual it might get some improvements or I need to squash some bug so better check the latest version on Github.

# Start of Settings
# End of Settings

$Pooloverview=@()
foreach ($pool in $pools){
	$poolstatus=$pool.DesktopSettings.Enabled 
	$ProvisioningStatus=$pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.enableprovisioning
	$source=$pool.source
	switch ($poolstatus)
		{
			$True {$poolstatusoutput="Enabled"}
			$False {$poolstatusoutput="Disabled"}
			default {$poolstatusoutput="No Pool Status available"}
		}

	switch ($ProvisioningStatus)
		{
			$True {$ProvisioningStatusoutput="Enabled"}
			$False {$ProvisioningStatusoutput="Disabled"}
			default {$ProvisioningStatusoutput="No Pool Provisioning Status available"}
		}

	switch ($source)
		{
			VIRTUAL_CENTER {$sourceoutput="vCenter Managed Desktop"}
			FULL_CLONES {$sourceoutput="Full Clones"}
			VIEW_COMPOSER {$sourceoutput="Linked Clones"}
			INSTANT_CLONE_ENGINE {$sourceoutput="Instant Clones"}
			UNMANAGED {$sourceoutput="Non-vCenter Desktops"}
			RDS {$sourceoutput="RDS Desktops"}
			{$_ -eq "VIRTUAL_CENTER" -AND $pool.type -eq "Automated"} {$sourceoutput="Full Clones"}
			{$_ -eq "VIRTUAL_CENTER" -AND $pool.type -eq "MANUAL"} {$sourceoutput="Manually Added vCenter Managed Desktops"}
			default {$sourceoutput="No Source data available"}
		}

	if ($pool.type -eq "Automated"){
		$Automaticassignment=$pool.AutomatedDesktopData.UserAssignment.AutomaticAssignment
		switch ($Automaticassignment)
		{
			$TRUE {$Automaticassignmentoutput="Automatic"}
			$FALSE {$Automaticassignmentoutput="Manual"}
			default {$Automaticassignmentoutput="No Assignment Status Available"}
		}
		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
			"Displayname" = $pool.base.DisplayName;
			"Description" = $pool.base.Description;
			"Status" = $poolstatusoutput;
			"Provisioning" = $ProvisioningStatusoutput;
			"Type" = $pool.type;
			"Source" = $sourceoutput;
			"User_Assignment" = $pool.AutomatedDesktopData.UserAssignment.userassignment;
			"Assignment_Type" = $Automaticassignmentoutput;
			}
		}

	elseif ($pool.type -eq "MANUAL"){
		$Automaticassignment= $pool.manualdesktopdata.UserAssignment.AutomaticAssignment
		switch ($Automaticassignment)
		{
			$TRUE {$Automaticassignmentoutput="Automatic"}
			$FALSE {$Automaticassignmentoutput="Manual"}
			default {$Automaticassignmentoutput="No Assignment Status Available"}
		}
		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
		"Displayname" = $pool.base.DisplayName;
		"Description" = $pool.base.Description;
		"Status" = $poolstatusoutput;
		"Provisioning" = $ProvisioningStatusoutput;
		"Type" = $pool.type;
		"Source" = $sourceoutput;
		"User_Assignment" = $pool.manualdesktopdata.UserAssignment.UserAssignment;
		"Assignment_Type" = $Automaticassignmentoutput;
			}
		}	

	elseif ($pool.type -eq "RDS"){
		$source=($services1.farm.farm_get($pool.rdsdesktopdata.farm)).source
		$ProvisioningStatus=($services1.farm.farm_get($pool.rdsdesktopdata.farm)).automatedfarmdata.VirtualCenterProvisioningSettings.enableprovisioning
		switch ($source)
		{
			VIEW_COMPOSER {$sourceoutput="Linked Clones RDS Hosts"}
			INSTANT_CLONE_ENGINE {$sourceoutput="Instant Clones RDS Hosts"}
			default {$sourceoutput="Manually Added RDS Hosts"}
		}

		switch ($ProvisioningStatus)
		{
			$True {$ProvisioningStatusoutput="Enabled"}
			$False {$ProvisioningStatusoutput="Disabled"}
			default {$ProvisioningStatusoutput="N/A"}
		}

		$Pooloverview+=New-Object PSObject -Property @{"Name" = $pool.base.name;
		"Displayname" = $pool.base.DisplayName;
		"Description" = $pool.base.Description;
		"Status" = $poolstatusoutput;
		"Provisioning" = $ProvisioningStatusoutput;
		"Type" = ($services1.farm.farm_get($pool.rdsdesktopdata.farm)).type;
		"Source" = $sourceoutput;
		"User_Assignment" = "N/A";
		"Assignment_Type" = "N/A";
			}
		}
}

$Pooloverview | select Name,Displayname,Description,Status,Provisioning,Type,Source,User_Assignment,Assignment_Type
$Title = "Overview of all Pools"
$Header = "Overview of all Pools"
$Comments = "Gives an overview of the general status of all pools"
$Display = "Table"
$Author = "Wouter Kursten"
$PluginVersion = 0.1
$PluginCategory = "View"

And a screenshot of the result:

VMworld EU 2017 Day 3

Day three, the last one, was a short day for me this year. I had an appointment with the VMware Design studio at 8am but the gates didn’t open until 8 as well and I had to drop my suitcase first so I rescheduled it to 9.15 while talking to the guy that I would have the session with! After this I decided to go to the vmtn area to finish up my powerpoint for the vBrownbag I would be doing by noon. I kept changing and changing stuf and somehow managed to remove the one slide you need when generating output: the output itself. Also during the presentation I never got into a good flow so I wasn’t happy with the end result. After this there where some rumors about horrible queues at the airport so I scrambled to get there but in the end the line to drop off my suitcase took longer then security.

VMworld EU 2017 Day 2

Holy Guacamole (say that loud, sounds good) what a rush VMworld has been so far for me. After the keynote I was one of the guests on the vExpert daily show which is just a chat about VMworld so far,w hat you expect and any new stuff. The most fun we had was with my answer on my favorite taste of icecream: smurfs.

I did a couple of breakouts today. Both have been about Horizon, one was a good overview about the new stuf to expect from VMware and the other a real deep dive into the Blast Extreme protocol. That one helped me a lot about understanding what happens with it. Later in the afternoon I did a quick hands on lab and a couple of vBrownbag sessions. This was before getting a tour at the Mare Nostrum Supercomputer site. This is the 13th fastest in the world and it was really nice to see how this is build. An even more fun part where the old systems they used in the past over there. I will add some pictures of that in a couple of days.

The evening it was time for the Kaiser Chiefs but after a couple of songs and more beers I decided to tap out and head back to the hotel. Stepcount for the day was 16077.

VMworld EU 2017 Day 1

Finally the real event has begun, but before the gates opened I was already on my way to a 7am vbreakfast in La Vid. This is a small cafe just opposite of the Venue where VMworld is being held. The event was sponsored by my good friends of Runecast. For lots of people this was way to early to get up let alone to look alive or being awake. After this Hans and I managed to cross the road dry which was quite a feat because we’ve already had some pretty bad rain.

Since being in a huge room listening to keynotes isn’t my thing i decided to watch it from the vmtn bloggers area. Can’t say a lot of news was announced but it was very cool to see Pat controlling a virtual sddc in a virtual way using a virtual reality headset. After this it was time for me to do the first quick swag run on the solutions exchange to get at least the backpack only the first 100 customers would be receiving. Add a couple of shirts to that and I was off to the Inner Circle session and lunch. It wasn’t a slaughterhouse like last year but they where getting some good feedback gain on how the could and should VMware’s services. I think that there where about 60 customers and partners in the room with at least 20 people from VMware themselves who could answer their questions. It even lead to VMware people talking to other VMware people to collaborate on improvements. Some of these things should have happened years ago but hopefully things will keep getting improved.

Watching some vbrownbag sessions in the vmtn area I decided to skip my first real breakout session but did go to the other one I had scheduled. This was a live whiteboard session by Adam Eckerle and Emad Younis on how to design you’re sso domain and what possible pitfalls are. This was a really interesting session and I loved the fact that they used a live whiteboard (using an ipad) instead of powerpoint.

After this it was time to finish my first and only day of swag hunting this year. I ended up with some lego figures, fidget spinners, t-shirts, bottles and loads more as you can see in the picture below.

while being really really tired I just had to go to the benelux & vExpert parties so Hans and I took the metro, another metro and finally the lightrail to go to Cafe Del Mar club where both where being held. The vExpert one was really low key and without music so talking to people was really easy. The benelux one was more a real party with loud music and everything. Too bad ir was raining so we couldn’t use the outside area. We decided to head back early  to actually get some sleep. At the end of the day I ended up with 25000 steps of which 5000 where from walking back from the Hackathon during the night.

 

VMworld EU 2017 Day -1

Oooooh what a rush! is a good way to describe monday aka day 1 of VMworld 2017. I started out by waking up early after a night of bad sleep and not feeling well the night before BUT i really felt refreshed and good so I was totally ready to head out for my first ever vcap deploy exam (vcap6-dtm deploy). I failed it with 228 where 300 is required but afterwards I did feel good about it any now have the general idea on how these exams actually go. As others have said before time is a big issue but next time I will be even more prepared for that so I am confident I am going to ace it.

In the afternoon I did one of three scheduled UX feedback sessions for the VMware Design studio. These sessions are not on the regular schedule but you had to know people that knew people who could send out invites, something the vExpert slack channel managed to do! In these sessions they show you mockups of possible User interfaces and you are asked to think out loud about what you would expect buttons to do or where you could find something. I already did a webex session for this in the spring for the html5 client and they really appreciate whatever you say.

The end at the venue for me was a workshop on Cloud foundation where I seemed to be the only one having major performance issues. This made the experience not that good for me but I still got a good general impression of the product.

So the real rush was the Hackathon in the evening. The event was organised but VMware Code was something I was really looking forward to. I ended up with a Dutch team with Hans KraaijeveldIvan de Mes, Niels Geursen Pascal van de Bor and myself. Our target for the evening was having fun, learning new stuff, drink beers and to add some new plugins to the Horizon View vCheck.

One of the scoring points was the amount of empty beer bottles on your table. We drank quite a few of them but they kept cleaning them out so we ended up with this table at the end. That might have cost us some points! I think for the complete team we actually managed all of our goals but because we had major issues getting an environment up and running we ended up creating only two extra plugins and fixed some issues in other ones. We even did two Github pull requests by Pascal and Niels for which Niels actually had to create his account first.

In the end we had a 90 second time slot to present about what we archived. We didn’t do any fancy powerpoint crap for this and just showed the result from the plugins we added to the check and telling a bit about it. Sadly we didn’t get first, second or third place but I did win a judges spot price in the form of an Amazon Echo Dot. That might have been because me wearing my UX design studio shirt and one of the judges being on that VMware team OR it might have been our bribes in the form of stroopwafels. This event I think might be the very best thing I do this VMworld and it hadn’t even really started!

 

VMworld EU 2017 Day -2

So while VMworld EU starts on Tuesday I already had a full day yesterday. For the Partner Exchange bootcamp day I picked something I had heard about but couldn’t find a lot about: EUC Livefire bootcamp. Livefire is a special group within VMware that helps partners in having success. In the past they had bootcamps for they SDDC and NSX but now they are also building two 4 or 5 day courses for EUC. One design and one deploy training. For me it was a full day learning about the components of Wokspace one because that’s the solution this bootcamp is about. There where some architectural principles in there besides deeper diving into the technical part. It was clear that they are still building the real livefire course but it really looks promising.

In the evening I had a ticket to go to the vRockstar party but my stomach decided it was having none of that so I decided to go to bed early but wasn’t able to catch any sleep before 1 am 🙁