New SMB tech focused podcast – we need your help!

Howdy everyone.  A conversation on Twitter popped up the other day before I took the year off (clearly I’m doing well at that) about starting a podcast focused on the SMB space. To help put that together, I was hoping you would take a few seconds to answer this short 10 question survey so we can get an idea of where the SMB is today.

Thank you to everyone who has responded so far, and thank you for for all those taking the time now!

Create your free online surveys with SurveyMonkey , the world’s leading questionnaire tool.

Deploy an Application Blueprint – Application Services Series Part 5

In part 4 we published an application blueprint through Application Serivces, that is pretty awesome but we still really haven’t done anything just yet.  I mean its all just about working but the real hard part is creating the application blueprints.  Just for fun, lets create a generic blueprint and run a deployment.  While logged into Application Services go to Applications and click on the green + (plus) button to create a new application.

  • Name the application and select a business group, if you’ve followed along my various home lab series you would select StarWars here since it is the only business group we gave permission to in vRealize Automation.
  • Click save, click Create Application Version then click Save
  • Now you are able to create a blueprint; click Create Blueprint
  • Drag the logical template to the design pane, again if you’re following along with me this would be the CentOS 64 logical template
VMware Application Services / Application Director application designer

VMware Application Services / Application Director application designer

  • Now all this would do is create a virtual machine like you could do through vRealize Automation or vSphere; here however we also have several preconfigured services we can drag into our logical template to install applications.
  • Let’s do a typical single node web and database server
  • Drag Apache, vFabric RabbitMQ and and vFabric Postgres into the logical template, it should look something like this:

apps-app-services-addedNow one of the hardest parts about automating something is now all the dependencies.  In this scenario I happen to know a few things are missing, not because I am a genius but because I went through several iterations of this blueprint before getting it to work.  This, however also allows me to demo some other features of Application Services.  In my CentOS template, SELinux is enabled – now I could convert my template to a virtual machine, disable it, clean up the virtual machine machine again and convert it back to a template.  It’s what I would have done not 6-8 months ago.  Now, however, I’ll simply use the tools available to me, tools like Application Services or Ansible to put the virtual machine into the state I want it:

  • From the Application Components page, drag two “script” items into the logical template
  • Edit the first script by clicking on it; name it (no spaces), click on Actions, click “Click here to Edit,” copy the following into the window and click the reboot checkbox

# set SELinux disabled
cp /etc/selinux/config /etc/selinux/config.bak
sed -i s/SELINUX=permissive/SELINUX=disabled/g /etc/selinux/config

  • SELinux will now be disabled upon reboot.
  • We also have to tweak the EPEL install to allow it to pull data properly (seems to be a known issues right now).  Rather than letting the EPEL package install as part of the services we used earlier, we can also do that in a script and configure the options we need for it to work.
  • Edit the 2nd script as you did before but copy the following into the window

# install EPEL
yum -y install
sed -i “s/mirrorlist=https/mirrorlist=http/” /etc/yum.repos.d/epel.repo

  • Click the OK button, you should now see something like this:


  • Now click the deploy button, name the deployment, and select the business group
  • Click Map Details, ensure all details match what you have setup, and click Next
  • Provide a name to your virtual machine and edit CPU and memory as needed (and to match your vRA blueprint limits) – click Next
  • Review the deployment blueprint and click Next
  • Click the deploy  button (you could also publish to vRA here as we did in part 4, but I’m just demonstrating the deployment)
  • The deployment will start

Now at one point I wasn’t sure it was working, I could see Application Services say it was working (system was under 80-90% load consistently) however I wanted to see what vSphere was doing.  As you an see in the two screenshots below, the virtual machines are being deployed as you might expect (they are from two different deployments so yes the dates are different)

Application Services - virtual machined deployed via the web client

Application Services – virtual machined deployed via the web client

VMware Application Services deployment viewed in vSphere Client

VMware Application Services deployment viewed in vSphere Client

In addition, you can zoom in on the Execution Plan pane to see what step the deployment is currently on

Application Services provisioning a virtual machine

Application Services provisioning a virtual machine

