Installing ESXi with Razor

This is part #6 of the Razor series. In the last post we looked at what lies within the installer. In this post we will go more into detail of how exactly the installation process works. Fort his post we will run through the deployment of an ESXi host.

1. Installing Razor - Yes the New Version..
2. Razor - DHCP and TFTP
3. Installing the Razor client and creating a repository
4. Installers, Policies and Tags
5. Razor - What Lies Within the installer?
6. Installing ESXi with Razor

Since there has been some time from the last part of this series I will recap what you should have in your environment.

We have a repository named ESXi_5_1 for our ESXi installation.


We have a policy named ESXi51 defined that will deploy ESXi to the node.


And we have a tag (which is what the policy above uses) named Test_tag used to classify the node.
(this is the minimum that will allow us to install ESXi - 2vCPU's and 4GB RAM)


We then power on a node. It boots up, receives an IP from the Razor server and then continues to boot to the microkernel.

node boot

In the meantime on our Razor server we see that a new node "node3" has been recognized.

razor nodes

razor nodes

Looking at the details for that node - we will initially only see the following information:

  • mac address
  • uuid
  • log location

razor nodes node3

razor node details

Looking at the log for the node:

razor nodes node3 log

razor node log

When the node is matched against a policy - it will reboot. This can be seen in two places.

1. Looking at the node information again - here you will there is far more information about the hardware. This is because the microkernel has now reported back to Razor with all the information.

razor nodes node3

after report from microkernel

You can see that the node was matched against a policy.

policy bind

The tag was also correctly recognized.

tag match

2. Looking at the log you will see additional entries. The 3rd entry shows that the node is now bound to the ESXi_5_1 policy. The 4th entry reports that the node has now rebooted - as a result of the policy.

razor nodes node3 log

node log

Back to the node. We now see the node connecting to the ESXi repo

boot to ESXi installer

Looking at the node log again on the Razor server - we will see the process of the installer.

log update

And from the node's perspective.


There are two things I would like to point out here - and the information here is current only for the time of this article - because the product is constantly evolving - things could change.

Taking another look at the nodes logs we can see the following:

razor nodes node3 log

another look

The first entry gives you the URL of the kickstart file that will be used. The contents of that file will show that the password is already populated (encrypted of course) and that there is a API call to report that the kickstart is finished. This of course can be accessed through the API with a web browser .

kickstart file from the API

There are no network settings and no hostname settings defined in the kickstart. This is not supported/functioning in the current release.

The second thing you might notice in the log is that the second entry will already report "stage_done" almost immediately after the ks.cfg file is retrieved. In reality the process is far from being completed - it has only really started - because a good part of the ESXi installation is done in the %firstboot section.

The reason that this is done is because - the node needs to boot from its local disk to complete the installation (%firstboot), if not it will go into an infinite loop and never complete the next phase.

So even if you log says that the installation has finished - it will still continue through the installation process.

As a side note - there is a problem using this method when installing ESXi 5.0, wget on that busybox version does not know how to exit properly when retrieving an empty page (more info can be found here).

Here - in theory - you could pass the work over to an external broker - but currently there is no working example for ESXi.

Install Complete

This is where Razor's job finishes with the node - but there are several points that are missing - two of them for me were critical.

  1. This method does not support static IP addresses. I do not know of many people who deploy their hosts with dynamic IP's. I certainly do not.
  2. There is no support for configuring the hostname of the node - which means this needs to be taken care of in another way.

    I will say that I have found a way to circumvent both of these problems - but that will come in an additional post.

    DHCP and no hostname

I hope you have managed to stay with me until now - and managed to digest most of this. It is a lengthy process but I have tried to be as detailed as possible to explain the process better.

The next part will provide a run through of installing a Linux node and passing that over to Puppet for configuration.


0-Day Deployment - My Presentation at the #UKVMUG

A few weeks ago - I gave a session about how to deploy a full environment starting from a bare rack to a fully functioning environment with deployed applications.

Firstly about the VMUG event. I was fortunate enough to be invited by the VMUG organization to present at this years VMUG. I would like to extend my thanks to the VMUG organization for their hospitality and the effort they made to help feel at home (including kosher food)

There were approximately 400-500 people at the Event, the location was very nice and the the organization of the event was very well done.

The lineup of speakers, sponsors and vendors was very impressive, the local VMUG leaders and VMUG organization did an outstanding job.

Community was a big part of the event, just the way it should be.

I got to chat a bit with Joe Baguley, the VMware CTO, EMEA - about competition, "co-opetition" and what will happen in the future. We can never be prophets, but even if only half of what we talked about does actually come to be, then amazing things will happen.

I highly enjoyed the keynotes, both from Joe Baguley, and Greg Ferro - who surprised me with the amount of information he knows about ducks, and agriculture. They are both outstanding speakers.

Back to the session. Firstly I would like to thank the brave souls that attended my session. There were not many of you, because the slot I got was the same as three other VMware speaker sessions, one by Massimo Referre, the other by Cormac Hogan, and the last was a panel with Mike Laverick and Joe Baguley.

It not uncommon that one has to stand up an environment - of 8-50 hosts and 50-250 virtual machines. But is not quite common that you have to do this - when you have no existing infrastructure at all. This was the case I was presenting. Standing an infrastructure from complete zero to a fully deployed virtual VMware environment - in the most automated fashion possible.

There are a lot considerations that you have to take into account, for example - Autodeploy is more or less out of the question - seeing that you have no vCenter environment up and running yet.

How do you get vCenter up? How to deploy VM's? How do I configured the underlying storage array, the network switches, so many questions and dependencies.

The process is not ideal, not fully automated, but it will become so - not too far in the future.

In the meantime - here is the slide deck from my presentation.

Hope to see you all at another VMUG event soon!


OpenStack Israel 2013 #OpenStackIL

This week at the OpenStack Israel conference there was a impressive turnout of approximately 400 people. It was a vibrant day, lots of interesting people from all over the world, and great sessions. I even got to have lunch with Scott Herold!

Here are some of the moments from day

I delivered a session "OpenStack for VMware Admins" going over the differences, similarities and some gotchas from those who are used to VMware environments, and are looking at OpenStack

And we're back with three stellar tracks @maishsk from @cisco on #openstack for #vmware admins #openstackil pic.twitter.com/Uv5cfDiK6V

Here are pictures from the day.

Created with flickr slideshow.

I think that the Israeli team did a great job, in attracting the talent to come to the conference. I was happy that I could present and am looking forward to seeing the recordings when they come online.

My session is available online and embedded below.