VMworld 2015

All booked up for another VMworld in San Francisco this year and really looking forward to it.  The first conference where I’m paying for myself, representing myself and the objectives of being there are purely for personal interest and personal business benefit rather than that of a business that didn’t really see a single benefit in what I was delivering with VMware.  I’ll be meeting up with ex-colleagues from ‘that’ business, sharing the same hotel and return flight, so it’ll be a good week.  I’m hoping to use Virgin Flight Club points to upgrade my outgoing flight to Upper Class!  As a regular now to these US VMworlds (6th time this year) I was still amazed to see a lot of sessions full within a few hours of the content catalog going live, but as a ‘veteran’ am used to these fully booked sessions not being full on the day so hanging around outside the room is worth it if there are no other sessions of value at that same time!

In honesty, there wasn’t much that really caught my eye on the schedule outside of the already full sessions sadly, but I did make sure I was on the PowerCLI sessions as they are always offering valuable snippets of information and because I’m a recent follower of the PowerCLI cult.  With a keen interest in Horizon, Mirage and FLEX, I’ve tried to get on some of these sessions where schedules permit, but as usual, there are often situations where suitable sessions overlap and are not available at other times.  I’ll be keeping an eye to see if any of the wait lists free me a spot or if the full sessions are duplicated at other times.

I notice the general sessions have altered again this year with timings, or at least one has, and the third session doesn’t overlap with the general sessions this time.  I always look forward to these sessions and what might be announced, but the last two years have not been quite as exciting as I had anticipated.  Commonly we see more re-branding of products/suites that we’ve just gotten used to whilst big products updates are announced outside of the conference.  I guess for some what is announced is great news and it largely depends on how you use the products and in what environments.

At least this year I won’t feel obliged to spend every available minute at the conference because I’m on somebody else’s budget, whilst accused of being on a jolly by jealous colleagues back in the UK!  I’m hoping to spend a bit more time in the labs as hands-on will be vital for a technical specialist contractor.  Ahhhh, life has been so much more fulfilling since the end of last year with a better work/life balance and far better working environments, despite the reduction in technology exposure.  But, I work for myself now and have the opportunity to switch environments as I see fit, so my VMworld schedule has tried to capture a broad range of tracks to keep me abreast of as much VMware technology as possible.

I’m Back!!!

Things have been quiet here for a few weeks now but that doesn’t mean to say nothing has been happening!  I’ve been amending my PowerShell scripts as I use them, spot errors, oversights or modify to add new capabilities and would like to post the updated stuff at some point.  I’ve extended it to cover Linux deployment/customization.

One other activity I’ve been spending some time with is building a VMware Horizon Mirage & FLEX environment in my lab.  I had some trouble getting certificate services working properly but I’ve now got everything in place for an internal deployment/management of Mirage supported FLEX delivered Windows 8.1 VM’s.  I’ve deployed a Mirage Gateway Server but not done anything about getting it working as I’m now in the process of switching ISP’s to get hold of a static IP address to improve remote access to my lab.  This is coupled with an imminent office relocation in my house where it moves downstairs and will be next to the garage where my lab server/switch will be homed (lovely and cool in there).  I’m going to be running in some structured cabling to support my full network needs which is hampering my lab development to some extent.

Once complete, I’ll be able to properly segment my network and get the DMZ, vMotion, StorageLAN, LabLAN, HomeLAN networks I need to have things nicely set up.  I’ll also get some desk-space back, a quieter office and a slightly cooler one (temperature that is, not the slang-term for an awesome room!).

New Lab Setup