This process took quite a while in my lab, but it I am pretty resource bound now.  Now, as I mentioned this is an iterative processes, good chance it may have failed in your environment, review errors and run the deployment again.  After working through any specific environment issues you should be able to successfully deploy the application components.


VMware Application Services Linux deployment hangs at agent_bootstrap node setup

When deploying an Application Services blueprint, you notice that the workflow does not move past the 2nd step in the provisioning process – agent_bootstrap node setup, however the previous step which renames the virtual machines appears to work fine.  In this scenario you have also successfully installed the AppD agent in the vSphere template.

VMware Application Services / Application Director hangs at agent_bootstrap node setup

VMware Application Services / Application Director hangs at agent_bootstrap node setup

If you log into the virtual machine, you can see that the vmware_appdirector_agent should be set to on, however when checking the running services (for example by running ps -ef | grep vmware_appdirector_agent) you do not see any processes running.

When working with vSphere templates that are used in Application Services / Application Director blueprints there are a few things to be aware of.  After the agent installation initially, you shutdown the virtual machine, however making changes to the template after the initial shutdown requires additional steps to be performed.   Not only do you need to remove the /etc/udev/rules/70-persistent-net.rules file and make sure the vmnic MAC is not in /etc/sysconfig/network-scripts/ifcfg-eth0 but you also need to run


This reset the agent configuration and allows it to start properly after being cloned.  Once the agent_reset script has been run, shutdown the host and convert it back to a template.  You should now be able to run your Application Services / Application Director blueprint (or at least get past that step :) )

VMware Application Services / Application Director agent_bootstrap completes node setup

VMware Application Services / Application Director agent_bootstrap completes node setup

#vDM30in30 – That’s a wrap

Thank you to everyone for following along on my #vDM30in30 challenge and thank you to Melissa Palmer for making it a thing and to everyone who participated.  This was a great experience, while I am not likely to maintain a blog post per day pace going forward it did help me hone my skills and am very grateful for the experience.  If nothing else, it helped me learn a ton, and I came out the other side a bit smarter than I was on October 31st.

I would also like to thank everyone who sent over positive feedback on my posts.  As many are, I am my harshest critic I was worried that I wasn’t producing something useful for people.  When people who I consider much smarter than me started messaging me telling me they liked the posts I knew I was on the right track.

So, here it is – last post, on the last day of November, in the last minute of the month!

Series from #vDM30in30 (not including one off posts)

vRealize Automation

vRealize Application Services


Home Lab


Whats missing from my vRealize Automation lab

With my vRealize Automation / vCloud Automation Center lab mostly working, I did want to recognize a few things we missed that you might like to investigate further on your own.

First, if you look back you’ll notice we did not do anything specifically with vCenter Orchestrator.  Like vSphere templates, you can publish vCO workflows as catalog items to perform advanced or no routine tasks.  For example maybe you are an organization that makes heave use of vApps in vSphere and want to continue that.  vRA has no concept of vApps but using vCenter Orchestrator I could publish a workflow that will create the vApp and create virtual machines inside the vApp.  Additionally I could tie vCO into other infrastructure such as Active Directory or my storage layer using EMC ViPR for example.

We did not work with any of the advanced networking solutions such as VMware NSX or vCloud Networking and Security.  Consider the need for an isolated multi-virtual machine development environment, I could deploy an NSX edge device and places all of the virtual machines behind the edge device and provide access to the application to a specific set of users or other network segments.  Also missed in these posts were adding additional endpoints to connect to services such as vCloud Air or EC2 – things that could enable you to build a “hybrid” cloud

The last item I will cover here is charge back using vRealize Business (formerly IT Business Management Suite).  With vRB…no sorry not doing it – with ITBM you can get much more granular in cost tracking and turn that data into charge back to other groups or show back to justify your IT budget (remember IT people – you job is not to make money, its to support the business).

Thank you for following along with my vCAC / vRA posts, I hope you found them useful!

Setting up the CloudBolt Appliance

It’s been almost a year since I last looked at CloudBolt Software, and unfortunately other projects took me away from taking a deeper look at them at that time.  After taking a day off from blogging and having wrapped up my vRealize Automation and Application Services series I thought I’d have another look, especially now having hands on with vRealize Automation to compare it to.

