Creating new vRA Workloads in a specific AD OU

This week, I’ve had several customers individually approach me with this question – how can they specify the OU which a Windows VM should land in when it’s created via vRA?

This is a great question and a very important operational task to accomplish – OU membership determines so much vital configuration for a Windows machine.

It seems like most of these customers have a tendency to assume they are going to create the VM first, and relocate it to a new OU later. But there’s a much more streamlined way to do it. By binding a workflow to the IaaS BuildingMachine lifecycle stage, you can pre-stage the computer object in AD before it’s even provisioned. That way, when it first adds to the domain it will already be present in the correct OU. This also has the added benefit of ensuring all group policies are inherited right away, rather than requiring additional reboots.

I’ve put together a quick example here that should help you see how to do just this.

To use the example workflow attached above, you must already have your vRO instance registered with vRA and the extensibility customizations installed. We also assume that you have correctly configured the Active Directory plugin, and that the example vRA blueprint you will deploy has a vSphere Customization Specification attached which adds the VM to your AD domain.

First, import the workflow into a vRO folder of your choosing.

Then, browse to it in the workflow tree and select it. On the General tab, you can see there are two Attributes that must be updated for your own envirionment. Enter the AD Domain Name as the value for domainName and select the parent OU you want new OUs to be created in  for ou1. You can see in my example, the domain is lab.virtualwin.org and the Parent OU is Lab Machines.

Configure_Workflow
(Click for larger image)

Next, use the Assign a state change workflow to a blueprint and its virtual machines workflow to attach the new workflow to the BuildingMachine stage of a test blueprint. This workflow is located under root > Library > vCloud Automation Center > Infrastructure Administration > Extensibility in the Workflow tree.

To do this, right-click the workflow and select Start Workflow.

Start_Workflow

Choose BuildingMachine as the stub to enable and choose your IaaS host. Remember that we are assuming your IaaS Plugin is already configured. If you don’t see any hosts in this list, you still need to do that! Click Next.

Select_Stub_and_vRA_Host

Now,  select the blueprint(s) you wish to add this workflow to. In this example the selected blueprint is “Add to OU Test” and click Next.

Select_Blueprints

On the last screen, you will be prompted to select the workflow and some final options. Choose the new workflow you just imported (in this example, it is Create OU and Stage Machine). Be sure to choose Yes for Add vCO workflow inputs as blueprint properties and then click Submit.

Add_vRO_Workflow_Inputs

The workflow will complete. Now, switch to your vRealize Automation console and edit the blueprint which you just attached the workflow to. Select the Properties tab. You will be presented with a list of properties, some of which need to be adjusted. The total list of properties you see may vary from environment to environment. Here, we need to delete the following 4 properties:

  • ExternalWFStubs.BuildingMachine.vCACHost
  • ExternalWFStubs.BuildingMachine.vCACVm
  • ExternalWFStubs.BuildingMachine.vCenterVm
  • ExternalWFStubs.BuildingMachine.virtualMachineEntity

And also edit the one named ExternalWFStubs.BuildingMachine.ouName so that Prompt User is checked.

Blueprint_Custom_Properties_Before

When you’re done, the properties should look more like this:

Blueprint_Custom_Properties_After

Now, let’s make that variable a little more friendly. Open the Property Dictionary from the menu on the left. Click on New Property Definition and fill in the data as follows:

  • Name: ExternalWFStubs.BuildingMachine.ouName
  • Display Name: Create New OU to host new VM
  • Control Type: Textbox
  • Required: Yes

Property_Dictionary

That’s it! Now, if you navigate to your vRA Catalog and request the blueprint you’ve been working on, you should see something similar to this.

Request_New_Item

Click Submit and wait for provisioning to complete. When you’re done, you will see the new machine in your Items tab as usual:

Deployed_Items

But if you check out your Active Directory, you should also see that the new OU you selected was created, and the new machine was created inside it!

AD_Properties

Now, this example workflow is a very quick demonstration of concept. It doesn’t have any error handling (and suffice it to say, should NOT be used in any production environments and is provided without support or warranty of any kind) – but it should show you how a seemingly complex  task like this can be accomplished relatively easily. The logic in the workflow could easily be amended to remove the OU creation step. ASD and vRO Dynamic Types could be leveraged to provide the user a list of OUs to choose from, rather than a free-form textbox. The sky’s the limit when it comes to vRA extensibility!

Today’s spicy orchestration experience was brought to you by the Habanero Mojito at Havana, Walnut Creek. Jon_Kate_Havana

I hope this post has been useful.

