Basically we want to automate virtual machine creation from ISO. As in one of our project we get custom ISO (appliances with application pre-installed in OS) released from time to time. So we need to use these ISO for further testing or setting up development environments. So we are looking for an automated deployment tools through which we can create VM on Esxi hosts. The use case is given below

  1. We get new ISO and say uploaded in datastore location.
  2. Now using some tool like chef or puppet (or some other tool) we trigger pro-vising of VM.

We can't have predefined VMDK or OVFA (as some tutorial talk about them) as every new ISO will have some new changes so it like always creating a new VM as we may need to create some older version appliance machine for some issues.

So any thoughts how I can achive the same.

  • Is this ISO a LiveCD, installer, or something else? What OS is the end product going to be on? – Zypher May 7 '14 at 18:51
  • No this ISO is not a LiveCD. But its a minimal CentOS images (customized to have custom applications pre-installed). So it complete OS with the application a sort of appliance. So you can install OS and then reboot the machine and it will out off box without any configurations required. Its more like a custom spin of CentOS. – Abhinav May 7 '14 at 19:00

'scuse me but that doesn't make sense. You say that your software provider can't deliver an OVF/OVA "as every new ISO will have some new changes". Every new OVF/OVA they deliver to you would have this changes, too.

If you really want to accept ISOs and create new VMs every time there's a lot of ways. You want to automate the creation of a VM + mapping an installation ISO to it, right? Well, you can script it (afair there's official support to do this with java, power shell, perl, ruby and python but you can generate your own client by using the API-WSDL) or you make use of vCenter Orchestrator.

edit: libvirt/virsh could also work.

  • Basically we are the developer and provider of software. The reason for looking to automate VM creation and other stuff is to do a automate testing before releasing to GA. So we have multiple platforms which need to be tested so we were looking for some framework which can do this. – Abhinav May 24 '14 at 9:41
  • What do you mean with multiple platforms? Multiple hypervisors? Because you can't be talking about multiple OSes as you state your ISO is a "minimal CentOS". If your basic CentOS is always the same, you can work with templates. That is, install your basic CentOS once to a virtual machine, make it a template and then deploy new VMs from this template and deploy you SW. This would be easier to automate than creating a new VM and then install from an ISO. (Btw: Have you thought about PXE?) – Mario Lenz May 25 '14 at 20:50
  • Seems I have created some confusion. Let me clear it I have a one host on which ESXI server is running. Now by multiple platforms I mean different OS i.e. say CentOS, Window 7, Window 2008 server R2 etc. As the product on which we are working come out for different OS. SO for Linux we have custom CentOS which contain our application etc. then for Windows we have installers for the application. So we are looking for a solution where I can create VM for such cases on same host through some scripts. I don't to have OVA as there can be interdependence of applications and automation can fail. – Abhinav May 26 '14 at 6:25
  • As I've already said: There's no out-of-the-box solution I am aware of. If you're fine with scripting the necessary tasks remotely I've offered several solutions in my answer. If you want to do it locally on the host: 1) don't 2) google for: esxi create vm command line – Mario Lenz May 26 '14 at 17:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.