Игровой сервер

Dec 21, 2020 07:07





Как известно, программист - это такой работник умственного труда, который на работе старается спрограммировать всё побыстрее, чтобы наконец пойти домой и попрограммировать для удовольствия. А как же тут попрограммировать для души, когда домашний игровой комп сыграл в ящик, не гудит и не мигает лампочками? Пришлось выделить из семейного бюджета солидную сумму на покупку нового компа в серьёзной конфигурации: Ryzen 7, RTX видеокарта, 32G памяти, все дела.

Прошло несколько недель (COVID всё же на дворе), и настал светлый день. Уставший FedEx'овец в маске дотащил здоровую коробку, и не спрашивая росписи о доставке, умчал вдаль шурша опавшими листьями. Коробку распаковали, комп собрали, подвели питание, включили - он загудел, засверкал светодиодными лентами через боковое стекло. Красота!

Тут меня начал мучать соблазн - ну что я, не настоящий программист что ли? Не пропадать же такой вычислительной мощности только для вечерних загонялок в Doom! Надо поднять нормальную Linuxовую виртуальную машину для разработки, а может даже и несколько, чтобы сделать себе devel, staging, и production.

Выключил комп, засел с блокнотиком, долго изучал опыт современных домашних умельцев в интернетах. И в следующий раз включил комп только когда в блокнотике появился удовлетворительный дизайн домашнего сервера.

Теперь буду записывать себе на память инструкции по поднятию домашней системы:

Итак, после первого входа в систему мне захотелось сохранить это свежедефлорированное состояния. Умельцы с Reddit'a порекомендовали Macrium Reflect. Попробовал забэкапить диски - получилось. А насколько хорошо получилось - проверим после первой попытки восстановить сохранённое.

Дальше надо было накатывать софт и тут я очень кстати вспомнил, что под Винду тоже бывают пакетные установщики. Быстро нашёл "Chocolatey" и его автоматизацию в виде BoxStarter. Сделал конфигурационный gist на Гитхабе, запустил волшебную команду:

> start https://boxstarter.org/package/nr/url?https://gist.githubusercontent.com/recoder/9d5c4e5b959dc50d8a856dd2f2b501a8/raw/2c265bcd9089dbe8f5f33eb52f3e8b4bf9f19ebc/nexus.box
И после нескольких подтверждений всё само собой установилось. Я прямо поразился, насколько всё сработало хорошо и быстро. Прям как будто и не Windows. Но с другой стороны - всё-таки за окном третья декада третьего тысячелетия...

Дальше пошла тяжёлая артиллерия. Пришло время поднимать виртуальные машины. В очередной раз проштудировав реддитских мудрецов, решил пойти нативным путём, подняв родной майкрософтовский Hyper-V:

DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
Но не тут-то было! Оказалось что на Win10 Home некоторое подмножество фич откручено заботливыми маркетологами. Вновь пришлось обращаться к мировому разуму за советом, и совет оказался прост: надо просто взять и восстановить открученное:

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
После чего DISM совершенно штатным образом устанавливает нормальный Hyper-V!

А раз пошла такая пьянка - то можно и нормальный встроенный Линукс (Убунту например) себе поднять, в три команды:

DISM /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart DISM /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --set-default-version 2
А чтобы закрепить этот программистский фьюжн, я накатил внутри Linux'a практически полноценный FAR. Надо сказать, что в FAR'e я программирую последние 25 лет, так что для меня FAR - это "наше всё". И устанавливается всё просто на раз:

sudo apt-get install -y gawk m4 libwxgtk3.0-gtk3-dev libpcre++-dev libxerces-c-dev libspdlog-dev libuchardet-dev libssh-dev libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libarchive-dev cmake g++ git git clone https://github.com/recoder/far2l cd far2l mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DUSEWX=no -DCMAKE_BUILD_TYPE=Release .. make -j4 && sudo make install
После этого можно удовлетворённо попить чайку и переходить к следующей стадии.

techno-fetish, self-hosted, coding

Previous post Next post
Up