Home > Blogs > VMware Hands-On Lab (HOL) Blog

HOL Three-Tier Application, Part 2 – DB server

This is the second post in the series about building a three-tier application for demonstration, lab, and education purposes. At this point, you have downloaded Photon OS and prepared the base template according to the specifications. If not, please go to the first post in the series to prepare your environment.

I am trying to release these posts on Wednesdays, but yesterday was a holiday in the US, so I had some time to get this one out the door early.

For the build, I will work bottom-up so it is possible to test the components as we go along and address any issues before we get to the end and have to worry about the whole stack.

The Database (db-01a)

There are many choices that could have been made here, but I wanted to minimize the steps required and use the tools I had available by default, wherever possible. So, the database server for this application uses a SQLite database. This may seem like an odd choice since it has no native remote access. But, the sqlite3 is already present on the Photon image. So is Python. Don’t expect elegance here since I do not normally use Python. I hacked together a simple CGI script to query the database and send the results over HTTP. It is not fancy, but it is small and does just enough for my needs.

Fear not! SQLite is simple enough that you don’t need any kind of DBA skills to use it. The minimal SQL that I know was enough to get this done.

The red box in the following diagram highlights the component that we are building in this post.

Application - Database

Let’s get started!

Deploy a copy of the base template

Deploy a copy of the base Photon template you created by following the steps in my first post. Name it something that makes sense to you. I called mine db-01a.


Power it up and log in as the root user.

Set the IP address

You need to configure the IP address for this machine. Here are the contents of my /etc/systemd/network/10-static-eth0.network file.



Set the name

Update the name in the /etc/hosts and /etc/hostname files with the proper name for this VM. Replace every occurrence of the name you used in the template with the name of this VM. Note that the hostname within the prompt string will change when you log out.

Restart the network to apply the settings

# systemctl restart systemd-networkd

Once you have finished with these steps, make sure you can access the network before moving on. You need Internet access in order to proceed.

SSH in

At this point, I strongly suggest you SSH to the machine so that you can paste text. Doing all of the work from the console is possible, but pasting is easier. So, fire up puTTY or whatever else you use as your preferred SSH client.

Install the web server

I am using Apache here since I can get the base install to do what I need in pretty short order. Unfortunately, it is not already present, so we need to install it. Fortunately, it only takes a few minutes:

# tdnf install httpd


Make a directory to store the database file and make apache the owner

So you don’t absolutely need to do this, but I sometimes like to separate my data from the executables.

# mkdir /etc/httpd/db
# chown apache:apache /etc/httpd/db

Start the web server and set it to startup when the VM boots

# systemctl start httpd
# systemctl enable httpd

Create the database’s front-end CGI script

There is not much to this one. It performs a simple query of the database and dumps the result. You can type in the code, but if you have connected via SSH, you can paste it in. I recommend the latter. Keep in mind that Python uses whitespace to give the program structure, so indenting is important. More precisely, the exact amount of indentation does not matter, but the relative indentation of nested blocks to one another matters a lot. If that sounds confusing, just make sure the spacing looks like mine.

This script takes an optional parameter named querystring that allows the data to be filtered on the name property of the records. It is a step above the “dump everything” approach we used in previous versions and provides the possibility for some user interaction.

Open a new file, /etc/httpd/cgi-bin/data.py

#!/usr/bin/env python
import cgi
import sqlite3


print "Content-type:text/plain\n\n";

form = cgi.FieldStorage()
querystring = form.getvalue("querystring")
if querystring != None:
   queryval = "%" + querystring + "%"
   select = "SELECT * FROM clients WHERE name LIKE '" + queryval + "'"
   select = "SELECT * FROM clients"

for row in curs.execute(select):
   if len(row) == 4:
      for item in row:
        print item,'|'
      print "#"


Save and close the file, then mark it executable

# chmod 755 /etc/httpd/cgi-bin/data.py

Create the database file and load it with data

SQLite will create the file if it is not already present. Bonus!

