How to automate multiple servers set up on virtual machine?

I’m fairly new to Linux, VM’s and its automation. I’m using VMware Fusion and I want to provision Fedora server on it. When I do it with a single instance it’s rather straight forward, just fire up VMware, select ISO image, then set up the hostname and static IP once the machine is up and running. But what if I’d like to set up multiple instances, which would only differ in a hostname and an IP address (assuming I want them to have static IP) and the rest (like users, default software, keys) is the same? I know there are tools like Ansible and Terraform but from what I understand, those require network to be already set up.
How is this achieved in a professional world? What tools are needed? Does this require some specific hypervisor that allows provisioning multiple instances at once?

Right now the only thing that comes to my mind is manual basic set up (e.g. for network), and then the rest with Ansible. This is fine if I have 2 or 3 instances, but what if I want to set up 100 of them?