I searched and couldn't find a question quite like the one I'm asking here. If I missed it, please point me to it.
I am a novice with vCAC (6.1) and vCO (5.5), and I am wondering what approach is considered a "best practice" for doing things like installing management agents on newly provisioned (via cloning) VMs. There seems to be 2 general approaches: 1) Use the vCAC Guest Agent, and 2) Run vCO workflow(s) in the MachineProvisioned workflow stub. Other than just subjective preferences, what are the reasons you would choose approach 1 over approach 2 (or vice versa)? Thanks!
I went down the road with vCO workflows for a few different reasons (I may or may not have covered this in my session at VMworld -- don't recall):
1) Easier to test / debug: I can compartmentalize whatever I want and test individual components before rolling them up into a bigger workflow and testing end-to-end
2) Better error handling / reporting: I can log out errors to the workflow and I can even provide a list of things that didn't output correct messages during the process to get sent as part of the notification (I do all of that through vCO)
3) One less agent / "thing" I have to worry about supporting / working with
4) I have multiple vCAC environments, but maintain a single set of templates across the board... see #3
Those are the big ones. I use the Guest script manager package heavily; it made things a lot easier.
In our case we do a hand off using vCO and a SQL Server "Job Status" database/table to communicate with BladeLogic. We then use existing BladeLogic jobs for deployment and configuration of our agent software. While slightly more complicated, it allows for us to reuse existing packages that we deploy to our physical servers and non-vCAC VMs.
As a follow-on question, is it common to install management agents and similar apps using the Run Once commands in vCenter Guest Customization Specifications instead of the 2 techniques I proposed in my original post? If so, are there pros or cons relative to the 2 original technques? Thanks!
Nope. What I discovered about using Run Once via sysprep (through the customization spec or just good ole sysprep) is that it doesn't actually execute until somebody logs in.. That isn't the behavior I wanted, which was why I went down the road with building the workflows leveraging the guest script manager.
This post is actually making me question this myself as I am just starting out. If you want to use Vmware customization for Windows to IP/Name/Join domain the agent does have to be on there correct? In addition to that you can also do other things with VCO workflows as well as the VM customization right?
Nope. If you're using vCenter Customization Specs, the agent is not required. The only thing you need the agent for is if you want to use it to install software after the fact or format disks through the agent.
As I indicated in my original post in the thread, I built out vCO workflows to take care of all of that once vCenter customization completes and vCAC transitions the VM into the MachineProvisioned state.
No, we don't. That would, conceivably, solve it.. but, I don't know how that would play with other things we're doing. Honestly, for installation of agents, etc.. I like being able to validate the output of commands and see that everything fired the way I anticipated... that way, if something fails for whatever reason, notifications are sent out. Can't get that from a run once.