Ok. We have to run some jobs using VM's controlled on a real PC (Well, a VM on a real PC, not a VMware ESXi vCenter/vSphere host server setup). All the bits and pieces seem to be there to do this, but no method (and no plugins) to put it all together.
We have Jenkins running on "MyJenkins".
We have VMware Workstation running on "MyVMWorkstation"
We have VM's as MyVM1 and MyVM2 (controlled by VMware Workstation on "MyVMWorkstation")
I'm guessing that maybe this becomes a pipeline thing? But not sure how to do it? I know that several years back, VMware removed the ability of vSphere to connect to and control Workstation via the Gateway app. :-(
We can launch a VM on MyVMWorkstation with a vmrun command line (and do it remotely!). Such as PsExec \\MyVMWorksation vmrun start MyVM1 Works a charm. (Well, actually some credential mess to deal with, but I've got that handled).
When the VM launches, it will connect to Jenkins
What I need Jenkins to do when it detects a job is ready to run:
Send the command as above to MyVMWorkstation to launch MyVM1
Wait for MyVM1 to launch (ie: javaws says "Hey, I'm connected and ready")
Run the job on MyVM1 - just like a normal vSphere setup
When the job is done, execute the original command with "stop" instead of "start" (and actually a restore snapshot command as well)
How do I chain all this together? It involves sending commands to essentially two "computers" in sequence to make this work.