# sqlite3 /etc/httpd/db/clients.db

At the sqlite> prompt, create the table:

CREATE TABLE 'clients' (
 "Rank" integer,
 "Name" varchar(30),
 "Universe" varchar(25),
 "Revenue" varchar(20)

Then, load in some data. Feel free to use whatever you like:

 (1,'CHOAM','Dune','$1.7 trillion'),
 (2,'Acme Corp.','Looney Tunes','$348.7 billion'),
 (3,'Sirius Cybernetics Corp.',"Hitchhiker's Guide",'$327.2 billion'),
 (4,'Buy n Large','Wall-E','$291.8 billion'),
 (5,'Aperture Science, Inc.','Valve','$163.4 billion'),
 (6,'SPECTRE','007','$157.1 billion'),
 (7,'Very Big Corp. of America','Monty Python','$146.6 billion'),
 (8,'Frobozz Magic Co.','Zork','$112.9 billion'),
 (9,'Warbucks Industries',"Lil' Orphan Annie",'$61.5 billion'),
 (10,'Tyrell Corp.','Bladerunner','$59.4 billion'),
 (11,'Wayne Enterprises','Batman','$31.3 billion'),
 (12,'Virtucon','Austin Powers','$24.9 billion'),
 (13,'Globex','The Simpsons','$23.7 billion'),
 (14,'Umbrella Corp.','Resident Evil','$22.6 billion'),
 (15,'Wonka Industries','Charlie and the Chocolate Factory','$21.0 billion'),
 (16,'Stark Industries','Iron Man','$20.3 billion'),
 (17,'Clampett Oil','Beverly Hillbillies','$18.1 billion'),
 (18,'Oceanic Airlines','Lost','$7.8 billion'),
 (19,'Brawndo','Idiocracy','$5.8 billion'),
 (20,'Cyberdyne Systems Corp.','Terminator','$5.5 billion'),
 (21,'Paper Street Soap Company','Fight Club','$5.0 billion'),
 (22,'Gringotts','Harry Potter','$4.4 billion'),
 (23,'Oscorp','Spider-Man','$3.1 billion'),
 (24,'Nakatomi Trading Corp.','Die-Hard','$2.5 billion'),
 (25,'Los Pollos Hermanos','Breaking Bad','$1.3 billion');

Once you are happy with the data you have entered — ensure that you finish with a semi-colon and a newline — press Control-D to close the SQLite session.

Set the database file’s owner

The apache user running the web server needs access to this file in order for the CGI script to read the data.

# chown apache:apache /etc/httpd/db/clients.db

Enable CGI on the webserver

The default Apache install on Photon does not have the CGI module loaded. It is simple enough to turn it on:

Open the web server’s configuration file. The +176 before the file name opens the file at line 176, which is where we want to start:

# vi +176 /etc/httpd/httpd.conf

At line 176, add the following line to load the CGI module:

LoadModule cgi_module /usr/lib/httpd/modules/mod_cgi.so

At line 379, add the following to enable access to the database directory. It goes right before a line that starts with <IfModule mime_module>

#database directory
<Directory "/etc/httpd/db">
    AllowOverride None
    Options None
    Require all granted

Save and close the file.

Restart the web server to read the updated configuration

# systemctl restart httpd


Now, you can access the script via http and you should see the data.

# curl http://db-01a/cgi-bin/data.py

It won’t look too pretty, but the user never sees this back end data. That’s where the application server comes in. At this point, the result should look something like this:

root@db-01a [ ~ ]# curl http://db-01a/cgi-bin/data.py
1 |
Dune |
$1.7 trillion |
... (truncated) ...
24 |
Nakatomi Trading Corp. |
Die-Hard |
$2.5 billion |
25 |
Los Pollos Hermanos |
Breaking Bad |
$1.3 billion |
root@db-01a [ ~ ]#

The next piece of the puzzle is the application server, which consumes the data provided by this component. If you had no problems with this setup, the rest should be a breeze. This may be the most complicated part of the whole application.

I hope to have the next post available next week.

Thank you for reading!

HOL Three-Tier Application, Part 1

This is the first post in my series about the multi-tier application we use in some of the VMware Hands-on Labs to demonstrate, among other things, network connectivity, microsegmentation and load balancing. This post will cover downloading the base operating system and performing the configuration tasks common to all of the VMs in the solution. As with anything, there are multiple ways to do this. This represents the way that worked for me.

The Need

Whether you live in a cutting-edge, microservices-oriented world, or have a traditional application spread across multiple machines, the components (machines, containers, services, processes, etc.) need to communicate with one another over the network. Understanding what that looks like is important to securing the connection end-to-end. This simple application is intended to provide a starting point for learning or testing firewall and load balancing configurations to see how they affect a distributed environment.

For instruction purposes, we wanted three simple, independent parts that could be deployed, rearranged, and otherwise manipulated to illustrate many different situations that may occur in an environment. For HOL and other labs, small is usually good. Oh, and fast. It should be fast.

The Application

This application consists of three operating system instances, independent VMs, each of which handles a specific task. When all of them can communicate over the network over the required ports, the client receives the requested information and can interact with that information. If there is a breakdown, not so much.

This demonstration application has been created so that each component VM is independent from the others: IP addresses can be changed and multiple instances of the web and application tier VMs can be created by cloning, renaming, and re-addressing. The basic build with one of each type and all resources on the same subnet will be described in this series. The following is a simple diagram of what I will be covering. I put SSL in here because it is always a good idea to secure your web traffic, and it provides the opportunity to configure a load balancer in front of the web tier in a more realistic scenario.


So, let’s get to it!

Build The Base

This application is built using VMware’s Photon OS. If you are not familiar with the Photon project, you can read more on the VMware Photon OS page. Basically, as the page indicates, Photon OS is a Minimal Linux Container Host. Because we have very basic needs, we are going to focus on the first half (Minimal Linux) and ignore the second half (Container Host) for now. One really cool thing about Photon OS is that it boots incredibly quickly.

Before we do anything, I’d like to give you an idea of the time involved in building this application. Once I have the software downloaded and have staged the base Photon template, I can get the basic application up, running, and captured in under an hour. If you are comfortable using the vi editor and an SSH connection, I think you can as well. Even if you are a bit rusty, it should not take too much longer than that. My time is skewed a bit since I was documenting the build.

Download the Software

This application is going to run as a set of virtual machines on my VMware ESXi hosts. I selected the Photon OS, Version 1.0 — OVA with virtual hardware v10 as my starting point. If you like, you can install Photon on your own from the ISO, but this has nearly everything we need in a simple package: A pre-installed and vSphere-optimized Photon OS minimal instance configured with virtual hardware version 10. At the time of this writing, that file was available using the link at the bottom of the VMware Photon OS page. The file I downloaded was called photon-custom-hw10-1.0-13c08b6.ova and is less than 300 MB.

Import the OVA

Once you have downloaded the software, import the OVA to your environment and power it up.

Create a Baseline

You can handle this however you like, but I have some tasks that are common across all of the VMs and don’t like to duplicate work if I can avoid it. Note that you will need Internet access from the VM in order to install software. You will also need three IP addresses that you can statically assign to the VMs.

Set the root password

The default password on the OVA is changeme — use this to log in with the user name root. The system will prompt you again for the changeme password and then require you to set a complex password. It didn’t like our standard (simple) HOL preferred password, so I had to set it to VMware123! and then I used passwd to change it to VMware1! that we use in all of the Hands-on Labs. Note that passwd will complain about a weak password, but will still let you change it here as long as you are persistent:


Ensure that root’s password does not expire

It is always a drag when you finally get back to working on your lab, only to have to reset passwords… or, worse, figure out how to break in because the password is no longer valid. In production, I probably would not do this, but this is a lab tool.

Note that my convention is to prefix the examples with a “#” because they are executed as the root user. You don’t type the “#”

# chage -M -1 root

Note that is a NEGATIVE ONE after the -M

Set the hostname

Change the hostname from the default generated name to what you want to use. For the template, I usually set it to something besides the default  photon-<some random characters> so that I know I have done this work. Note, if you’re not familiar with the vi editor, look here for a “cheat sheet” from MIT.

# vi /etc/hostname

Replace the current name with the new name and save, close the file.

Set a static IP (change from default DHCP)

In this OVA, the default network configuration is stored in /etc/systemd/network/10-dhcp-en.network. To configure a static IP address on the eth0 interface, rename the file and replace the contents:

# mv /etc/systemd/network/10-dhcp-en.network /etc/systemd/network/10-static-eth0.network

Renaming it instead of copying it retains the permissions so that it will work. The contents are pretty straightforward. The following example is for the web-01a machine in my environment. Substitute with addresses that make sense for you. Don’t count on DNS to work once these VMs are deployed in DMZs or microsegments, but I configure it because I need to be able to resolve repository hostnames to install software:



Restart the network to apply the settings

# systemctl restart systemd-networkd

Edit the hosts file

Because this application is intended to be self-contained, we use local hosts files for name resolution. Configuring this template with all of the names and IPs that you want to use is easier than doing it later for each VM. Specifying names allows the other tools’ configurations to be built using names instead of IP addresses. This and makes changing addresses later much easier.

Remember to also change the hostname on the loopback ( from the default to your host’s name, too. This is an example of the edited file from our web-01a machine:

# Begin /etc/hosts (network card version)

::1 localhost ipv6-localhost ipv6-loopback localhost.localdomain localhost web-01a
# End /etc/hosts (network card version) db-01a.corp.local  db-01a app-01a.corp.local app-01a web-01a.corp.local web-01a

Modify the firewall to allow the desired ports

The iptables config script run at startup of the Photon OS is /etc/systemd/scripts/iptables and only allows SSH by default. Add the following lines to the bottom of the file:

#Enable ping by anyone
iptables -A INPUT -p icmp -j ACCEPT

#Enable web and app traffic 
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT

The last three open the ports we need for all of the app layers. You can comment out the ones you don’t need for each VM after you deploy each one… or not.

Restart iptables to apply the new rules

# systemctl restart iptables

(optional) Verify the new rules

# iptables -L

(optional) Enable key-based SSH

If you have an SSH key that you use, now is a good time to copy your SSH key to the /root/.ssh/authorized_keys file, replacing the <ssh-key-here> text that is there by default.

(optional) Install software used by all

The OVA contains a minimal installation of Photon OS, but I created this application with the default packages in mind. We use the tdnf tool to perform installations on Photon. While adding lsof is optional, I find it excellent for troubleshooting.

# tdnf install lsof

Once installed, try this to see which services are listening and connected on which ports:

# lsof -i -P -n

Cool, right?

If you have anything else that you want to install — say you prefer nano to vim as a text editor — go ahead and install that now using the same tdnf syntax:

# tdnf install nano

Finish Up

I usually reboot here just to make sure everything comes up as expected before moving on. With Photon, that reboot only takes a few seconds.

If everything looks good, shut this machine down and clone it to a template for use when creating the web, app, and database server machines. For this example, I called mine photon:


Next time, I will cover the build of the database VM using this template as a starting point.

Thank you for reading!

Happy New Year

Happy 2017 from the VMware Hands-on Labs team! I have three quick updates for you in this post.


We are currently working on our Spring Release, which is when we refresh some of the labs from the prior year’s VMworld. Look for some updated content around April of this year.


We have started planning the labs for VMworld 2017, which is always an exciting time. If you have a great idea that you would like considered for our 2017 cycle, we have the Hands-on Labs Idea Registry. We accept submissions on this site for the current year until around mid-February. Once your idea is submitted, it will be reviewed and presented to the appropriate VMware Business Unit for consideration.


We have create a few tools to deal with the specialness of running our lab content in a nested environment. Some of these have proven useful to others in the community who run their own labs. We talk about these tools a bit during our VIP Tours at the VMworld events and are happy to share what we can. A few are currently available on GitHub:

  • LabStartup – a framework that we use for checking the status of components within our labs, both at startup time and, now, on a periodic basis. The LabStartupFunctons.ps1 contains some useful functions for checking status and, in some cases, performing remediation.
  • HOL-ModuleSwitcher – a framework for executing PowerShell scripts via a simple “button panel” UI. Supports Start and Stop scripts for each module.


Disclaimer: These scripts are provided “as-is” and may not be appropriate for your environment. They are not officially supported by VMware. If you decide to use them, you do so at your own risk.

Most recently, I have been overhauling the three-tier “application” that we use inside our labs. The basic version is made up of 3 VMs, runs entirely on Photon OS, and boots in under 30 seconds!


With all of the interest on networking in general, and NSX in particular, we have received some requests for access to this application because it can be really helpful in a lab setting.

Rather than providing a link to a multi-GB download with VMs that someone else (me) has hacked together, I think it would be more interesting to explain how this application is put together. My goal for this project is to have something small, simple, and understandable. Using as many default components and settings as possible helps get there. It is not currently implemented using something sexy like containers, although it can be reworked that way if you are so inclined.

In some upcoming posts, I will describe this application and how it is constructed using the base Photon OS v1.0 OVA as a starting point. If you want to see what the current ConeOS-based version looks like, you can check out one of the NSX labs like HOL-1703 or HOL-1725. The new version is slightly different, but the idea is the same.

Thanks for reading and enjoy your labs!

UPDATE: The first post in the series is now online: HOL Three-Tier Application, Part 1

New Localized Manuals Available!

We are delighted to announce the first set of 2017 Hands-on Lab manuals translated to serve our global audience. Click here for instructions on how to change your language in the Hands-on Labs portal.  Once you have your language preference set, if a lab manual is available in your preferred language, it will be displayed as the lab deploys.

Did you know that you can change your language preference when you log in to the Hands-on Labs site?  Just click the link next to the Globe and select your preferred language.


Once logged in, you will see badges next to each lab inticating what languages the lab is available in.  You can click on the language badge to see all of the labs available in that particular language.


We have also made available PDF and HTML versions of the manuals. You can use the table below to download or view them. You can also click the Lab SKU & Name in the table to be taken directly to the lab.  The manuals are also listed on our documents site and will be updated as this post is updated.

Check back for future updates as we localize more labs for you!

LAB SKU & NAME Japanese Korean PORTUGUESE Chinese Spanish
HOL-1701-USE-2 – vRealize Operations and vRealize Business: Optimize Compute Utilization PDF / HTML PDF / HTML
HOL-1701-USE-3 – vRealize Operations and vRealize Log Insight: Ensure Performance and Availability PDF / HTML PDF / HTML
HOL-1701-CHG-5 – vRealize Operations Application Monitoring: Challenge Lab PDF / HTML
HOL-1703-SDC-1 – VMware NSX: Introduction and Feature Tour PDF / HTML PDF / HTML PDF / HTML PDF / HTML
HOL-1703-USE-2 – VMware NSX: Distributed Firewall with Micro-Segmentation PDF / HTML PDF / HTML
HOL-1703-USE-3 – VMware NSX: Operations and Visibility PDF / HTML
HOL-1704-SDC-1 – vSphere 6: Performance Optimization PDF / HTML
HOL-1704-CHG-2 – vSphere 6: Challenge Lab PDF / HTML PDF / HTML
HOL-1706-SDC-1 – Cloud Management Platform: Integrating the Parts PDF / HTML
HOL-1706-USE-4 – vRealize Operations Advanced Topics PDF / HTML
HOL-1706-SDC-5 – VMware Cloud Foundation Fundamentals PDF / HTML
HOL-1708-SDC-1 – Virtual SAN 6.2 from A to Z PDF / HTML PDF / HTML PDF / HTML PDF / HTML PDF / HTML
HOL-1708-CHG-3 – Virtual SAN 6.2: Challenge Lab PDF / HTML PDF / HTML
HOL-1720-SDC-1 – VMware Integrated OpenStack (VIO) with vSphere and NSX PDF / HTML
HOL-1721-USE-2 – vRealize Automation 7 Advanced PDF / HTML
HOL-1724-SDC-1 – Advanced SDDC Security with Check Point vSEC and NSX PDF / HTML
HOL-1725-SDC-1 – VMware NSX Advanced Consumption PDF / HTML
HOL-1725-USE-2 – VMware NSX Multi-Site DR with SRM PDF / HTML
HOL-1728-SDC-1 – VxRail Introduction PDF / HTML
HOL-1741-USE-1 – Horizon and NSX: Use Cases to Secure and Protect Healthcare PDF / HTML
HOL-1751-MBL-1 – Introduction to Horizon 7: Virtual Desktop and Apps PDF / HTML PDF / HTML
HOL-1751-MBL-2 – Horizon 7: Application Delivery PDF / HTML
HOL-1751-MBL-3 – Horizon 7 Suite: Extend Your Value PDF / HTML
HOL-1751-MBL-4 – Horizon 7: Architecture and Performance PDF / HTML
HOL-1751-MBL-5 – Horizon 7: End to End Security PDF / HTML
HOL-1753-MBL-2 – User Applications: Delivery and Lifecycle Management PDF / HTML
HOL-1755-MBL-1 – Horizon FLEX from A to Z PDF / HTML
HOL-1756-MBL-1 – Horizon Air from A to Z PDF / HTML
HOL-1757-MBL-1 – Introduction to VMware AirWatch PDF / HTML PDF / HTML
HOL-1757-MBL-3 – VMware AirWatch: Workspace ONE, Single Sign-on and VMware Identity Manager PDF / HTML PDF / HTML PDF / HTML PDF / HTML
HOL-1790-CHG-1 – vRealize Automation: Challenge Lab PDF / HTML
HOL-1791-CHG-1 – Horizon 7: Challenge Lab PDF / HTML

Last of the 2017 Hands-on Labs Released!

It’s the final day of releasing labs the 2017 catalog and we have some rather unique labs for you.  We are releasing the VxRail, VMware Learning Platform and vCloud Director for Service Providers Hands-on Labs today.


The first lab, VxRail, covers the installation and management of the Hyper-Converged Infrastructure Appliance (HCIA).  You will see how the appliance is initially configured, then walk through the features, management and monitoring and also see how to expand and extend the appliance.

The next lab covering the VMware Learning Platform is another of my favorites.  This lab gives you an inside look at how we deliver the Hands-on Labs to you.  If you are interested in how we host the labs or are interested in how to deliver lab content to your users, this is the lab for you!


Finally, if you are a vCloud Air Network partner and need to come up to speed on vCloud Director, you will want to take a look at the VMware vCloud Director for Service Providers lab.  It will walk you through building out your Infrastructure as a Service platform.  If you are a customer that utilizes vCloud Air or services from one of our vCloud Air Network partners, there is a section in this lab that covers consumption of vCloud Director resources.

That’s it!  The Lab SKU link below will take you directly to the lab entry where you can start taking the lab.  Also, you can download any of the lab manuals from the Hands-on Labs Document site.

Lab SKU Description Archived 2016 Lab
HOL-1728-SDC-1 VxRail Introduction HOL-SDC-1628
HOL-1785-HBD-1 VMware Learning Platform: How You Can Deliver Your Own Hands-On Labs HOL-HBD-1685
HOL-1787-USE-1 VMware vCloud Director for Service Providers: Build IaaS Platforms N/A

That’s all for now!  A big thank you to the volunteers who created this content and the most amazing catalog I think we’ve ever had.  Stay tuned as we will be providing an update for our global users and localized Hands-on Labs manuals shortly!


New Horizon and Challenge Labs Released!

Today is one of my favorite release days!  We are releasing the remainder of our Horizon and Challenge labs for the 2017 Hands-on Labs catalog.

There is some great new content we are releasing in the Mobility catalog for Horizon.  These labs focus on Identity Manager and application management and delivery with App Volumes and ThinApp.  We also have updated the F5 and Horizon integration lab.


What I am really excited to release are the new Challenge labs and yes, I am a bit biased towards them!  Last year, we tested the waters with the vSphere 6 Challenge lab.  We were not sure how it would be received, but it did end up being one of the top three labs and we received phenomenal feedback from those that took it.

So today I am pleased to present three new Challenge labs covering Horizon, vRealize Automation and vSphere.  These are in addition to the two we have already released for vRealize Operations and Virtual SAN.  If you are not familiar with Challenge labs, we work with our friends in Global Support Services to understand the most common issues customers contact them about.  We then replicate those in the Hands-on Labs.  So while these labs are a great way to test your skills, they may also save you a call to VMware Support in the future.


And finally, just for Mark Achtemichuk, we are releasing the vSphere 6 Performance and Optimization lab.  This is another one of my favorites.  If you are curious about optimizing your environment or how to troubleshoot performance issue, this is the lab for you!  For this lab, we worked with Mark and our friends in the VMware Performance group to help create this one.

Here are the links to the new labs for today.  If you don’t see your favorite lab listed, well, check back tomorrow!  We will have everything in the 2017 catalog released.  You can click on the lab SKU link to be taken directly to the lab entry and start taking the lab.  Also, you can download any of the lab manuals from the Hands-on Labs Document site!

Lab SKU Description Archived 2016 Lab
HOL-1704-SDC-1 vSphere 6: Performance Optimization HOL-SDC-1604
HOL-1704-CHG-2 vSphere 6: Challenge Lab HOL-CHG-1695
HOL-1753-MBL-1 VMware Identity Manager 2.6: Application Management and Delivery HOL-MBL-1653, HOL-MBL-1654
HOL-1753-MBL-2 User Applications: Delivery and Lifecycle Management HOL-MBL-1653, HOL-MBL-1654
HOL-1759-MBL-1 F5 Integration with VMware Horizon Suite HOL-MBL-1659
HOL-1759-USE-3 Horizon 7: Load Balancing HOL-MBL-1659
HOL-1759-USE-4 Identity Manager, App Volumes and Mirage: Load Balancing HOL-MBL-1659
HOL-1790-CHG-1 vRealize Automation: Challenge Lab N/A
HOL-1791-CHG-1 Horizon 7: Challenge Lab N/A


Be sure to check back tomorrow as we will be releasing the last few labs in the 2017 catalog!

New Networking and Cloud Native Apps Hands-on Labs Released!

Today we are releasing the reaming network and Cloud Native Apps labs in 2017 Hands-on Labs catalog.  While we have already released the HOL-1703 and HOL-1725 series of NSX based content, today’s labs focus on VMware Integrated OpenStack and Partner solutions from Check Point and Trend Micro.


These also contain our first vertical solutions for Healthcare and the Teclo industry.  HOL-1741-USE-1 shows a use case on how Horizon, NSX and Trend Micro can help secure and protect the healthcare environment, but in practice, these solutions can be applied to any industry.

The VMware Network Functions Virtualization lab (HOL-1786-HBD-1) covers how communication service providers can virtualize network service functions to reduce CapEx and OpEx, while improving service agility.


As an added bonus, we are releasing the much anticipated Cloud Native Apps labs today.  These where slated to be released later this week, but with the announcement at VMworld Europe of updates to the Photon Platform, we have received a number of requests for their release!  Along with the Photon Platform lab, we are also releasing the vSphere Integrated Containers lab.

Here are the links to the labs we have for you today.  You can click on the Lab SKU link to be taken directly to the lab entry and start taking the lab.  Also, you can download any of the lab manuals from the Hands-on Labs Document site.

Lab SKU Description Archived 2016 Lab
HOL-1720-SDC-1 VMware Integrated OpenStack (VIO) with vSphere and NSX HOL-SDC-1620
HOL-1724-SDC-1 Advanced SDDC Security with Check Point vSEC and NSX N/A
HOL-1730-USE-1 vSphere Integrated Containers HOL-SDC-1630
HOL-1730-USE-2 Cloud Native Apps With Photon Platform HOL-SDC-1630
HOL-1741-USE-1 Horizon and NSX/Trend Micro: Use Cases to Secure and Protect Healthcare HOL-MBL-1661
HOL-1786-USE-1 vCloud Network Functions Virtualization N/A

If you attended VMworld, you may have noticed some Hands-on Labs staff wearing the Yellow (banana) shirts.  They were focused on assisting attendees with NSX and networking questions and are also affectionately known as “Tina’s Minions”!  Hi Keith!


Stay tuned as we continue to release new labs this week!

Final Round of 2017 Hands-on Labs to be Released!

The wait is finally over!  We are back from VMworld Europe and will be releasing the remaining labs in the 2017 Hands-on Labs catalog over the coming days.  Today’s release will focus on the Top 10 series labs.  These are labs that proved to be popular at VMworld and have yet to be released.


As a reminder, when we add a new 2017 lab, the corresponding 2016 lab will retired to the HOL Archives catalog, where it will eventually be decommissioned on December 1st, 2016.  Keep in mind that we are significantly reducing the “pre-pops” for the older 1600 series labs that are in the Archive catalog to make room for the new content.  If you do choose to take a lab from the Archive catalog, you may wait a bit longer for the Lab Status indicator to display “Ready”.

You can review my previous post to see which lab(s) will be retired when a new a lab is made available, where to find the older lab and what to watch out for.


Without further delay, here are the new labs available for you!  If you don’t see your favorite lab listed, keep checking back throughout the week.  You can click on the lab SKU link to be taken directly to the lab entry and start taking the lab.  Also, you can download any of the lab manuals from the Hands-on Labs Document site!

Lab SKU Description Archived 2016 Lab
HOL-1705-SDC-1 Site Recovery Manager: Data Center Migration and Disaster Recovery HOL-SDC-1605
HOL-1721-USE-1 vRealize Automation 7 Basics HOL-SDC-1621, HOL-SDC-1633
HOL-1721-USE-2 vRealize Automation 7 Advanced HOL-SDC-1632
HOL-1721-USE-3 vRealize Automation Advanced Extensibility HOL-SDC-1632
HOL-1721-USE-4 DevOps with vRealize Code Stream HOL-SDC-1621
HOL-1721-SDC-5 Introduction to vRealize Orchestrator HOL-SDC-1632
HOL-1721-SDC-6 vSphere Automation with PowerCLI HOL-SDC-1607
HOL-1781-HBD-1 VMware vCloud Air – Jump Start for vSphere Admins HOL-HBD-1681
HOL-1783-HBD-1 VMware vCloud Air – Manage Your Cloud HOL-HBD-1683
HOL-1784-HBD-1 VMware vCloud Air Disaster Recovery HOL-HBD-1684

Thank you for your continued support of the Hands-on Labs and to the volunteers that make all of this possible!14

New 2017 VMware Hands-on Labs Released!

Today we are releasing labs from the VMware Hands-on Labs 2017 Catalog.  These labs were first released at VMworld US in Las Vegas and are now available to you!


While we won’t be releasing all the labs in the catalog just yet, we did need to release some of them for upcoming events, like SociaLabs.  If you haven’t heard of or attended a SociaLab, you are missing out on a great opportunity to connect with experts outside of the Hands-on Labs at VMworld.  Visit the SociaLab page to find event near you! Continue reading

Transitioning to the 2017 Hands-on Labs

As we prepare to get the latest labs out to you after VMworld, we want to make sure you are prepared for what’s to come. The process is similar to what we have done in year’s past and we will start rolling out a few labs after VMworld in Las Vegas, with the majority coming after VMworld in Barcelona. Continue reading