Creating new vRA Workloads in a specific AD OU

Have you taken a VMware Hands-On Lab lately?

The title really sort of says it all!

For those of you who don’t know, the VMware Hands-On Labs program is a truly unique offering in the industry, allowing customers anywhere to test drive any of VMware’s products in live environments. From anywhere, at any time. For free.

We provide you with the environment, the infrastructure, and all the software – pre-installed and configured. You just bring your imagination and willingness to learn. You don’t have to be a paying customer or be tied to a VMware software account of any kind. Just head on over to http://labs.hol.vmware.com/ and register.

Once there, you can choose from the catalog of more than 50 labs (with 40 new or updated ones to be released at VMworld 2015) spanning our entire portfolio. Whether you’re interested in learning what’s new in vSphere 6, how to deploy advanced vRealize Automation integrations, get some stick time with an EVO:RAIL or see how to start moving your business to vCloud Air,the Hands-On Labs provides a safe and free place to do it.

But (shameless plug alert!) the best part about the Labs are the guidance, manuals and use cases that have been prepared to go along with them. Each lab is carefully designed by customer facing subject matter experts like yours truly, so that you can be sure the use cases are relevant and represent real world questions or situations that our customers ask about daily. Small teams of dedicated VMware employees each take great pride in investing hundreds of hours every year to make sure you have the most seamless, robust, amazing experience possible.

If you’d like to see an example of my work,  HOL-SDC-1421 (Using vRealize Automation to Build and Deploy Services and Applications) is a 101-level vRealize Automation lab my team wrote last year. It’s available in the public catalog now.

At VMworld this year, my dream team and I will be pleased to release HOL-SDC-1632 (vRealize Automation Advanced: Integration and Extensibility) – our most advanced Automation lab ever. You won’t want to miss this one.

Big thanks go out to Burke Azbill (@TechnicalValues), Kim Delgado (@KCDAutomate), Shawn Kelly (@shawnmkelly), and Grant Orchard (@grantorchard) for making up 4/5 of the most collaborative, open-minded, hardest working HOL team in the whole company.

So head on over to the portal and register, follow @VMwareHOL on Twitter, or better yet – join us at VMworld 2015 and take a few labs in person with our expert staff!

Did I mention that the Labs are completely free? I think I might have.

VMware_Hands_On_Labs_Logo

A thank you to all my peers and customers

I’ve been with VMware for just about 18 months now. It’s been one of the most rewarding, challenging, utterly fantastic experiences of my life. We work hard – and we play almost as hard. I’ve taken great pride  in my work with my customers and with my peers throughout the company.

This past week, I received a call from my manager informing me that this work had been recognized and rewarded with a promotion from a Senior SE to a Staff SE. This is a real honor for me, and one that reminds me that while I may have come a long way, I still have a long way to go.

I’m also reminded that none of this would have been possible without all the great and honest feedback from my customers and the various teams throughout VMware that I work with every day. It’s with that that I send out a thank you to all my peers and customers for placing your trust in me. In return, you have my commitment that I will continue to provide the best possible service and support that I can!

Track_Seven_Panic_IPA

Of course, it wouldn’t be a complete post without some kind of celebratory beverage. This photo was taken at a local establishment just a few minutes after I received the good news. Track Seven’s Panic IPA is a stellar brew, made with Amarillo and Simcoe hops front and center, rather than the more common Citra and Cascade varieties. The result is a high-hop flavor (70 IBU) without the face-shredding pucker factor. Lots of citrus and floral notes explode with every sip. Don’t let the can fool you, this is a top-shelf local craft beer. Check out Track Seven next time you visit me in Sacramento!

Cheers, and thanks again.

Deploying vRealize Automation Workloads from Apple Watch

Like many people (although not as many as would have liked, I suppose,) I got my shiny new Apple Watch yesterday.

Once it was set up and on my wrist, the first thing I thought of was naturally “How can I use this with vRA?”

Naturally.

It didn’t take long to figure this one out. I don’t know how valuable it will be in the real world, but you have to admit – it sure is cool, particularly for showing the amazing flexibility of vRealize Automation.

Basically, we started with this. A simple button on the Apple Watch that starts a Workflow  which is then handed off to my iPhone.

Apple_Watch_Workflow_Red

Apple_Watch_Workflow_Screenshot

Workflow_Running_on_Apple_Watch
(Edit: I literally just this second learned how to screenshot on the Watch, so I have included both images. Just because)

The iPhone then connects via SSH to a Linux host running CloudClient and runs a deployment script I wrote

Workflow_Details_on_iPhone

The script is quite basic and is as follows:

