Zeroeth rule of Domain Controllers: always have at least 2 domain controllers!
First rule of Domain Controllers: don't install anything on a domain controller besides the roles to support Active Directory, antivirus and the client for your network monitoring software. This server should not serve any purpose other than being a Domain Controller. (There is a valid argument for hosting some services such as DHCP (small businesses or satellite offices) and KMS, but anything else is probably a bad idea.)
Second rule of Domain Controllers: do not virtualize all of your domain controllers. You should have at least one physical domain controller. If you run in to problems with a virtualization host server, you'll need a domain controller around to be able to log in. And Windows Failover Clustering (generally) requires a domain controller to be present to start up.
Applying the above to your situation: having the domain controller also act as the virtulization host definitely violates the first rule, and possibly the second.
Obviously if this is a test environment where you don't mind the whole thing coming down in flames all around you, feel free to ignore this advice.