1. A method comprising: receiving, through a first interface, by a processing device, a rule for execution by a rules engine; providing, by the processing device, the rule to the rules engine; receiving a request to provision a virtual machine (VM) having VM attributes; providing, by the processing device, metrics of a plurality of physical hosts to the rules engine and the VM attributes to the rules engine; receiving, from the rules engine, an identification of one or more prioritized physical hosts of the plurality of physical hosts; and provisioning, by the processing device, the VM on one of the one or more prioritized physical hosts.