VCAP-DCA

Progress through IT exams and certifications can sometimes be a challenging time. I feel a lot of the time they do not reflect the real world skills required to actually work in that area. For example a multiple choice question exam does not always suit everyone and can at times be a difficult thing to study for, what you really need is something that test day to day skills.

The VMware VCAP exams definitely do that. The DCA exam was like nothing I had ever experienced before. I remember looking through the blue print online and thinking it will be incredibly challenging. So that is where you should start here:

http://mylearn.vmware.com/mgrReg/plan.cfm?plan=30483&ui=www_cert

To prepare for the exam I did the following:

1) Attended the Optimize & Scale course. This was a really detailed course and challenged my knowledge in vSphere 5 (at this point I was still predominantly working with vSphere 4.1).

2) I had access to a high end lab environment and I also built out a smaller scale environment at home, so I could test settings, break things and see the repercussions, and most importantly remind myself of all the command line activities.

3) I reviewed the vBrownbag podcasts, these are an excellent source of information. Access here:

http://professionalvmware.com/brownbags/

4) I started working with vSphere 5 more and more in my day to day role (we were implementing an enterprise scale VDI platform on vSphere 5 at the time).

5) I read as many PDF’s and kb articles I could find time to read.

6) I read as many blogs as I could around the exam itself, specifically:

(Just to name 3, there is a lot of material out there)

For those of you who have completed the DCA4 exam, there is of course one fundamental difference, no ESX classic.

The NDA around the exam prevents me from being specific about the content. But I wanted to reiterate what I have read and experienced. Read the blue print, understand everything, not everything will be tested though.

Book the exam if you have plenty of hands on experience with vSphere 5 and are comfortable with the command line, both shell and ideally powercli.

The exam itself is a bit of a monster, at 4 hours long. Depending on where you take it will depend on what you can take into the exam. With the DCA exam it is important to work through everything in order as it builds on work previously done and trying to go back in the exam later can be painful, due to the equipment lag.

The most important things are:

  1. When booking work out the best time of day for you to sit a 4 hour long exam, I tend to do better in the morning so I went with 9am.
  2. Get a good nights sleep before the exam.
  3. Eat something before you go in and take a snack and water in with you if you can. Because if you are like me if you need to eat something you lose focus.
  4. Stay calm and work through the problems, remembering that there is not specifically one way of doing things, you use your own preferred method.

I will leave you with one last thing. If the exam lab does not look right (ie you have a host not responding for example, this probably is not part of the exam and you have a problem). One of my friends sat the DCA4 and had a host in a not responding state, he spent 45 minutes trying to troubleshoot it, before doing a host reboot (something you are told not to do), he passed but could have done without the stress!

Have fun and good luck.

Advertisements

vExpert 2013

I realised on the weekend that I had not talked about one of the most exciting things that has happened to me in the last few months (besides a fantastic new role!), being awarded the vExpert 2013 status.

Over the last few years I have been lucky enough to be working on a number of projects, all Enterprise class deployments based on VMware. A brief list is included below:

  • Large Server platform based on vSphere 4.1 with HP c7000 Blade chassis and EMC VMax
  • Large VDI deployment on vBlock 700MX with Citrix Xendesktop and vSphere 5.0
  • Large Server platform based on vBlock 700MX with vSphere 5.0 and VPLEX.
  • Global Deployment of vSphere platforms across 36 countries based on vSphere 5.0 and NetApp.

Please see the following link to all the fantastic people who have been added or returned to the list this year:

http://communities.vmware.com/vexpert.jspa

As I have outlined this is a fantastic program. I only hope that I can make VMworld this year, but at this stage it is looking unlikely!

Further Adventures in Scripting

I wanted to explore some future areas where that I would like to write about:

1) Using Sharepoint as a VM deployment configuration source for automated VM deployment.

2) Using Sharepoint as an ESXi host deployment configuration source automated ESXi configuration.

3) Health checking in the vSphere environment, I think we can all agree that vCheck( thank you to the incredibly talented Alan Renouf) is the champion resource here and this can be found at:

http://www.virtu-al.net/vcheck-pluginsheaders/vcheck/

This is useful from SMB to large Enterprise scale environments.

4) My experiences with the VCAP-DCA and VCAP-DCD.

5) My work in progress experience to attempt the VCDX.

6) My adventures and experiences in the world of cloud computing.

Its funny to write about the things that you want to write about and I hope they can eventuate soon, although with a new job and two small children, my free hours are few and far between.

Improving the Speed of a script using Get-View

Working in an enterprise environment with a large number of virtual centers presents a number of problems. Where is the VM hosted?

This challenge led to some thinking and as we had previously delivered a utility scripting server, it seemed like a good idea to enable IIS, and host some freely available searchable web pages.

I then built a central location to host the output (a simple IIS server will suffice), then we created a list of virtual centers that needed to be contacted and put this in a text file, then it was simply a question cycling through each VC and appending the information to the end of the HTML file.

  • Each virtual center was then queried with the following script (with help from the VMware communities).