Well, I’ve had the Qnap TS-670 for just about a week now and it has certainly improved things.  I had to rebuild my nest ESXi hosts for some reason because they weren’t able to provision 2012R2 servers, even after starting with a fresh vCenter but that didn’t take long.  I’ve now got the extra NIC card in the TS-670 (4 NICs total) with 1 for mgmt, 2 for iSCSI and one for NAS storage access.  I’ve beefed up the DL380G6 server by doubling the RAM to 64Gb and adding a quad 1Gb NIC card to give 8 NICs overall.  This is now permitting an iSCSI multi-pathing set-up and additional networks to really start playing with things, including hands-on with Cisco IOS!  The aim, to have the following networks routed to the primary LAN where the ADSL router sits:

  • Router LAN
  • Home device LAN
  • Lab LAN
  • iSCSI LAN (not routed)
  • IPStorage LAN (not routed)
  • vMotion LAN (not routed)

I’ve got some network cabling to install at some point because I’m not able to properly set-up IP routing on the Cisco and am moving my study/office/junk room! elsewhere in the house.  I’ll be running a small number of Cat-6 cables from wall sockets to an RJ-45 patch panel and then into the switch.

Since getting the new-lab in place, I’ve been really working on the PowerShell scripts I’ve blogged about previously as the new lab really speeds t hings up, and will be posting another blog on that after this one.

PowerShell Help Needed

I’ve reached a stumbling point in my PowerShell development for automating ESXi/vCenter customisation.  In a bid to leave out any hard-coded localised details from the scripts, by using CSV files, I’m stuck producing a list of clusters for the admin running the script to pick from.  The cluster details are in a CSV and I’ve used a foreach loop to pull out the names of the clusters, presenting them to the admin one by one in a numbered list.  Prior to this, I hard-coded the list and used a switch process to set a variable for the selected cluster.  I’m not sure how I can do this having used a foreach loop to pull CSV content, or if there is a better solution completely!

Could really use some help please!

More PowerCLI Work

Further to my previous post, I’ve been expanding on my PowerCLI scripts to form a more comprehensive automated deployment/configuration of ESXi, vCenter and virtual machines (although I’ve not reached the VM bit yet).  The vCenter and VM deployment/configuration phases will utilise CSV files to hold the relevant information and keep such sensitive details away from the script, which allows the script to be more visible whilst the CSV’s are kept secure.  By having a small set of CSV’s that contain detailed settings I hope to keep management and future changes simple as well as well as provide a controlled means of updating the live environment with changes into those CSV’s without the need to manually connect and apply.  I’m now thinking of taking out any hardening or general configuration actions and putting them into a CSV where they are called and applied, so again, only the CSV needs updating whilst the script remains simple and will perform the same function with whatever data is called.  I don’t have 3rd party deployment/automation tool at my disposal so presently, Excel/esxcli/PowerCLI/Kickstart is all I have available.

I’ve split the phases into separate scripts and used a simple menu script to call the relevant one as chosen by the admin.  The vCenter customisation script manages datacenter creation (if needed), cluster creation or reset to custom defaults, folder creation and vApp/Resource Pool creation/reset.  It will apply in-depth settings for objects such as clusters and vApps once they’ve been agreed.  There are some hardening requirements here also but these will be added later once scripted and probably already deployed into what will be a production vCenter.  The ESXi script I’ve already mentioned in the previous post, whilst the VM deployment script will deploy VM’s using a selection of templates and customisation profiles, into the intended cluster (of 3), custom folders/RP’s/vApps, add disks according to the requirements of the intended guest role (and provision as thin or TEZ) into the appropriate datastore, set CPU/RAM, set IP/Mask/GW/DNS and configure the required number of NICs into the appropriate portgroups.  The 4th script will just contain any PowerCLI cmdlets or ESX CLI commands to configure any VM’s already deployed as necessary, such as templates, which will then be used to build other VM’s and in theory, propagate the settings!

Scripts attached and I’d love PowerCLI guru’s to review and offer advice on how I could streamline or improve the scripts.  I’m a rookie to this so have probably written lines of code to achieve something a wizard could do in one line!ps-customesxi ps-menu ps-vcenter (renamed to .txt extension since WordPress wouldn’t let me attach .ps1 and I can’t be arsed to sort that out!).

vSphere ESXi Unattended Install & Follow-Up PowerCLI Script