Before you get started, be sure to get your license key squared away as you will need that to proceed.   You can get a license key by calling (703) 665 1060 or by emailing [email protected]

CloudBolt, as you’d expect comes as an OVF to deploy in vCenter or VMware Workstation, there are no OVF properties that are exposed in vCenter so the deployment process would be the same in either scenario.

  • Deploy the OVF, this is a simple process since you are not setting anything during the setup
  • While the VM is deploying, create your DNS records in AD
  • Log in as root/cloudbolt; the CloudBOlt C2 Server Setup UI will open
  • Set each of the options according to your network, then chose the Run option to configure CloudBolt.  Here is what mine looks like before selecting run
CloudBolt setup screen

CloudBolt setup screen

  • If you deploy the VMware Workstation, ensure your VM nic is set according to your desired configuration – NAT or Bridged
  • Now, navigate to the IP address / FQDN of the server
  • You will need a CloudBolt license key to continue; click on the Browse button to select your license file then click Upload License
  • You will now be at the login screen, log in as admin / admin
  • Accept the EULA and click Next
  • Select your “resource handler” – in my case VMware vCenter (you can select others later if needed)
CloudBolt Resource Handler Selection

CloudBolt Resource Handler Selection

  • Provide the IP address of your vCenter server along with a username and password, typically I’d create an administrative user specific for CloudBolt such as svc_vc_cb_bind so it could be identified.
  • CloudBolt will identify your environment; give a name to your  vCenter server, select your default datastore and which cluster to import
  • Select which networks you want to be available for provisioning.  This would be somewhat similar to selecting the port groups in the vCAC reservation – in my case I’ll select my vm port group (you can select more than one here)
  • Select which templates you want to import
  • Create a Cloud Bolt admin user, this is a local user account not tied to AD or LDAP services (all fields are required)
  • Finally fill in SMTP information or just click Finish then click Start Using CloudBolt

The initial CloudBolt setup is done after that easy wizard, a few additional steps you will need to perform before turning this over to users that we will look at in future posts:

  • Create new users or configure LDAP for your users to log in (Admin >> Users or Admin >> LDAP Authentication Settings >> New LDAP Utility)
  • Create new groups (Groups >> Add a Group)
  • Add portal (Admin >> CloudBolt Portals)
  • Add a provisioning engine or confiugration manager  (currently supports Puppet, Chef, Docker, Cobbler and HP Automation)
  • Create a Service Catalog for users to access

Quick and dirty GitHub for beginers – your first commit

I started my Ansible series really with the intention of getting to know Git/GitHub a bit better but Ansible was so awesome I couldn’t put it down.  Now that I have built a couple of example playbooks its time to “commit” those into GitHub.  For starters, we need Git/GitHub installed on our system.  In my case I am doing everything from my Ansible server, though you may want to do this on another system.  Thanks to yum, the install is pretty easy

yum install git

I had already run this on my Ansible server so I could “pull” the Ansible code.  Now I want to setup my username so:

git config --global "yourusername"

Next register your email account for your GitHub account

git config --global "youremail"

Now on to authentication, it’s high time I stop using passwords for everything and setup SSH keys so, lets do that.  To create the public key enter:

ssh-keygen -t rsa -C "[email protected]"
  • While logged in as root it will save to /root/.ssh/id_rsa)
  • Next enter your secure password
  • With the key now created, log into GitHub and click on the gear icon (Settings) in the upper right corner
  • Click on SSH keys
  • Click the add SSH keys button
  • Provide a title such as “ansible VM” or whatever used to identify the computer
  • Back in your terminal window type

less /root/.ssh/

  • Copy the contents of the file and paste it into the Key text box
  • Click the Add key button
  • Back in your terminal window type

ssh -T [email protected]

  • Accept the key from
  • Enter the pass phrase for your key
  • You should now be logged into GitHub with your keys!
Login for GitHub via SSH key

Login for GitHub via SSH key

  • Now, switch the to folder where you are saving your Ansible playbooks
  • Type git init
  • Type git add .
  • Type git commit -m ‘playbooks’
  • Find the URL from your Git repository (create one if you haven’t), make sure to click on SSH, not HTTPS and copy that

  • Type git remote add origin [email protected]:user/repository.git
  • Type git remote -v
  • Type git push origin master then enter the pass phrase for your SSH key

