Установка программ на VPS с ОС Windows Server Core 2019
С помощью данной инструкции вы сможете установить программы на виртуальный сервер за 99 рублей под управлением Windows Server Core 2019. Для примера, мы установим MetaTrader 5.
Первое, что нужно сделать это подключиться к виртуальному серверу по RDP, о способах подключения по RDP мы писали в прошлой статье. После подключения к серверу, вместо обычной графической оболочки windows, вы увидите командную строку. Windows Server Core 2019 не поддерживает графическую оболочку Windows, но работать как с обычным Windows Server нам это не помешает.
Такое окно вы увидите при запуске сервера по rdp.
Чтобы начать работу с сервером, нужно подключить PowerShell. Вводим в командной строке:
PowerShell
Следующим шагом нужно скачать файл установщика MetaTrader, для этого вам нужно указать адрес хранения загрузчика вашей команды, в нашем случае он находится по адресу: «https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com&utm_campaign=download«, вам необходимо заменить этот адрес на ваш, после этого вводим команду:
После установки запускаем сам метатрейдер следующей командой:
Появляется окно MetaEditor, остается только указать данные для доступа к серверам брокера. Таким образом, с помощью нескольких простых шагов мы получили доступ к удаленному рабочему столу и установили MetaTrader 5.
Внимание, если ваше приложение не поддерживает работу на английском языке, а работает только на русском, то работать будет неудобно, поскольку в текущей версии Server Core не поддерживается русский язык.
Втискиваем Windows Server на маломощную VPS с помощью Windows Server Core
Кто такой этот ваш Windows Server Core?
Внятной информации, что такое Windows (server) Core нет даже на официальном сайте майков, точнее, там все так запутанно, что и не сразу поймешь, но первые упоминания датируются еще эпохой Windows Server 2008. По сути, Windows Core — это работоспособное ядро Windows Server (внезапно!), «похудевшее» на размер собственного GUI и примерно половины побочных служб.
Основная фишка Windows Core — нетребовательность по железу и полностью консольное управление через PowerShell.
Если обратиться к сайту Microsoft и проверить технические требования, то для старта Windows Server 2016/2019 вам понадобится от 2 гигов оперативной памяти и минимум одно ядро с тактом 1,4 GHz. Но все мы понимаем, что на такой конфигурации мы можем ожидать только старта системы, но уж точно не комфортной работы нашей ОС. Именно по этой причине для работы Windows Server обычно выделяют побольше памяти и минимум 2 ядра/4 потока от процессора, если вовсе не предоставляют ей дорогую физическую машину на каком-нибудь Xeon, вместо дешевой виртуалки.
При этом само ядро серверной системы требует всего 512 MB памяти, а те ресурсы процессора, которые отжирались GUI просто для того, чтобы просто отрисовываться на экране и поддерживать запущенными свои многочисленные службы, можно пустить на что-то более полезное.
Вот сравнение поддерживаемых из коробки служб Windows Core и полноценной Windows Server с официального сайта Microsoft:
Почти как Linux, но не он
Windows Server Core очень хочется сравнивать с Linux-дистрибутивами, но на самом деле это не совсем корректно. Да, эти системы схожи между собой в плане пониженного потребления ресурсов за счет отказа от GUI и многих побочных служб, но в плане эксплуатации и некоторых подходов к сборке, это все еще Windows, а не unix-система.
Windows Server Core поставляется уже готовой сборкой, дефолтную комплектацию которой можно оценить по таблице выше. Если вам понадобится что-нибудь из списка неподдерживаемого, то придется онлайн через консоль добавлять недостающие элементы. Правда, не стоит забывать про Feature on demand и возможность выкачать компоненты в качестве CAB-файлов, которые потом можно добавить в сборку перед установкой. Но этот сценарий не работает, если вы уже в процессе работы обнаружили, что вам не хватает какой-либо из вырезанных служб.
Но что выгодно отличает Core-версию от полной — это возможность обновления системы и добавления служб без остановки работы. Windows Core поддерживает раскатку пакетов «на горячую», без ребута. Как итог исходя из практических наблюдений: машину под управлением Windows Core нужно перезагружать в
6 раз реже, нежели под управлением Windows Server, то есть раз в полгода, а не раз в месяц.
Приятным бонусом для администраторов будет то, что если системой пользоваться, как было задумано — через консоль, без RDP — и не делать из нее второй Windows Server, то она становится крайне секьюрной по сравнению с полной версией. Ведь большинство уязвимостей Windows Server приходится именно на RDP и действия пользователя, который через этот самый RDP делает то, что не следовало бы. Это примерно как в истории с Генри Фордом и его отношению к цвету автомобиля: «Any customer can have a car painted any color that he wants so long as it is black». Так и с системой: пользователь может каким угодно способом общаться с системой, главное, чтобы он делал это через консоль.
Установка и управление Windows Server 2019 Core
Ранее мы упоминали, что Windows Core — это фактически Windows Server без обертки GUI. То есть вы можете воспользоваться почти любой версией Windows Server в качестве core-версии, то есть отказаться от GUI. Для продуктов семейства Windows Server 2019 это 3 из 4 серверных билда: core-режим доступен для Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter и Hyper-V Server 2019, то есть из этого списка выпадает только Windows Server 2019 Essentials.
При этом установочный пакет Windows Server Core особо не нужно искать. В стандартном инсталляторе от Microsoft core-версия предлагается буквально по умолчанию, когда как версию с GUI надо выбирать вручную:
Вариантов управления системой, на самом деле, больше, чем один упомянутый PowerShell, который и предлагается производителем по умолчанию. Управлять виртуальной машиной на Windows Server Core можно минимум пятью разными способами:
Расписывать возможности консоли мы не будем, PowerShell — это PowerShell, со своими очевидными плюсами и минусами. Вот с RSAT и WAC все немного сложнее.
WAC дает доступ к таким важным элементам управления системой, как редактирование реестра и управление дисками и устройствами. RSAT в первом случае работает только в режиме просмотра и не позволит внести какие-либо изменения, а для управления дисками и физическими устройствами Remote Server Administration Tools нужен GUI, что не про наш случай. Вообще, RSAT не может в работу с файлами и, соответственно, обновлениями, установкой/удалением программ в редактирование реестра.
▍Управление системой
WAC | RSAT | |
Управление компонентами | Да | Да |
Редактор реестра | Да | Нет |
Управление сетью | Да | Да |
Просмотр событий | Да | Да |
Общие папки | Да | Да |
Управление дисками | Да | Только для серверов с GUI |
Планировщик заданий | Да | Да |
Управление устройствами | Да | Только для серверов с GUI |
Управление файлами | Да | Нет |
Управление пользователями | Да | Да |
Управление группами | Да | Да |
Управление сертификатами | Да | Да |
Обновления | Да | Нет |
Удаление программ | Да | Нет |
Системный монитор | Да | Да |
С другой стороны, RSAT дает нам полный контроль за ролями на машине, когда как Windows Admin Center не может в этом плане буквально ничего. Вот сравнение возможностей RSAT и WAC в этом аспекте, для наглядности:
▍Управление ролями
WAC | RSAT | |
Advanced Thread Protection | ПРЕВЬЮ | Нет |
Windows Defender | ПРЕВЬЮ | Да |
Контейнеры | ПРЕВЬЮ | Да |
AD Administrative Center | ПРЕВЬЮ | Да |
AD Domain and Trusts | Нет | Да |
AD sites and services | Нет | Да |
DHCP | ПРЕВЬЮ | Да |
DNS | ПРЕВЬЮ | Да |
Диспетчер DFS | Нет | Да |
Диспетчер GPO | Нет | Да |
Диспетчер IIS | Нет | Да |
То есть уже видно, что при отказе от GUI и PowerShell в пользу других элементов управления, отделаться использованием какого-то моноинструмента не выйдет: для полноценного администрирования по всем фронтам нам понадобится как минимум связка из RSAT и WAC.
При этом нужно помнить, что за использование WAC придется заплатить 150-180 мегабайтами оперативной памяти. Windows Admin Center при подключении создает 3-4 сессии на стороне сервера, которые не убиваются даже при отключении инструмента от виртуальной машины. Еще WAC не работает со старыми версиями PowerShell, так что вам понадобится минимум PowerShell 5.0. Все это идет вразрез с нашей парадигмой жесткой экономии ресурсов, но за комфорт нужно платить. В нашем случае — оперативной памятью.
Еще один вариант управления Server Core — установка GUI сторонними средствами, чтобы не тащить те тонны мусора, которые идут в полноценной сборке вместе с интерфейсом.
В этом случае у нас есть два варианта: раскатать на систему оригинальный Explorer или воспользоваться Explorer++. Как альтернатива последнему подойдет любой файловый менеджер: Total Commander, FAR Manager, Double Commander и так далее. Последнее предпочтительнее, если для вас критична экономия оперативной памяти. Добавить Explorer++ или любой другой файловый менеджер можно через создание сетевой папки и запуск через консоль или планировщик.
Установка полноценного Explorer даст нам больше возможностей, в плане работы с программным обеспечением, оснащенным UI. Для этого нам придется обратиться к Server Core App Compatibility Feature on Demand (FOD) который вернет в систему MMC, Eventvwr, PerfMon, Resmon, Explorer.exe и даже Powershell ISE. Однако за это придется заплатить, как в случае и с WAC: мы безвозвратно потеряем около 150-200 мегабайт оперативной памяти, которые безжалостно сожрет explorer.exe и прочие службы. Даже если на машине нет активного пользователя.
Вот так выглядит потребление памяти системой на машинах с родным пакетом Explorer и без оного.
Тут возникает закономерный вопрос: а зачем все эти пляски с PowerShell, FOD, файловыми менеджерами, если любой шаг влево-вправо приводит к увеличению потребления оперативной памяти? Зачем обмазываться кучей инструментов и шарахаться из стороны в сторону, чтобы обеспечить себе комфортную работу на Windows Server Core, когда можно просто накатить Windows Server 2016/2019 и жить, как белый человек?
Причин для использования Server Core несколько. Первая: в токе почти вдвое меньшее потребление памяти. Если вы помните, это условие лежало в основе нашей статьи еще в самом ее начале. Вот для сравнения, потребление памяти Windows Server 2019, сравните со скриншотами чуть выше:
И вот, 1146 MB потребляемой памяти вместо 655 MB на Core.
Если предположить, что WAC вам не потребуется и вы будете использовать Explorer++ вместо оригинального Explorer, то вы все еще будете выигрывать почти полгектара на каждой виртуальной машине под управлением Windows Server. Если виртуалка одна, то прирост незначительный, но если их пять? Вот тут уже наличие GUI имеет значение, особенно если он вам не нужен.
Второе — любые пляски вокруг Windows Server Core не приведут вас к борьбе с главной проблемой эксплуатации Windows Server — RDP и его безопасность (точнее, полное ее отсутствие). Windows Core даже в обмазке в виде FOD, RSAT и WAC все еще сервер без RDP, то есть не подвержен 95% существующих атак.
В остатке
В целом Windows Core лишь слегка «жирнее», нежели чем любой стоковый Linux-дистрибутив, но зато куда функциональнее. Если вам нужно высвобождение ресурсов и вы готовы работать с консолью, WAC и RSAT, использовать файловые менеджеры вместо полноценного GUI — то на Core стоит обратить внимание. Тем более что с ней получится не доплачивать за полноценную Windows, а сэкономленные деньги потратить на апсет своего VPS, добавив туда, например, ОЗУ. Для удобства, мы добавили Windows Server Core в свой маркетплейс.
Windows Server Core против GUI и совместимость с ПО
Мы продолжаем рассказывать про работу на виртуальных серверах с Windows Server 2019 Core. В прошлых постах мы рассказали как готовим клиентские виртуальные машины на примере нашего нового тарифа VDS Ultralight с Server Core за 99 рублей. Затем показали как работать с Windows Server 2019 Core и как установить на него GUI.
В данной статье мы добавили конкретные программы и привели таблицу их совместимости с Windows Server Core.
Совместимость
В этой редакции нет рендера DirectX, целиком отсутствуют системы аппаратного кодирования и декодирования видео, видео в Google Chrome успешно воспроизводится на процессоре, но без звука, системы работы со звуком в версии Core нет.
Ключевые отличия и возможности обычной установки и core установки:
1200
6 ГБ
CORE | GUI | |
---|---|---|
Microsoft Office | Да** | Да |
Libre Office | Да** | Да |
Foobar 2000 | Да** | Да |
MPV | Нет | Да |
Google Chrome | Да | Да |
Winrar | Да | Да |
Сcleaner | Нет | Да |
Metatrader 5 | Да* | Да |
Quik | Да* | Да |
SmartX | Да | Да |
Adobe Photoshop | Нет | Да |
Vs Code | Да** | Да |
Oracle Java 8 | Да | Да |
Uninstall Tool | Да* | Да |
NodeJS | Да | Да |
Ruby | Да | Да |
Far manager | Да | Да |
7z | Да | Да |
Диспетчер серверов или RSAT | Нет | Да |
Steam | Да | Да |
* Работает только в стандартном образе Ultravds. Не работает без Oldedlg.dll
** Работает только после установки FOD
Футпринт
Для примера возьмем готовые образы Windows Server, которые мы подготовили как в этой статье и посмотрим на потребление ресурсов. Размер файла подкачки зависит от количества установленной оперативной памяти, поэтому для этого сравнения он был удален, чтобы понимать сколько занимает сама система.
Такой маленький объем был достигнут благодаря манипуляциям, которые мы перечислили в этой статье.
Теперь потребление ОЗУ:
Windows Server 2019 GUI
Windows Server 2019 CORE
Windows Server 2019 CORE с установленным Feature on Demand, как ее установить мы обсуждали в прошлый раз.
Заметки из собственного опыта
Предлагаем обновлённый тариф UltraLite Windows VDS за 99 рублей с установленной Windows Server 2019 Core.
Пакет компонентов для обеспечения совместимости приложений основных серверных компонентов по требованию
Пакет компонентов для обеспечения совместимости приложений основных серверных компонентов по требованию — это дополнительный пакет компонентов, который можно добавить в установки основных серверных компонентов Windows Server (начиная с Windows Server 2019) или установки Windows Server Semi-Annual Channel в любое время.
Дополнительные сведения о других пакетах компонентов по требованию (FOD) см. в этой статье.
Зачем устанавливать FOD для обеспечения совместимости приложений?
FOD для обеспечения совместимости приложений основных серверных компонентов значительно улучшает совместимость приложений для установки основных серверных компонентов за счет включения подмножества двоичных файлов и пакетов из Server с возможностями рабочего стола без добавления графической среды возможностей рабочего стола Server. Этот дополнительный пакет доступен в отдельном ISO-файле или в клиентском компоненте Центра обновления Windows, и его можно добавлять только в образы и установки основных серверных компонентов.
FOD для обеспечения совместимости приложений предоставляет два таких основных преимущества:
Компоненты операционной системы, которые доступны как часть FOD для обеспечения совместимости приложений основных серверных компонентов, включают в себя:
Консоль управления (MMC) (mmc.exe).
Средство «Просмотр событий» (Eventvwr.msc).
Системный монитор (PerfMon.exe).
Монитор ресурсов (Resmon.exe).
Диспетчер устройств (Devmgmt.msc).
Windows PowerShell (Powershell_ISE.exe).
Средство управления дисками (Diskmgmt.msc).
Диспетчер отказоустойчивости кластеров (CluAdmin.msc).
Для диспетчера отказоустойчивости кластеров необходимо сначала добавить компонент отказоустойчивой кластеризации Windows Server, выполнив следующую команду из сеанса PowerShell с повышенными привилегиями:
Начиная с Windows Server версии 1903, также поддерживаются следующие компоненты (если используется та же версия FOD для обеспечения совместимости приложений):
Диспетчер Hyper-V (virtmgmt.msc).
Планировщик заданий (taskschd.msc).
Установка пакета компонентов по требованию для обеспечения совместимости приложений
FOD для обеспечения совместимости приложений можно установить только для основных серверных компонентов Не пытайтесь добавить FOD для обеспечения совместимости приложений основных серверных компонентов в вариант установки Windows Server с возможностями рабочего стола.
Если сервер может подключиться к клиентскому компоненту Центра обновления Windows, необходимо просто запустить приведенную ниже команду из сеанса PowerShell с повышенными правами, а затем перезапустить Windows Server после ее выполнения.
Если сервер не может подключиться к Центру обновления Windows, скачайте файл ISO-образа пакета языков и дополнительных компонентов Windows Server и скопируйте их в общую папку в вашей локальной сети:
Файл ISO-образа пакета языков и дополнительных компонентов является новым для Windows Server 2022. В предыдущих версиях Windows Server используется ISO-образ пакета компонентов по запросу (FOD).
Войдите в систему с использованием учетной записи администратора на компьютере с основными серверными компонентами, который подключен к локальной сети и на который вы хотите добавить FOD для совместимости приложений.
Используйте команду New-PSDrive из PowerShell, net use из командной строки или другой метод для подключения к расположению ISO-образа FOD.
Скопируйте ISO-образ FOD в локальную папку на ваш выбор.
Подключите его с помощью следующей команды в сеансе PowerShell с повышенными привилегиями, где E:\ — буква диска, которая не используется в настоящее время:
Выполните следующую команду (в зависимости от версии):
Для Windows Server 2022:
Для предыдущих версий Windows Server:
После заполнения индикатора выполнения перезапустите операционную систему.
Добавление Internet Explorer 11 в основные серверные компоненты (необязательно)
Чтобы добавить Internet Explorer 11, требуется FOD для обеспечения совместимости приложений основных серверных компонентов, но при добавлении этого FOD Internet Explorer 11 не требуется.
Начиная с Windows Server 2022, несмотря на то что Internet Explorer 11 можно добавить в установки основных серверных компонентов Windows Server, вместо него следует использовать Microsoft Edge. В Microsoft Edge встроен режим Internet Explorer («режим IE»), поэтому вы можете получать доступ к устаревшим веб-сайтам и приложениям на основе Internet Explorer прямо из Microsoft Edge. Информацию о политике жизненного цикла Internet Explorer см. на этой странице.
Войдите в систему в качестве администратора на компьютере с основными серверными компонентами, на котором уже добавлен FOD для обеспечения совместимости приложений, а необязательный пакет ISO-образа FOD для сервера скопирован локально.
Подключите ISO-образ FOD с помощью следующей команды в сеансе PowerShell с повышенными привилегиями, где E:\ — буква диска, которая не используется в настоящее время:
Для Windows Server 2022:
Для предыдущих версий Windows Server:
После заполнения индикатора выполнения перезапустите операционную систему.
Заметки о выпуске и предложения
Компоненты по запросу, установленные в версиях Semi-Annual Channel для Windows Server, не сохранятся после обновления по месту до более новой версии Semi-Annual Channel. Поэтому после обновления их нужно будет установить снова. Кроме того, перед обновлением можно добавить пакет компонентов по требованию для обеспечения совместимости приложений в новый источник установки Windows Server. Это гарантирует, что новая версия пакета компонентов по требованию для обеспечения совместимости приложений будет оставаться в системе после завершения обновления. Дополнительные сведения см. в разделе Добавление возможностей и дополнительных пакетов в автономный образ основных серверных компонентов WIM.
После установки FOD для обеспечения совместимости приложений и перезагрузки сервера цвет рамки окна командной консоли изменится на другой оттенок синего.
Чтобы еще больше повысить совместимость приложений основных серверных компонентов при наличии FOD для обеспечения совместимости приложений, в качестве дополнительного компонента в основные серверные компоненты была добавлена консоль управления IIS. Чтобы использовать консоль управления IIS, сначала необходимо добавить FOD для обеспечения совместимости приложений. Консоль управления IIS использует консоль MMC (mmc.exe), которая доступна только в основных серверных компонентах, в которых добавлен FOD для обеспечения совместимости приложений. Чтобы добавить консоль управления IIS, выполните командлет PowerShell Install-WindowsFeature.
Как правило, при установке приложений в основные серверные компоненты (с этими дополнительными пакетами или без них) иногда необходимо использовать параметры и инструкции для автономной установки.
Добавление в автономный образ основных серверных компонентов WIM
Скачайте файлы ISO-образов Windows Server и пакета языков и дополнительных компонентов для обеспечения совместимости приложений основных серверных компонентов в локальную папку на компьютере Windows.
Подключите ISO-образ пакета языков и дополнительных компонентов и ISO-образ Windows Server с помощью следующих команд в сеансе PowerShell с повышенными привилегиями, где E:\ и F:\ — буквы дисков, которые в настоящее время не используются:
Скопируйте содержимое ISO-файла Windows Server в локальную папку (например, C:\SetupFiles\WindowsServer).
Добавьте нужные возможности и пакеты к подключенному образу Install.wim с помощью следующих команд (в зависимости от версии), заменив значения переменных в примере собственными.