This week I’ve been working on a means to automate the installation of ESXi with as much of the configuration completed as possible.  By this I mean joining the host to an AD for local auth, joining the host to a vCenter environment, building out local vSwitches and implementing as much of the hardening guide as possible.  This is the first time I’ve ever used the unattended install kickstart process and it has been slow but pleasing progress.  It would appear that almost all my requirements are possible, but may not be so easy through the kickstart process which is why I’ve also utilised the PowerCLI capabilities of vSphere to capture the impossible/difficult bits as a post deployment script.  All scripts are in early development and continue to progress as other parts of the infrastructure appear and allow additional functions to be possible.

My objective here is to ensure that all hosts are built identically by removing as much user intervention as possible and quick to deploy with little need to work through complex processes.  Yes, you can right a build guide with all the information and steps in minute detail, but steps can be missed for any number of reasons which poses a risk that each host could end up different, or missing a vital security configuration.  A mis-configured script could achieve the same result, but the speed of installation is important to me as it is possible other IT support staff will take over the infrastructure once deployment is complete and I want a good, clean, simple process for them to use should they need to deploy more hosts (which is likely too).

Installing from a USB key onto a server that had a local RAID1 array and USB Flash card, the first challenge was to get ESXi to install to the correct USB device, not onto the HDD and certainly not onto the install media USB (which it did the first time of trying!).  After some investigation into the kickstart script options I figured out how to achieve this objective but also how to prepare the local HDD for a VMFS datastore at the same time.  This was great because I wanted to rename the local datastore through an initial installation process anyway, so sorting out how to build it was taking me in the right direction.

Next came the network info for the management port, and I did have trouble here trying to use the %pre option I’ve seen used in so many online locations….it just complain about “/.pre” and falling over so I left that challenge for later opting for putting the IP details onto the command line.  I’m hoping to use a combination of DHCP/DNS and scripting to grab the correct network details from the network and apply that.  I also configured a number of vSwitch which were needed for the primary objective of this activity and set security etc.   With a few additional %firstboot configuration additions, the install was working nicely but I wanted more!

I don’t yet have a Windows AD, DHCP or DNS so we’re in the early phase of this project task but I’ve seen that it is possible to get a host to join an AD and also a vCenter from the kickstart process.  I’ve also seen people creating a local user account with shell access and setting perms but I decided to leave this out of this initial script for now.

With the ESXi host built and configured with it’s local datastore renamed, vSwitch configured and some hardening achieved, I moved to working on a PowerCLI script to complete some other actions needed for a clean and simple installation.  One big issue I had that I couldn’t find a way of doing during the unattended install, was to rename the default PortGroup used by the Management VMkernel.  I like to rename all PortGroups, which is easily done post-install via the VIClient, but this particular one was trouble for me.  So, one reason for PowerCLI because it is easy to do there!  Another cool task achieved at this stage was adding the host to vCenter and into the right cluster.  There will be several clusters operational so any automated (or semi-automated) process needs to be able to select the correct one without modifying code to do so.  PowerCLI did this with ease too.  While I was adding things to hosts and vCenters I thought why not add the local user and assign it to a role, propagating it!  Again, easy to do………..although I did have problems until I realised I’d spelt propagate wrong!!!

Lots more things to do with these scripts and more scripts to appear as I try to automate, ease the administration of the solution during deployment.  What I’d love to be able to do is automate the activation of a PowerCLI script from the kickstart install so it can be processed without user intervention until 100% completed.  I’d also like to figure out how to get my boot USB to auto-select the ks.cfg file without me have to SHIFT+O all the time.  I’ve tried adding runweasel=ks=usb:/ks.cfg to the BOOT.CFG kernelopts!

Kickstart cfg and PowerShell scripts attached, ps-il3-safetopost ks-il3-safetopost

Further Lab Enhancements

After the initial post regarding my home lab, not much has changed and to be honest, I’ve not done much with it.  Having passed the VCP I’m deciding whether to keep the vSphere 5.5 setup and work towards VCAP or rebuild with vSphere 6.0!  My current contract is based around 5.5 so that’s a tick in the ‘keep it’ box!  At present, the lab is using a single network alongside my general home devices, so it’s not a true reflection of a live environment as I’ve not got VLAN’s and don’t have any devices capable of internal IP routing without setting up another VM/Physical system to handle that.