#!/bin/sh
#
# Autodeploy a vRA item CentOS-vCO Test
echo "---------------------------------------------" >> vRA-Deploy.log
echo "Deployment started at" `date` >> vRA-Deploy.log
/root/cloudclient-3.2.0-2594179/bin/cloudclient.sh vra catalog request submit --id '"CentOS-vCO Test"' --groupid '"Ops Managers"' --reason '"Deployed via Apple Watch"' --export /tmp/request.txt >> vRA-Deploy.log
echo "Deployment handed off to vRA at" `date` >> vRA-Deploy.log
echo "---------------------------------------------" >> vRA-Deploy.log

This uses the auto-login configuration of CloudClient to connect to my vRealize Automation instance and deploy a simple CentOS blueprint from my catalog.

Cloud_Client_Log
(Click image for a larger version)

The details of the deployment come up in the vRA-Deploy.log file…

vRealize_Automation_Apple_Watch_Request_Successful

Deployed_Workload_in_vSphere

And voila! I’ve just provisioned a VM from my watch. The future is now, people.

Edit: 4/26/2015 – I just realized that the step of handing off the workflow from the Watch to the iPhone was unnecessary. The Watch can execute the SSH commands directly without the added handoff. I’ve updated the screenshots and the text accordingly. Cool!

vRA Live! – Session 2 – Extensibility

Shameless plug here for an upcoming community event that @virtualjad over at www.virtualjad.com will be hosting later this month – vRA Live! – Session 2 – Extensibility

The vRA Live sessions are meant to provide a live and real-time demonstration of the power of vRealize Automation, combined with an expert panel (including yours truly) who will host open discussion and Q&A while the magic happens. They are a lot of fun and incredibly informative.

Be sure to register in advance over at Jad’s blog (http://www.virtualjad.com/2015/04/vra-live-session-2-extensibility.html) – and we’ll see you there!

#vralive

vRealize Operations Manager Content Pack for Log Insight

Get ready, ops-heads… another exciting announcement from the VMware team. There’s now a formal content pack for Log Insight that will allow the import and visualization of the logs from vRealize Operations Manager 6.x.

As an added bonus, if you are running vROps 6.0.1 or later – the Log Insight agent is already pre-installed on your appliance – all you have to do is configure it! If you’re on an earlier version, you can still manually install and configure the agent. Instructions for doing that can be found here.

Given the incredible volume and depth of the data that’s being imported and analyzed by this  content pack, the configuration file is pretty complex. The official installation notes are in a PDF format that was a little difficult to copy and paste all the elements from, so I’ve created a properly formatted file and attached it below.

There are a few tags you will need to change to make this work – I’ve included the tag names as well as the current find-and-replace value below so you can easily tailor the file to your needs. When you’re done, just save it as /var/lib/loginsight-agent/liagent.ini on each node and restart the Log Insight agent (by running /etc/init.d/liagentd restart)

Here’s a helpful screenshot of where you can find several of these parameters for your cluster nodes. Keep in mind that if you have a multi-tier deployment, you will need to customize the below config file for each node.

vRealize_Operations_Manager_Cluster_Administration
(Click the image for a larger version)

Here are the paramters that need to be changed:

  • hostname – this is the IP or FQDN of your Log Insight server. Note that this only needs to be changed in the [server] section at the top of the file, and not throughout the entire file. Below,  it is set to <YOUR LOGINSIGHT HOSTNAME HERE>
  • vmw_vr_ops_clustername – this is the *name* of your vRealize Operations cluster. This can be anything you like here and can be used to distinguish one cluster from another if you have multiples. Below, it is <YOUR CLUSTER NAME HERE>
  • vmw_vr_ops_clusterrole – this is the role that the node you are installing this file on fills. The choices are “Master“, “Replica“, “Data“, or “Remote Collector” – on a single-node installation, use Master. Below, it is set to Master. This value can be found on the Administration > Cluster Management page in the vRealize Operations Manager UI (see above image)
  • vmw_vr_ops_hostname – this is the hostname of your vRealize Operations Manager cluster. This hostname can also be found on the Administration > Cluster Management page in the vRealize Operations Manager UI (see above image). Below, it is set to <YOUR VROPS HOSTNAME HERE>
  • vmw_vr_ops_nodename – this is the node name of the node you are installing this file on. This name can be found on the Administration > Cluster Management page in the vRealize Operations Manager UI (see above image). Below, it is set to <YOUR NODE NAME HERE>

And here’s the config file itself:

; Client-side configuration of VMware Log Insight Agent
; See liagent-effective.ini for the actual configuration used by VMware Log Insight Agent

[server]
; Log Insight server hostname or ip address
; If omitted the default value is LOGINSIGHT
hostname=<YOUR LOGINSIGHT HOSTNAME HERE>

; Set protocol to use:
; cfapi - Log Insight REST API
; syslog - Syslog protocol
; If omitted the default value is cfapi
;
;proto=cfapi

; Log Insight server port to connect to. If omitted the default value is:
; for syslog: 512
; for cfapi without ssl: 9000
; for cfapi with ssl: 9543
;port=9000

;ssl - enable/disable SSL. Applies to cfapi protocol only.
; Possible values are yes or no. If omitted the default value is no.
;ssl=no

; Time in minutes to force reconnection to the server
; If omitted the default value is 30
;reconnect=30

[storage]
;max_disk_buffer - max disk usage limit (data + logs) in MB:
; 100 - 2000 MB, default 200
;max_disk_buffer=200

[logging]
;debug_level - the level of debug messages to enable:
;   0 - no debug messages
;   1 - trace essential debug messages
;   2 - verbose debug messages (will have negative impact on performace)
;debug_level=0

[filelog|messages]
directory=/var/log
include=messages;messages.?

[filelog|syslog]
directory=/var/log
include=syslog;syslog.?

[filelog|ANALYTICS-analytics]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"ANALYTICS","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = analytics*.log*
exclude_fields=hostname

[filelog|COLLECTOR-collector]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"COLLECTOR","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = collector.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|COLLECTOR-collector_wrapper]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"COLLECTOR","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = collector-wrapper.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\.\d{3}

[filelog|COLLECTOR-collector_gc]
directory = /data/vcops/log
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"COLLECTOR","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
include = collector-gc*.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\w]\d{2}:\d{2}:\d{2}\.\d{3}