## for environments older that v4.0 (older API)
Get-View -ViewType ClusterComputeResource -Property Name | %{
    ## store this cluster in a variable for later use
    $viewThisCluster = $_
    Get-View -ViewType HostSystem -SearchRoot $viewThisCluster.MoRef -Property Name | %{
        ## store this host in a variable for later use
        $viewThisHost = $_
        ## get the .Net View object for all VMs (not templates) and return a bit of info for each; add info to the Report array
        Get-View -ViewType VirtualMachine -SearchRoot $viewThisHost.MoRef -Property Name, Guest.HostName, Config.Hardware.NumCPU, Config.Hardware.MemoryMB, Config.Hardware.Device, Guest.IPAddress, Runtime.PowerState, Config.DatastoreUrl -Filter @{"Config.Template" = "False"} | %{
            $Report += Select -InputObject $_ Name,
                @{N="DNS";E={$_.Guest.Hostname}},
                @{N="NumCPU"; E={$_.Config.Hardware.NumCPU}},
                @{N="MemoryMB"; E={$_.Config.Hardware.MemoryMB}},
                @{N="DiskGB";E={[Math]::Round((($_.Config.Hardware.Device | ?{$_ -is [VMware.Vim.VirtualDisk]} | Measure-Object -Property CapacityInKB -Sum).Sum / 1mb),2)}},
                @{N="IP Address";E={@($_.Guest.IPAddress)[0]}},
                @{N="State";E={$_.Runtime.PowerState}},
                @{N="VM VC";E={$VISRV}},
                @{N="Cluster";E={$viewThisCluster.Name}},
                @{N="ESX Host";E={$viewThisHost.Name}},
                @{N="Datastore";E={@($_.Config.DatastoreUrl | %{$_.Name})}},
                @{N="VM URL";E={"<a href=https://$VISRV/ui/vmDirect.do?view=" + ($URLVM = ($SdkUrlB64 = [System.Convert]::ToBase64String(([System.Text.Encoding]::ASCII.GetBytes("wsUrl=http://localhost/sdk&vmId=VirtualMachine|" + $_.MoRef.Value + "&ui=33")))) + "_") + ">$($_.Name)</a>"}}
        } ## end foreach-object
    } ## end Get-View for hosts
} ## end Get-View for Clusters
  • For newer environments (vSphere 4+) we used:

$Report = @()

Foreach ($VISRV in $VISRVs) {
if ($VISRV.contains($ProdDom))
{Connect-VIServer -Server $VISRV -user $UserProd -pass $PassProd}
else
{Connect-VIServer -Server $VISRV -user $UserLabs -pass $PassLabs}

Get-View -ViewType ClusterComputeResource -Property Name | %{
## store this cluster in a variable for later use
$viewThisCluster = $_
Get-View -ViewType HostSystem -SearchRoot $viewThisCluster.MoRef -Property Name | %{
## store this host in a variable for later use
$viewThisHost = $_
## get the .Net View object for all VMs (not templates) and return a bit of info for each; add info to the Report array
Get-View -ViewType VirtualMachine -SearchRoot $viewThisHost.MoRef -Property Name, Guest.HostName, Config.Hardware.NumCPU, Config.Hardware.MemoryMB, Summary.Storage.Committed, Guest.IPAddress, Runtime.PowerState, Config.DatastoreUrl -Filter @{“Config.Template” = “False”} | %{
$Report += Select -InputObject $_ Name,
@{N=”DNS”;E={$_.Guest.Hostname}},
@{N=”NumCPU”; E={$_.Config.Hardware.NumCPU}},
@{N=”MemoryMB”; E={$_.Config.Hardware.MemoryMB}},
@{N=”DiskGB”;E={[Math]::Round(($_.Summary.Storage.Committed / 1GB),2)}},
@{N=”IP Address”;E={$_.Guest.IPAddress[0]}},
@{N=”State”;E={$_.Runtime.PowerState}},
@{N=”VM VC”;E={$VISRV}},
@{N=”Cluster”;E={$viewThisCluster.Name}},
@{N=”ESX Host”;E={$viewThisHost.Name}},
@{N=”Datastore”;E={@($_.Config.DatastoreUrl | %{$_.Name})}},
@{N=”VM URL”;E={“<a href=https://$VISRV/ui/vmDirect.do?view=” + ($URLVM = ($SdkUrlB64 = [System.Convert]::ToBase64String(([System.Text.Encoding]::ASCII.GetBytes(“wsUrl=http://localhost/sdk&vmId=VirtualMachine|” + $_.MoRef.Value + “&ui=33”)))) + “_”) + “>$($_.Name)</a>”}}
} ## end foreach-object
} ## end Get-View for hosts
} ## end Get-View for Clusters

Disconnect-VIServer -Server $VISRV -Confirm:$false
}

($Report  | Convertto-Html -head $head -body $body -title $title -PostContent $postcont) -replace ‘&lt;’, “<” -replace ‘&gt;’, “>” -replace ‘<table>’, $tableout  | Out-File “$fileloc\$file”)

Now the code will return a list of VMs, there associated VC, a console link to the VM, and other quick reference data in a simple HTML format.

Welcome!

Hi all,

This is my first delve into blogging. I hope to at least provide a small piece of interesting reading once in a while!

Thanks to anyone in advance who reads this.