In terms of provisions to new providers (VMware, AWS, Openstack, etc) I take the following steps.
Provision “manually”. I.E. use Compute > Infra/Cloud > VM/Instance > Lifecycle > Provison. Make selections (keep it simple) for each tab as need be and submit.
Tail the logs, as you hit submit. This shows you the various phases of the provision and where they live in automate. From there you decide which one(s) you need to copy and edit to your custom domain.
Once you have a successful “manual” provision. Create a basic Service Dialog, Service Catalog and Catalog Item to replace the “manual” provision. Again tail logs to see how the flow works. Now you have a form based, static automation of the provision.
From here you’ll use automate and ruby to customise the provision as need be (replacing the static nature of the initial catalog item).
Also get Objectwalker & Reader up and running.
Ruby rails knowledge isn’t really required.
In your case you could:
Have VM size selection as a drop down list created in the Service Dialog.
Insert Infoblox calls at / Infrastructure / VM / Provisioning / StateMachines / VMProvision_VM / template statemachine
Hope this helps.