How to automate installing an ISO in a VM?
If you're into RHEL you could look into running oVirt ( https://ovirt.org/ ). This will enable you to manage host machines, VMs and virtually anything in between through Ansible. 

What you need is oVirt on top of CentOS or similar, on a baremetal machine. This/these machine(s) will host your new VMs and your so-called Hosted Engine (i.e. the oVirt virtualization management engine run from within a VM running on the hosts themselves to ensure high availability and flexibility), and then you just need Ansible and the oVirt Python SDK.

Once you have this, it's "as simple as" creating Ansible playbooks and using the oVirt Ansible modules https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html#ovirt