Хм. Вообще не вижу проблемы хотя бы я заменил виртуализацию на Hyper-V.
Ubunty ставите ltsc и забываете на 2-4 года.
Дальше ставите MySQL + Nginx + Node + PHP + Python.
Создаете скрипт который делает следующее:
* вносит изменение в DNS что то типа vasya.labs.loc
* добавляет пользователя vasya и устанавливает пароль
* добавляете папку /home/vasya/public_html
* добавляете конфиг /etc/nginx/sites-enabled/vasya.conf
* добавляете базу для васи и пишете пароли в файл в его домашней директории
* перезапускаете nginx
Итого установка и обновление убунты и обновлений происходит 1 раз и штатно без шаманства
Пользователь получает адрес типа vasya.labs.loc
При желании можно парсить пользователей из csv файла
Node + PHP + Python конкретной версии сам пользователь и назначает используя virtualenv, nvm, phpenv
Если что упустил уточняйте