Now if I go to my repository, I can see my .yml files checked in!

GitHub files checked into repository

GitHub files checked into repository

From now on, as we create or update our playbooks we can check them into GitHub for safe keeping and sharing!

Hands on with VMTurbo Operations Manager

*Disclaimer – VMTurbo is a sponsor of this blog.  I was not asked to write this post nor was it reviewed prior to being published.  The post simply represents my opinions as it relates to the first time use*

First I would like to thank the folks at VMTurbo for setting up NFR access and inviting me to their community site.  I have never used VMTurbo before, however I have used vCenter Operations manager and Veeam One.  VMTurbo comes as an appliance, I deployed mine in VMware Workstation, powered it on and was able to connect right to the web UI.  Before I log in and get started though, I want to give it the appropriate DNS server IP instead of what DHCP is providing.  Log into the console as ipsetup/ipsetup

  • Select Static Address Setup by using the tab key then pressing the space bar to select it
  • Tab to the IP address field and enter the appropriate information; repeat for all fields
  • Press the tab key until you get to OK then press the space bar again
  • Now, create a DNS entry in your forward and reverse lookup zone

You should now be able to navigate to the VMTurbo UI with the new IP address or FQDN.  The initial login is administrator/administrator (though as the UI suggests you probably want to change that).  Once logged in for the first time, you will run through an initial setup wizard.

  • First, provide your license key which arrives as an XML file.  In my case since I had the license key I selected the I have a license key and pasted the XML I received with the key into the text box
  • Once the license key is accepted, click next
  • On the Target Configuration screen click Add
  • Here you chose the type of system you want to monitor, I have selected vCenter and entered my vCenter server information.  Once everything is entered, click the Save button
  • Add any additional systems you wish to monitor and click Next
  • Enter your email credentials if you have them and click Finish

Right away VMTurbo is able to look at resource utilization in the environment, as you can see from the charts below.

VMTurbo Dashboard

VMTurbo Dashboard

You can click through the various tabs in the UI to see different information, for example on the Suppy Chain tab I can see a map of my infrastructure.  Using the navigator I can click on the components in my environment and instantly get information about that resource.  For example here I clicked on Storage and can see my vxprt-esxi01-gold-local datastore is about about 60% utilization.

VMTurbo Navigator

VMTurbo Navigator

Beyond just monitoring, VMTurbo can also make recommendations about how to improve the environment.  For example if you had a host over utilized, it could generate recommendations on how to resolve the problem and take action on it.  I can also use VMTurbo to perform deployments; one thing I found interesting was that in addition to my existing vSphere templates, there were several already defined such as Microsoft_IIS-small which can help you determine the best location for a virtual machine and use the template to deploy the virtual machine.

I am really excited to watch VMTurbo in my lab over the next few days.  It was by far the simplest deployment of this type of system that I have ever done – within minutes it was monitoring my environment.  A lab may not be the best litmus test for VMTurbo, but given the ease of install and the fact it does not need any agents you may want to go ahead and see what it finds in a larger test or production environment.  I’ll keep you posted on what other cool things I find as I explore the many options in VMTurbo Operations Manager.

Smashed Honey Sweet Potatoes – Thanksgiving Side Dish Recipe

My cousin is hosting Thanksgiving this year, so I don’t have to cook turkey but was asked to bring a side dish – Smashed Honey Sweet Potatoes .  What you’ll need (to feed roughly 6-8 people or so):

  • 5 medium+ sweet potatoes
  • 4 bananas
  • Honey
  • Brown sugar
  • Cranberry granola mix
  • Olive oil

Pre-heat the oven to 400-deg; while the oven is pre-heating microwave two of the sweet potatoes until they are very soft (repeat until all 5 or mushy).  When the oven gets to 400-deg place the 4 bananas in the oven in the peel and let cook for about 10-12 minutes.

