vRA 7.0: Software components vs. guest agent for guest configuration

vRA 7.0 new software components bring new possibilities, even for basic IaaS provisioning. We can now use the software components to configure guest and deploy agents with an all new level of automation and ease of use.

Here is a rapid comparaison of what and how you can configure your IaaS guest OS between leveraging the traditional guest agent and the new software components:

  • Required edition

Guest agent : Any vRA edition
Software components : Only with vRA enterprise edition

  • Passing custom properties from the request

Guest agent : using command line parameters in the custom properties (using {property_name} or reading the workitem.xml within the guest.
Software components : Variables in the script will be replaced by their actul values before the script runs. Any of those variables can be binded to custom properties from another blueprint component (usign [component_name]~[property_name] for binding)

  • Managing reboots

Guest agent: You can reboot between scripts, the guest agent will continue to run at the reboot and go to the next step. managing reboot need to be handled from within the script.
Software components: Reboot are handled automatically by software components on each step of the deployments. You just have to tick a checkbox.

  • Error handling

Guest agent : None out of the box. You can build one using a simple machine shutdown if something fails: vRA will timeout and destroy that machine
Software components : Any script that exits with something else than 0 will be considered as failed and the deployment will be canceled.

  • Logging

Guest agent : None out of the box.
Software components : Standard output of all script are accessible through vRA UI directly. Those log are kept even in case of failure making script debugging way easier than with the guest agent.

To summarize software component are way more powerfull and easy to use than the guest agent. Those two options are also exclusive fron each other: If you are using software components in your blueprint, vRA will not honor the VirtualMachine.Admin.SoftwareN.[Name|ScriptPath] directive. In fact software components are launched in the guest using the VirtualMachine.Software0.ScriptPath property.

Another intersting fact is that even if you do not specify VirtualMachine.Admin.UseGuestAgent software components will run on the guest BUT guest agent basic action like formating and mounting disks will not take place. So you still need to specify VirtualMachine.Admin.UseGuestAgent=true in a property group attached to all blueprints that will leverage software component or guest agent.

The next post will cover common examples using software components to customize guest.

Leave a Reply