Во-первых, разделите 2 логические части: построение архитектуры системы и физическая реализация.
Например, архитектура может быть основана на hudson: один сервер запускает hudson, а hudson управляет сборками на любом количестве других серверов (под управлением любых операционных систем, которые могут вам понадобиться).
Теперь не имеет значения, если у вас несколько компьютеров, работающих под одной ОС, или все виртуализировано, или сочетание обоих.
Для физической реализации я бы порекомендовал полную виртуализацию: у нее есть несколько плюсов, а список минусов в основном один пункт - снижение производительности.