While the banans are cooking, scoop out the sweet potato from the skin and place into a large oven save bowl you can put back in the oven.  I started with masher to get the sweet potatoes to the consistency I wanted, but because they are so thick I ended used a knife to whip the sweet potatoes in the bowl – the also wisk kept getting “clogged.”  With the sweet potatoes whipped, remove the bananas from the oven, they should be very soft, almost melted; add them to the sweet potatoes and whip again until you cannot see the bananas.

Add 1/2 to 1 1/2 cups of brown sugar and 1/2 to 2 cups of honey depending on how sweet you like it.  I started with honey and if the honey taste was too strong, I added a little more brown sugar.  Mix well.

Place 2-3 cups (or more if you really like the mix) in a separate bowl and lightly coat with olive oil.  Now sprinkle in brown sugar and mix together by hand.  Crumble the mix over the sweet potatoes and bananas and bake for an additional 10-15 minutes or so.  The result..

Sweet potatoes even I'll eat

Sweet potatoes even I’ll eat

Filed under A page for aspiring VMware admins who cant balance a checkbook, hate grocery shopping, dont know whether to buy a condo or know how to use Twitter


Setting up a minimal CentOS7 VM with VMXNET3 NIC

Now that CentOS7 is out, time to make sure I can setup my virtual machines with the VMXNET3 vmnic.  As I documented in my previous post, CentOS 6.x using the VMXNET3 driver requires VMware Tools, VMware Tools needs Perl, Perl is not included in the minimal ISO so I need network access to get Perl to install VMware Tools to get network access.  That order of operations doesn’t work very well.

Also, as of CentOS7, VMware now recommends Open Virtual Machine Tools so you would not be installing VMware Tools as I pointed out in my CentOS 6.x post on VMXNET3.  Good news, though, VMXNET3 drivers in CentOS7 do not need VMware Tools but there are seemingly some new steps to get networking working.  So, lets get started; now obviously we don’t want to install the OS every single time you need it, so my assumption here is that the use case if for your initial template build.  With that assumption out of the way I am going to create a new virtual machine in the vSphere Web Client with the following settings:

  • VM hardware version 10 (since now we can edit them in the C# client)
  • Guest OS Family – Linux
  • Guest OS Version – CentOS 4/5/6/7 (64-bit)
  • Virtual Hardware
    • 1 vCPU
    • 1GB memory
    • New hard disk – thin provisioned
    • 1x vmnic – VMXNET3 connected

Once the new machine is created, power it on and connect to the console, install the OS as you normally would – notice when you get to the Installation Summary screen the network says Not Connected; click on it and you’ll see that i seems to recognize the VMXNET3 controller.  I am not going to set this adapter to “ON” right now, I am going to leave it “OFF” to show you how to bring it up on the command line.  Finish the and reboot once completed.  Log in and run ifconfig…egads command not found?  What is Linux going all Microsoft on us and changing things for the sake of changing it!!  Well if you tried to do a yum or ping anything right now, you’d not have network access as you might expect. So where to go from here?

Well it appears there is no more /etc/udev/rules.d/70-persistent-net.rules file any more, so lets have a look at /etc/sysconfig/network-scripts.  Hmm where is my ifcfg-eth0 file?


That has been replaced now, notice the ifcfg-eno16777984 file, that is what we want (though not sure where the numbering comes from) – open it in vi so we can have a look.  Yup looks just like the old ifcfg-eth0 file, lets get to work.  Change BOOTPROTO from dhcp to none and add the following with valid information for your network; IPADDR, NETMASK, GATEWAY, DNS1.  Here is what my file looks like now:

CentOS7 ifconfig file

CentOS7 ifconfig file

Now that you are all set, [esc] :wq [enter] to save it and service network restart – now ping…wait what – I STILL can’t ping?  What is wrong?  Apparently in CentOS7 restarting the network service is not enough, we need to bring the actual interface up.  If you do an ls in /etc/sysconfig/network-scripts you’ll notice the ifup command – always been there, I never used it before but this is what you’ll use to bring up your interface, something like

ifup ifcfg-eno16777984

Now, here you can see our network is up


But… this will not be persistent over network service or virtual machine restarts so you’ll need also edit the ifcfg-eno######## file and change ONBOOT to yes, now you can restart networking or your virtual machine and maintain networking

More information about the changes can be found in the CentOS7 FAQ.