I think this may be the highest requested post I’ve had so far. After creating the Dynamic deployment of the App Authoring Agent (AAA for the rest of this post) on Linux using SSH, the demand for a windows, or more importantly combined solution was flooding my inbox.
Quick DISCLAIMER based on internal tests by colleagues this works well but does open up two key points.
- You must have access to port 5480 on your vRA Virtual Appliance from the guest operating systems that you are planning to use.
- This also requires that if you are using in a load balanced vRA Virtual Appliance environment that you will need to choose a single VA to pull the agent installs from.
As you might imagine windows was a bit more difficult to over come the remote execution and had a number of manual steps. If you haven’t checked it out yet I highly recommend you take a look at my automation script remove the need for those manual steps. That automation script is what enabled me to complete this post!
So let’s get the pre-req/assumptions out of the way.
- First you must be running vRA 7
- The supported windows version with the script is 2012 R2 only
- Have a working knowledge of vRO and how to import packages
- Internet access for your guests and vRA (the scripts used actually pull down the latest ps1 script)
- This guide already has way too many screenshots so I expect you can check boxes, click next, click finish, and entitle catalog items
Step 1. Download and Import the following package into your vRO environment
This includes both my ExtendingClouds workflows as well as the Guest Script Manager package that we use to execute our scripts inside the guests. I highly recommend using this instead of the standard run program in guest workflows.
Step 2. Log into vRO and expand Extendingclouds Examples -> helpers
Edit the GSM – Linux workflow
Step 3. In the General tab
Edit the vmUsername and vmPassword
Step 4. Repeat steps 2 and 3 for the GSM – Windows extendingclouds workflow
Edit the GSM – Windows workflow
Step 5. In the General tab
Edit the vmUsername and vmPassword
Step 6. Edit the AAA onBuildSuccess workflow
Step 7. In the General tab
Verify the linScriptConfigurationResource points to the AAA for Linux
Verify the winScriptConfigurationResource points to the AAA for Windows
Step 8. Go to the Schema tab
Edit the logic scriptable task
Step 9. Go to the Scripting tab
Alter the password variable
The agent uses a service user to initiate the bootstrap service. This user is named darwin and this variable will define the password for that service user.
We have now completed all of the tasks in vRA, time to jump into vRA with a privledged user.
Step 10. Go to Administration -> Property Dictionary
Step 11. Property Groups -> Add New
Step 12. Assign a name (id will be auto populated)
We will have to create 3 new entries, none of which should be overridable.
custom.appliance.fqdn with a value of your fully qualified vRA Appliance
custom.iaas.fqdn with a value of your IaaS/Model Manager windows server
Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.VMPSMasterWorkflow32 with a value of *
The last one is needed to pass these properties to vRA for the logic to execute during the onBuildSuccess event.
Step 13. Go to design tab
Select your blueprint and copy
Step 14. Enter the new name you would like for this blueprint
Step 15. Properties -> Property Groups -> + New
Step 16. Select the Group you created in Step 12
Step 17. Go to Custom Properties
custom.os with a value of linux or windows and not overridable
Step 18. Drag software component onto your OS, if you don’t have a software component defined yet just go check out the sample exchange
This is our growing community driven place where you can download and upload content like blueprints.
Step 19. Don’t forget to Publish
Step 20. Go to Administration -> Events
Step 21. Subscriptions -> +New
Step 22. Select Machine provisioning
Step 23. Select Run based on conditions
All of the following
Expand Data->Lifecycle state-> Select Lifecycle state event
Step 25. Select VMPSMasterWorkflow32.VMPSMasterWorkflow32.EVENT.onBuildSuccess
Step 26. Add a condition
Type out in the text field data~machine~properties~agent.download.url
This looks for the specific property, which is only available when a software component is present on the request.
Check the green check mark to apply
Step 28. Enter http in the text field.
The url always contains an http if that property is defined
Step 29. Select the AAA onBuildSuccess workflow
Step 30. Check the Blocking box and set a timeout of 20 minutes
Step 31. Don’t forget to Publish
With this complete you can utilize any software component and you won’t need to maintain any separate template in vCenter. Welcome to the nirvana that vRA 7 and EB have opened up!
If you would like to see exactly how I built this out I’ve got a step by step video available here.
Hi Gary, thanks a lot for such detailed documentation on this topic. I have found your previous blogs very useful as well. One quick question that I have is – does this install the Guest Agent as well or do we still have to install the that initially on the Windows template. Thanks,
This will download and install both the gugent (guest agent) and the software components agents.
The download link you provide seems to point to an older linux-only version of the workflow. Can you post a link to the version as shown in the screenshots above?
Justin, Try now. I’ve updated the package in sample exchange. If it still doesn’t work use this link.
Great post, Gary. Thx..
Just reviewing the logic of this now and without a bit of reverse-engineering, am wondering if there was an easy way to introduce or configure the script to simply use a locally available copy of the “prepare_vra_template.ps1” file?
The issue I have is none of the Guest Machines have internet access which conflicts with your pre-req statement, “Internet access for your guests and vRA (the scripts used actually pull down the latest ps1 script)”.
Apologize if this is covered off somewhere else..like I said…just reviewing this now..
No worries, check this post out. https://extendingclouds.com/vrealize-automation-7-agent-install-wizard-for-7-0-thru-7-1/
Would you be able to elaborate on your statement:
2.This also requires that if you are using in a load balanced vRA Virtual Appliance environment that you will need to choose a single VA to pull the agent installs from
Why bypass the NLB?
When this was created there was still the limitation of the agents and their inability to support the LB methods. I can’t say it if it works under the latest vRA architecture as the agent deployment may have changed.
Thanks for the clarification.
What was the limitation?