How to automate installing an ISO in a VM? We're trying to develop CI/CD processes to automate testing and installing our builds. Ya know, as one does in DevOps.

The end result of our build process are ISOs that use Red Hat Kickstart to install RHEL + our software. Today we burn the ISOs to DVD and install them on bare metal hardware. I would like to some how install and test these ISOs on virtual machines as part of our CI process. Something like:


Push commit to GitLab.
GitLab CI process runs.
Generates an ISO.
Creates a half dozen VMs via Ansible/Vagrant/something else??
Installs ISO in each VM.
Runs a smoke test on each VM to verify that it boots and our software runs.


I'm not really sure how to do 4, 5, and 6. What tools should we be using? Welcome any tips or advice... even just names of automation tools to look into.
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