Needing to learn Cisco’s IOS since that is the most common network vendor used all contracts I’ve applied/interviewed/accepted, I’ve decided to splash some business cash and procure a layer 3 Cisco switch to help further develop my lab and skills……two birds with one stone so to speak.  I wanted 1Gb capable connectivity on all ports (I’m not just learning for CCNA!), and therefore had to spend a bit more to get it.  Ebay had a few 24x 1Gb port switches and I opted for a 3750G-24TS-S which also comes with 4x SFP ports should I ever need to experiment with that!  It was actually cheaper that the base 3750G-24 switches though so I’m pleased with my purchase.  In all, £275, but I do need to get hold of a Cisco serial cable so perhaps my new client will have one spare!

With this new switch, arriving tomorrow, I’ll be placing it directly behind the BT home-hub and running the entire network from it with IP routing enabled.  I’ll VLAN off the general network (using the existing IP range), storage, vSphere Mgmt, vMotion and Lab networks.  It will be especially useful since I’m currently involved in low-level/system-level design with vSphere and Cisco switch/firewalls.

VCAP-DCA, to do or not to do!

Having now passed my VCP5-DCV I am pondering where to go next!  I’d like to achieve VCP6-DT but without hands-on access at the moment, I might have to delay that exam until 2016 to allow study time/lab development.  In the meantime, I’ve been looking into the VCAP-DCA which looks an exciting exam to take because it is pure lab work.  With access to online documentation during the exam, and experience/exposure of setting up modestly complex vSphere environments I expect this exam to be passable with continued hands-on.  I’m not saying it’s easy, but compared to the preceding VCP, having documentation available and an understanding of where/what to look for I would say there is no further need to store huge quantities of otherwise irrelevant data in ‘high performance memory’!  The available documents should do well to jog the memory and pull such info from ‘offline storage’!

If anybody has experience of the exam and would care to comment please do.


My ancient VMware VCP3 certification expires on Tuesday 10 March this year (as I found out last summer to much dismay) so I have been desperately working to study the VCP550 content to avoid expensive training courses to regain certification after that expiry date!  I first attempt within weeks of realising the expiry failed, VMworld Aug 14, so I bought a second book to alter the content material in the hope it would provide a different perspective of the same information.  The second exam attempt, Jan 15, also failed but strangely with exactly the same score as previous, after a problem getting me logged in/set-up at the exam centre requiring VMware’s assistance!  Demoralised by continuing failure I pondered the options of resitting or abandoning the VCP for a while!  However, not one to give up lightly I opted to buy a third book and try again right before the deadline day.  Today was that final attempt and I have returned home from sitting the exam and am chuffed to bits in saying I finally passed 🙂

I’m now hoping VMware release a VCP6 delta exam for VCP550’s to migrate, because that’s open book online 🙂

Books used (in order):

I must say that the last book does go into a lot of detail about most topics but lacks some information on a few others, but combined with at least one of the others I’d say should really help in passing the exam.  I’ll be buying the latest Mastery book covering vSphere 6 now, and learning that in depth from very early on.

VMworld 2015

With just over two months before VMworld registration opens for the US conference, I’m hoping to and looking forward to attending for the 6 year in succession simply because I love getting out to the states.  Having been attending as an employee in a perm role for the previous five, this sixth attendance will be as an independent contractor which sadly means I’ll have to pay for it!  I’m contemplating attending the European conference as well, as this will be more of a marketing event with UK parties in attendance.

Colleagues from my previous permanent role will be attending both and I’m hoping to meet up with the US attending guys, probably staying in the same hotel, just like old times 🙂

With vSphere 6 already announced and available soon, I’m looking forward to finding out what announcements will be made this year, although I suspect it will be heavily focused around VMware’s cloud offerings as the evolve.