[filelog|WEB-web]
directory = /data/vcops/log
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"WEB","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
include = web*.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|GEMFIRE-gemfire]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"GEMFIRE","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = gemfire*.log*
exclude_fields=hostname

[filelog|VIEW_BRIDGE-view_bridge]
tags = {"vmw_vr_ops_appname":"vROps","vmw_vr_ops_logtype":"VIEW_BRIDGE","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = view-bridge*.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|VCOPS_BRIDGE-vcops_bridge]
tags = {"vmw_vr_ops_appname":"vROps","vmw_vr_ops_logtype":"VCOPS_BRIDGE","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = vcops-bridge*.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|SUITEAPI-api]
directory = /data/vcops/log
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"SUITEAPI","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
include = api.log*;http_api.log*;profiling_api.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|SUITEAPI-suite_api]
directory = /data/vcops/log/suite-api
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"SUITEAPI","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
include = *.log*
exclude_fields=hostname
event_marker=^\d{2}-\w{3}-\d{4}[\s]\d{2}:\d{2}:\d{2}\.\d{3}

[filelog|ADMIN_UI-admin_ui]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"ADMIN_UI","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/casa
include = *.log*;*_log*
exclude_fields=hostname

[filelog|CALL_STACK-call_stack]
tags = {"vmw_vr_ops_appname":"vROps","vmw_vr_ops_logtype":"CALL_STACK", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>","vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>","vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/callstack
include = analytics*.txt;collector*.txt
exclude_fields=hostname

[filelog|TOMCAT_WEBAPP-tomcat_webapp]
tags = {"vmw_vr_ops_appname":"vROps","vmw_vr_ops_logtype":"TOMCAT_WEBAPP","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/product-ui
include = *.log*;*_log*
exclude_fields=hostname

[filelog|OTHER-other1]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"OTHER","vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master","vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = aim*.log*;calltracer*.log*;casa.audit*.log*;distributed*.log*;hafailover*.log;his*.log*;installer*.log*;locktrace*.log*;opsapi*.log*;query-service-timer*.log*;queryprofile*.log*;vcopsConfigureRoles*.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3} 

[filelog|OTHER-other2]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"OTHER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = env-checker.log*
exclude_fields=hostname
event_marker=^\d{2}\D{1}\d{2}\D{1}\d{4}\s\d{2}:\d{2}:\d{2}

[filelog|OTHER-other3]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"OTHER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log
include = gfsh*.log*;HTTPPostAdapter*.log*;meta-gemfire*.log*;migration*.log*
exclude_fields=hostname

[filelog|OTHER-watchdog]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"OTHER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/vcops-watchdog
include = vcops-watchdog.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|ADAPTER-vmwareadapter]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"ADAPTER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/adapters/VMwareAdapter
include = *.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|ADAPTER-vcopsadapter]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"ADAPTER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/adapters/VCOpsAdapter
include = *.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

[filelog|ADAPTER-openapiadapter]
tags = {"vmw_vr_ops_appname":"vROps", "vmw_vr_ops_logtype":"ADAPTER", "vmw_vr_ops_clustername":"<YOUR CLUSTER NAME HERE>", "vmw_vr_ops_clusterrole":"Master", "vmw_vr_ops_nodename":"<YOUR NODE NAME HERE>", "vmw_vr_ops_hostname":"<YOUR VROPS HOSTNAME HERE>"}
directory = /data/vcops/log/adapters/OpenAPIAdapter
include = *.log*
exclude_fields=hostname
event_marker=^\d{4}-\d{2}-\d{2}[\s]\d{2}:\d{2}:\d{2}\,\d{3}

See what I mean about complex? And speaking of which… (come on, you had to know this was coming)

Today’s message has been brought to you by Talisman’s 2010 Adastra Vineyard Pinot Noir. The amazing folks at Talisman produce incredible small batch Pinot Noir from several vineyards across northern California. Their philosophy is to focus on the terroir of their fruit, so they produce every wine under precisely the same conditions – from crushing to aging to the oak in the barrels, everything is identical but the fruit itself. This allows the complexities afforded by each individual vineyard to really shine through. This is one of my favorites, with vanilla, dark fruit, spices and a nose that almost makes you forget to take a sip.

Talisman_2010_Adastra

Now. Once you’ve configured and restarted your Log Insight agents on the vRealize Operations Manager cluster nodes, all you have to do is import the Content Pack into Log Insight. It is available for direct download from the VMware Solution Exchange here, or you can install it directly from your Log Insight console by accessing the Content Pack Marketplace and selecting the VMware – vR Ops 6.x Content Pack.

Content_Pack_Marketplace

When that’s  complete, you’re ready to start leveraging the 12 Dashboard Groups, 81 Dashboard Widgets, 18 Queries, 8 Alerts and 31 Extracted Fields that this content pack exposes to you. Check it out!

Log_Insight_vRealize_Operations_Dashboards
(Click the image for a larger version)

It’s also worth noting that if you had previously configured vROps 6.0.x to send its logs to Log Insight directly by editing the logger configuration, you should now undo this configuration. Leaving it in place will result in some logs being sent to Log Insight twice, and may even confuse the content pack.

vRealize_Operations_Edit_Logger_Configuration

Cheers, and happy analyzing!

Extending vRealize Operations Actions with the vRealize Orchestrator Solution and Workflow Package

When vRealize Operations Management 6.0 was released, VMware increased the flexibility afforded to administrators by adding the concepts of symptoms, recommendations and actions to the product. As you might expect, symptoms are thresholds or characteristics that define when a problem may have occurred or additional guidance may be needed. Recommendations are a customizable way to define what that additional guidance might be – and actions allow you to automate and carry out that guidance.

Since then, one of the most frequent questions from my customers has been “When will we be able to use vRealize Orchestrator for these?”

I’m pleased to report that VMware has now enabled that capability via the vRealize Orchestrator Solution and Workflow Package for vRealize Operations. This package is available at the VMware Solution Exchange right now, and the purpose of this post is to guide you through the installation and configuration of it. The package adds many frequently-requested workflows, including:

  • Decommission a Host
  • Place a Host into Maintenance Mode
  • Perform a Power Off or Reboot on a Host
  • Manage VM or VM Group Snapshots
  • Migrate a VM or VM Group
  • Power Off, Power On or Reboot a VM or VM Group
  • Reconfigure a VM or VM Group (CPU and Memory settings)
  • Upgrade the VMware Tools for a VM or VM Group

Clicking the links above will bring you to the Solution Exchange portal where you can read more about and download the package. Click the blue “Try” button to initiate the download.

VSX_Download_vRealize_Orchestrator_Solution_and_Workflows_for_vRealize_Operations

Once you have downloaded and extracted the ZIP file, it’s time to start the installation. The first thing you’ll want to do is ensure that both your vRealize Orchestrator and vRealize Operations Manager are registered to the same vCenter instance. This can be done by comparing the data shown in the two screenshots below.

Validate_vRealize_Operations_vCenter_Connection

Validate _vRealize_Orchestrator_vCenter_Connection

As you can see above, both systems are taking to the same vCenter. We’re ready to begin!

First, you will need to import the Workflow package into your vRealize Orchestrator instance. Start by logging in to the Orchestrator Client.

Log_Into_vRealize_Orchestrator

Ensure that your client view is set to Administer

Switch_to_Administrator_View

Then, click on the Import Package button in the upper left of the right-hand panel.

Import_vRealize_Orchestrator_Package

Select the Remediation Actions Package (default filename is com.vmware.vrops.remediationactionsall-v15.package) and select Open

Select_Package_to_Import

You will be prompted to verify the software signature. Continue by selecting Import

Accept_Package_Signature

vRealize Orchestrator will then present you with a list of all of the new and changed elements that this package import will affect. No changes here are necessary, simply continue by clicking Import Selected Elements

Import_vRealize_Orchestrator_Package_Elements

Once the import completes, you will be able to view the new workflows. Click the Workflows tab to verify that there’s a whole bunch of new vRealize Operations Manager goodness present.

View_Imported_Workflows

You can also verify that the new workflows are present by switching back to the Run view, clicking the Workflows tab and expanding the new vRealize Operations Manager folder. You can see I already have a ton of great workflows by my friends Eric at Cloud Relevant and Sid at Daily Hypervisor in here.

Switch_to_Run_View_and_View_New_Workflows

That’s it for the vRealize Orchestrator side of things. Now you will need to switch over to your vRealize Operations Manager portal. Log in as a user with appropriate rights to add/update solutions. An admin user will work nicely.

Click on the Administration button, followed by the Solutions section. Then, click the Green + to add a new solution.

Import_New_vRealize_Operations_Solution

Select the solution file using the Browse button and click Upload. Once the upload completes and the PAK file has been verified, click Next to proceed with the installation.

Select_Solution_PAK

Accept the EULA and click Next again. Wait for the installation to complete, then select Finish

Complete_Solution_Installation

You can now verify that your new solution is installed by locating the vRealize Orchestrator Actions Adapter in the solutions list. Note that you may have to scroll down to find it, if you have several solutions installed. You may also notice that the adapter instance is not yet configured. Let’s tackle that next!

Verify_New_Solution_is_Installed

To configure the adapter instance, ensure that the vRealize Orchestrator Actions Adapter is still selected, then click the Gears icon at the top, next to the Green + we clicked a few steps back.

Give your new adapter a name, and enter the IP or hostname of your vRealize Orchestrator instance. Be sure to use the same Orchestrator instance as we verified at the beginning of this process. Click the Green + to add credentials for the instance.

Configure_New_vRealize_Operations_Solution

Enter your credentials and click OK

Add_New_Credential

Next, click Test Connection. You may be presented with a certificate warning – click OK if you trust the certificate, and then your test should be successful!

Accept_vRealize_Orchestrator_Certificate

Solution_Test_Successful

Save your new adapter by clicking Save Settings and finally Close the configuration dialog.

That’s it for the installation! You can verify that the new actions are present by clicking on the Content tab inside vRealize Operations and selecting Actions from the list on the left. If all went well, you should see the 8 new actions present. These can now be combined with symptoms and recommendations to unlock many new possibilities for remediation inside your environment.

View_New_Available_Actions
(Click for larger image)

Since it’s not even 9am yet, today’s post will be brought to you by the Zesty Bacon Bloody Mary from the Boon Fly Cafe in Napa, CA. This exceptional libation combines top-shelf Vodka with Boon Fly’s own special spice blend, a celery salt rim and a massive slab of applewood smoked bacon to top it all off. Paired with Boon Fly’s fresh made donuts, it’s the best breakfast in the valley. Bloody Marys also have the (dubious?) honor of being the drink that’s OK to have first thing in the morning. After all, you’re not an alcoholic, you’re just a little tired.

Bacon_Bloody_Mary_Boon_Fly_Cafe

I hope this guide has proved useful and that you have a chance to head out to Boon Fly and try their delicious concoctions.

 

Important – vRealize Automation VAMI authentication issue when upgrading to 6.2.1

For those of you who will be upgrading your vRealize Automation appliance to 6.2.1 now that the new version is available, please be aware of an issue that you may encounter.

After upgrading your appliance to 6.2.1 via the VAMI and rebooting, you may find that you are unable to authenticate to the VAMI as ‘root’.

This can be fixed by logging in to the vRA Appliance from the console (as root – this account is unaffected) and running the following command:

chage -M 99999 root

This will reset the expired root password account and allow you to authenticate to the appliance VAMI interface again.

Alternatively, you could change the root password to reset the expiration.

Sorry, no wine content on this one – it’s WAY too early. This message pairs nicely with a cup of coffee.

Happy automating!

 

Reflections on my first year at VMware

January 2015 marks the 1-year anniversary of when I started my time with VMware. I thought it would be fitting to spend some time reflecting on what has undoubtedly been the most exciting, challenging and satisfying year of my life.

So where to start? I guess the most appropriate and impressive place would be with the people.

I’ve had a lot of jobs in a lot of sectors, at both ends of the country. From east coast startups and higher education to west coast DoD contracts, I’ve met and worked with all kinds of people. And it’s very safe to say that the people are what make VMware really special. I’ve never had the pleasure of working with a more intelligent, innovative, friendly, helpful or welcoming group of people. And VMware as a company goes to great lengths to foster that – they invest so heavily in us; as employees, as citizens and as individuals. The emphasis on charitable works and giving back to our communities are unlike anything I’ve ever seen before. It’s amazing and wonderful, and it’s the one thing I wouldn’t trade about this company for anything.

I was also more than a little apprehensive about the total transformation that my life would undergo in order to accept this new job. I was so used to working in cube farms -, could I really make the leap from operations and management of large scale datacenters to working from home and meeting with customers all the time? This was another way that VMware’s people really made a difference. I was fortunate enough to be hired by one of the best managers in the company and join a pretty elite team, all of whom were as eager and pleased as could be to mentor me through that transition. I have been on various kinds of “teams” before, but had apparently never experienced the true meaning of the word. Maybe I should have played more sports… Nah.

The next most amazing thing about this company would have to be the incredible pace and quality of innovation that we produce daily. Some of the most talented developers, engineers and strategists on the planet work for VMware – and I think the reason is that creativity and daring is fostered and even encouraged. Nobody is afraid to take a risk and it shows – just look at the unprecedented growth that the company has experienced over the past few years. The ESX hypervisor revolutionized the way that the industry thought about computing and infrastructure, and in a relatively short period for such a revolutionary shift. Now VMware is tackling the same transformation in so many other areas of the datacenter – networking and security through the NSX product, enterprise mobility through AirWatch, and homogeneous hybridity through the vCloud Air and newly-announced vCloud Government Services.

Finally, I love my customers. I never get tired of interacting with them. Each and every one has a unique story to tell and a unique set of problems that need solving. I get to travel the country and help all of these amazing organizations identify the barriers that are holding them back, then realize the benefits that VMware’s solutions have to offer. It’s one of the most wonderful and truly win-win situations I’ve ever encountered; my customers overcome the hurdles holding them back and transform their businesses, all while saving money. VMware, in turn, gets to keep on being the fastest-growing software company ever and continue producing incredible advances in IT. And I get to have a blast doing it. It’s genuinely a job I can feel good about. It’s fascinating, terrifying, challenging, and most of all fun.

That pretty much sums up my impressions after the first year. I’m looking forward to many, many more – we have so much potential and so many amazing new horizons to cross that the future’s never seemed brighter, not even to Corey Hart.

Incidentally, this bout of lucidity was brought to you by a velvety 2010 Suisun Valley Petit Sirah from Mangels Vineyards. This inky-dark wine has a big, bold mouth feel with tons of fruit on the pallet and a finish that seems to go on forever.  The Suisun Valley is a scrappy young appellation that produces some incredible and somewhat undervalued fruit, one which has the potential to be an increasingly major player over the coming years. I could draw an obvious comparison between enology and the software industry right now, but again… Nah. You got this.

Mangels Vineyards 2010 Petit Sirah

Here’s to the future.

Monitoring vRealize Automation with vRealize Operations and Hyperic

Have you ever deployed vRealize Automation? If so, then you know that it has a highly complex architecture, made up of dozens of individual components – and has historically been a bit of a hassle to properly monitor.

That said, there’s good news for administrators who have both the vRealize Automation and the vRealize Operations Advanced edition  – VMware has released a brand-new way to integrate the two, via the vRealize Automation Management Pack.  This new management pack brings detailed  application-aware monitoring of the full architecture of vRealize Automation, and includes a set of plugins for vRealize Hyperic as well as an updated vRealize Operations Management Pack for Hyperic. With the helo of this management pack and set of plugins, users gain the following capabilities:

  • vRealize Hyperic platform service monitoring for vRealize Automation related services
  • An inventory tree object in vRealize Operations Manager specifically tailored to vRealize Automation
  • A set of pre-defined symptoms, alerts, and recommendations for vRealize Operations specifically revolving around vRealize Automation monitoring

Before diving into implementation details, here are a couple of quick screenshots of what you can expect after deploying the new management pack and plugins.

vRealize Automation Environment View in vRealize Operations
(Click the above image for a larger version)

 

vRealize Automation Inventory Tree View in vRealize Operations

As you can see, it monitors the following high-level capabilities and their sub components :

  • vRealize Automation Appliance
  • vRealize Automation Infrastructure-as-a-Service (IaaS) Server
  • vRealize Business (Formerly ITBM) Appliance
  • vSphere Single Sign-On (SSO)
  • vRealize Orchestrator

Here’s today’s obligatory wine tie-in. Given to a friend when he departed the employ of Viansa, this bottle of 2005 Ossidiana was signed by his friends and co-workers from all aspects of the winery. It’s also a finely blended Bordeaux – representing the perfect marriage of the 5 noble French grapes. The blend is proprietary and not disclosed, but it was clearly more than a little Cab. All sorts of grapes, styles, workers, techniques and technology coming together to produce one harmonious and easily enjoyable product. Can you see why I was reminded of this exciting new marriage of Automation and Management when we opened this bottle last night?

IMG_4734

All that aside, let’s get into some of the nuts and bolts of implementing this new connection.

First, we must assume that you have functioning instances of vRealize Automation 6.1 or above, vRealize Operations Manager 6.0 or above and vRealize Hyperic deployed. Getting all of those up and running in your environment is outside the scope of this article. You will also need Hyperic agents deployed to all of the appliances and servers involved in the vRealize Automation  stack. These can include (but are not limited  to):

  • vSphere SSO
  • vRealize Automation Appliance
  • vRealize Orchestrator Appliance
  • vRealize Business Appliance
  • vRealize Automation Infrastructure-as-a-Service (IaaS) Server
  • Any additional Distributed Execution Managers (DEM)
  • External vRealize Automation IaaS Database Servers

Deploying these agents is also outside the scope of this article. Look for a forthcoming post on getting the agents onto the VMware appliances.

From there, you will log into your vRealize Hyperic server as an administrator with the rights to install plugins. Select the Administration tab and the Plugin Manager link.

Now, if you are currently running vRealize Hyperic 5.8.4, you may see some existing custom vRealize XML Plugins already present in the environment. These need to be removed first, and look like the following. If you don’t see these plugins, skip this step.

vRealize Hyperic XML Plugins for vRealize Monitoring
(Click the above image for a larger version)

To delete them, simply select the Checkbox to the left of each plugin and select Delete Selected Plugin(s) from the bottom left corner. This may take some time to complete.

Now click the Add/Update Plugin(s) button in the lower right corner and upload the two new .JAR plugin files.

After that’s complete, you should see something like the following image. Notice the two new custom JAR plugins, highlighted in red.

vRealize Hyperic JAR Plugins for vRealize Automation
(Click the above image for a larger version)

Now, switch over to your vRealize Operations console. Log in with a user who has the administrative rights to update solutions. Navigate to the Administration tab and select Solutions from the navigation pane. Click the Green + (Add) in the upper left corner of the solutions pane. Follow the wizard that is produced to install or update the solution.

vRealize Operations Solutions

If you already had the vRealize Hyperic solution installed and working, you’re done with this part! If this is your first time installing the solution, you will need to configure the adapter instance. To do so, highlight the vRrealize Hyperic solution and click on the Gears icon in the upper left. Fill in the requested details about your vRealize Hyperic server as seen here, of course using your own settings. Test and save the settings.

vRealize Hyperic Adapter Configuration

Now all you need to do is wait for vRealize Hyperic to auto-discover your new services. Check your Hyperic dashboard after a few minutes and import them; after a few more minutes they will start appearing in your vRealize Operations Manager.

You can confirm which vRealize Hyperic metrics are flowing into vRealize Operations by logging into it with an administrative account, then navigating to the Administration tab and Environment Overview. Expand the Adapter Instances and then your Hyperic Adapter Instance. You will see the name of the Hyperic instance that you configured in the last step – select it and view the related metrics.

vRealize Operations Manager Environment Overview
(Click the above image for a larger version)

That’s all there is to it – now you can navigate to your vRealize Operations Content tab and view the vRealize Automation inventory tree.

vRealize Operations Inventory Trees

From here you can explore the related tabs – environment, analysis, troubleshooting, etc – and begin leveraging the wealth of new metrics at your fingertips.

The new vRealize Operations and vRealize Hyperic integration packs can be downloaded from the VMware Solutions Exchange here and here.

Enjoy!

You can also see this article cross-posted on the VMware Management Blog at http://blogs.vmware.com/management/2015/02/monitoring-vrealize-automation-vrealize-operations-vrealize-hyperic.html