Methods, systems, and computer programs for creating virtual machines (VM) and associated networks in a virtual infrastructure are presented. The method defines
virtual network templates in a
database, where each
virtual network template includes network specifications. A configuration of a virtual
system is created, which includes VMs, virtual lab networks associated with
virtual network templates, and connections from the VMs to the virtual lab networks. Further, the configuration is deployed in the virtual infrastructure resulting in a deployed configuration. The deployment of the configuration includes instantiating in the virtual infrastructure the VMs of the configuration, instantiating in the virtual infrastructure the virtual lab networks, retrieving information from the
database, and creating and executing
programming instructions for the VMs. The
database information includes the network specifications from the virtual network templates associated with the virtual lab networks, and network resources for the virtual lab networks from a
pool of available network resources. The
programming instructions are created for the particular Guest
Operating System (GOS) running in each VM based on the GOS and on the retrieved database information. When executed in the corresponding VM GOS, the
programming instructions configure the VMs network interfaces with the corresponding network specifications.