Различная документация о Playkey Pro

ВНИМАНИЕ! ДАННАЯ ДОКУМЕНТАЦИЯ - НЕОФИЦИАЛЬНАЯ И НИКАКИМ ОБРАЗОМ НЕ ПОДДЕРЖИВАЕТСЯ PLAYKEY! ВСЕ ЧТО ВЫ ДЕЛАЕТЕ - ВЫ ДЕЛАЕТЕ НА СВОЙ СТРАХ И РИСК!

ЕСЛИ ВЫ СТОЛКНУЛИСЬ С ПРОБЛЕМАМИ - НЕ НУЖНО ОБРАЩАТЬСЯ В ОФИЦИАЛЬНУЮ ПОДДЕРЖКУ PLAYKEY!

Оставить описание проблемы и попросить о помощи вы можете здесь - https://github.com/Tualua/playkey/issues В случае наличия у меня свободного времени - я постараюсь Вам помочь.

Установка и настройка CentOS

Системные требования

  • Компьютер, подходящий под требования PlayKey Pro
  • Два жестких диска: первый под установку ОС, второй под раздел с играми. Второй диск рекомендуется от 1 ТБ

Подготовка

Скачайте минимальный дистрибутив CentOS 7.8

Запишите его на USB-флэшку при помощи Win32DiskImager или Rufus

Установка

Загрузите настраиваемый компьютер с этой флэшки. Загружаться необходимо в режиме UEFI.

_images/install-boot.png

Выберите Install CentOS 7

На экране выбора языков выберите любой подходящий Вам язык и нажмите кнопку продолжения (Continue). Здесь и далее все снимки экрана будут сделаны с англоязычного установщика.

_images/install-language-sel.png

Разметка диска

Стандартная разметка LVM, предлагаемая установщиком не подойдет, поэтому ее необходимо изменить. GameServer НЕ РАБОТАЕТ С LVM-разметкой!!! На экране Installation Summary выберите пункт INSTALLATION DESTINATION

_images/install-summary.png

Проверьте, что на этом экране Вы выделили нужный диск.

ВНИМАНИЕ! Дальнейшие шаги приведут к БЕЗВОЗВРАТНОМУ УНИЧТОЖЕНИЮ ВСЕХ ДАННЫХ НА ВЫБРАННОМ ДИСКЕ! Так же необходимо в разделе Other Storage Options выбрать пункт I will configure partitioning, после чего нужно нажать Done.

_images/install-dev-sel.png

Если на выбранном диске уже есть разделы от предыдущих установок, необходимо их удалить кнопкой ➖. В пункте New mount points will use the following partitioning scheme выберите Standard Partitioning и нажмите Click here to create them automatically.

_images/install-part-step1.png

У Вас должная появится такая таблица разделов. В случае, если установщик создал отдельный раздел /home, его нужно удалить, а раздел / удалить и затем заново создать. Для создания раздела возпользуйтесь кнопкой ➕. Обязательно проверьте, что разделы / и /boot созданы с файловой системой XFS.

_images/install-part-step2.png

После заавершения операций по разметке диска нажмите Done и подтвердите изменения кнопкой Accept Changes.

_images/install-part-accept.png

Настройка сетевого подключения

На экране INSTALLATION SUMMARY выберите NETWORK & HOST NAME.

_images/install-net1.png

В поле Host name задайте полное доменное имя Вашего компьютера (необязательно) и включите сетевое подключение.

_images/install-net1.png

После завершения настройки сети нажмите кнопку Done.

Прочие настройки

В разделе DATE & TIME выставьте нужный часовой пояс, в разделе LANGUAGE SUPPORT добавьте необходимые языки (необязательно) и после возврата на экран INSTALLATION SUMMARY в правом нижем углу нажмите Begin Installation.

_images/install-begin.png

Установка паролей

Непосредственно во время процесса установки операционной системы необходимо задать пароль суперпользователя (root), а так же создать обычного непривилегированного пользователя

_images/install-passwords.png

Сначала выберите ROOT PASSWORD и задайте пароль суперпользователя, затем - USER CREATION и создайте пользователя gamer.

_images/install-user-gamer.png

Не забудьте поставить галочки в пунктах Make this user administrator и Require a password to use this account. По завершении нажмите кнопку Done и дождитесь завершения установки и появления кнопки Finish configuration.

_images/install-finish.png

Нажмите кнопку Finish configuration и ожидайте окончания настройки системы и появления кнопки Reboot.

_images/install-reboot.png

Компьютер перезагрузится и установка системы будет завершена.

_images/install-first-boot.png

Настройка CentOS

На данном этапе мы произведем настройку операционной системы.

Обновление системы

Войдите в систему с учетной записью root и паролем, который Вы задали на этапе установки. Дайте команду yum -y update.

После окончания установки обновленных пакетов, перезагрузите компьютер.

Подключение к комьютеру через SSH

Войдите под любой учетной записью и дайте команду ip addr

Вы должны увидеть похожую картинку:

_images/config-ip-addr.png

В данном случае мы видим, что сетевой адаптер называется ens33 и получил адрес 10.224.30.32

С этого момента все манипуляции крайне желательно производить через удаленное подключение, для того чтобы Вы могли копировать и вставлять команды из этого руководства. Для подключения к компьютеру можно использовать putty, mremoteNG, RoyalTS и т.д., в целом, любую программу которая поддерживает протокол SSH.

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

ВНИМАНИЕ! Не рекомендуется подключаться удаленно с использованием учетной записи суперпользователя! Настройки безопасности системы будут рассмотрены в отдельном разделе.

Используйте для подключения учетную запись gamer. Для выполнения команд от имени суперпользователя воспользуйтесь командой sudo. Так как, почти все команды в данном разделе необходимо запускать с привилегиями суперпользователя, можно начинать сеанс работы с команды sudo su. Эта команда переключит Вас на пользователя root.

Установка tmux

tmux - консольный мультиплексор. Очень полезен тем, что в случае отключения от удаленного компьютера, все команды которые вы успели отдать продолжат выполнение в фоновом режиме.

Установите tmux.

yum -y install tmux

Я рекомендую все удаленные сеансы работы начинать с отдачи команды tmux. В случае, если по каким-либо причинам сеанс связи оборвался, переподключитесь и дайте команду tmux ls и Вы увидите на экране список Ваших сеансов с номерами. Подключитесь к нужному сеансу при помощи tmux attach -t номер.

Настройка репозиториев

Не все пакеты программ, которые нам понадобятся, входят в состав репозиториев поставляемых вместе с CentOS. Поэтому необходимо добавить нужные репозитории вручную, но сначала установите в систему несколько полезных утилит.

yum -y install nano wget mc

nano - удобный консольный текстовый редактор, wget - консольная программа для загрузки файлов, mc - консольный двухпанельный файловый менеджер.

Добавим репозиторий Elastic, он потребуется для установки filebeat. Откройте текстовый редактор командой nano /etc/yum.repos.d/elastic.repo и вставьте туда следующий текст:

[elastic-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Выход из редактора с сохранением файла осуществляется нажатием Ctrl+X. Нажмите Y для подтверждения сохранения, проверьте имя файла и нажмите Enter.

Добавьте временный репозиторий Oracle Linux, из которого нам потребуется ядро Unbreakable Enterprise Kernel Release 5 командой nano /etc/yum.repos.d/ol7-temp.repo и вставьте текст:

[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

Закройте текстовый редактор и добавьте публичные ключи Oracle.

wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Установите репозиторий EPEL и centos-release-qemu-ev

yum -y install centos-release-qemu-ev epel-release

Установите репозиторий ZFS.

ВНИМАНИЕ! Несмотря на то, что у мы используем версию CentOS 7.8, необходимо установить репозиторий для версии CentOS 7.6, т.к. GameServer требует для работы ZFS версии 0.7.13.

yum -y install http://download.zfsonlinux.org/epel/zfs-release.el7_6.noarch.rpm

Установка ядра Unbreakable Enterprise Kernel Release 5

В состав Centos 7.8 включено достаточно старое ядро 3.10 и несмотря на то, что команда разработчиков постоянно бэкпортирует туда исправления и дополнения из более новых ядер, для нормальной работы новых процессоров, таких как, например AMD Ryzen 3000, необходимо установить другое ядро. Посмотреть версию ядра, установленного в Вашей системе можно командой uname -r.

$ uname -r
3.10.0-1127.el7.x86_64

Установите новое ядро.

yum -y install oraclelinux-release-el7
mv /etc/yum.repos.d/ol7-temp.repo /etc/yum.repos.d/ol7-temp.repo.disabled
yum-config-manager --disable ol7_latest
yum -y install kernel-uek --enablerepo=ol7_latest

После установки перезагрузите компьютер командой reboot, затем, проверьте, что новое ядро загрузилось, командой uname -r

$ uname -r
4.14.35-1902.301.1.el7uek.x86_64

Данная версия была актуальна на момент написания данного руководства. В Вашем случае номер версии может быть другим.

Установка ZFS

ZFS - продвинутая файловая система, которая необходима GameServer для хранения образов виртуальных машин.

yum -y install kernel-devel kernel-uek-devel
yum -y install zfs

Процесс установки займет достаточно длительное время, т.к. установщику необходимо скомпилировать модули для конкретной версии ядра. После окончания установки дайте команду modprobe zfs для загрузки модуля. В случае успешной загрузки команда не выведет никакой информации. Дополнительно, можно проверить загрузку модуля командой dmesg -wH. В случае успешной загрузки Вы увидите строчки:

SPL: Loaded module v0.7.13-1
ZFS: Loaded module v0.7.13-1, ZFS pool version 5000, ZFS filesystem version 5

Установка поддержки виртуализации

yum -y install qemu-kvm-ev libvirt virt-install libvirt-python virt-install libvirt-client OVMF
systemctl enable libvirtd --now

Установка Cockpit

Cockpit - удобная система управления операционными системами Linux через web-интерфейс.

Установка:

yum -y install cockpit cockpit-machines cockpit-storaged
systemctl enable cockpit.socket --now

Установка дополнительных утилит

yum -y install policycoreutils-python atop htop tcpdump telnet net-tools iptables-services iptables iscsi-initiator-utils bind-utils curl bridge-utils pciutils ntp
yum -y install filebeat-6.6.1-1

Настройка SSH

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

Добавьте дополнительный порт, на котором будет слушать sshd. Делать это нужно в два этапа, сначала следует настроить SELinux, чтобы он знал, что демон будет слушать на дополнительно порту:

semanage port -a -t ssh_port_t -p tcp 14009

Затем, настроим сам sshd. Откройте редактор командой nano /etc/ssh/sshd_config. Найдите и раскомментируйте строчку #Port 22, удалив символ # в начале строки. Затем, строчкой ниже, добавьте еще одну директиву Port 14009. Так же, рекомендуется запретить удаленный вход суперпользователяВыйдите из редактора с сохранением и дайте следующую команду:

systemctl restart sshd

После проведенных манипуляций попробуйте подключиться к комьютеру через ssh указав порт 14009, вместо стандартного 22

Настройка сети

Для обеспечения подключения виртуальных машин к локальной сети, необходимо настроить сетевой мост.

Сначала удалите уже существующий мост, конфигурация которого не подходит для GameServer.

virsh net-destroy default
virsh net-undefine default

Проверьте, что Вы не забыли запустить tmux. О том, что вы работаете через tmux свидетельствует зеленая строка внизу экрана.

ВНИМАНИЕ! Следующие шаги приведут Вас к отключению от компьютера, если вы работаете через удаленное подключение!

Создайте скрипт настройки сетевого моста командой nano ~/configure-bridge.sh и отредактируйте его следующим образом:

interface=$(ip addr | grep -i broadcast | awk NR==1'{ print substr($2, 1, length($2)-1)}')
nmcli con delete $interface
nmcli con add type bridge ifname br0
nmcli con modify bridge-br0 ipv4.method auto
nmcli con modify bridge-br0 bridge.stp no
nmcli con add type bridge-slave ifname $interface master br0
reboot

Установите разрешение на запуск скрипта.

chmod +x ~/configure-bridge.sh

Запустите скрипт.

bash ~/configure-bridge.sh

После завершения работы скрипта, компьютер перезагрузится автоматически. После перезагрузки войдите в систему и проверьте сетевые настройки командой ip addr.

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 0a:e0:af:a2:37:d6 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0a:e0:af:a2:37:d6 brd ff:ff:ff:ff:ff:ff
    inet 172.17.19.49/25 brd 172.17.19.127 scope global noprefixroute dynamic br0
       valid_lft 86112sec preferred_lft 86112sec
    inet6 fe80::9d0f:8800:1fb7:5b97/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Обратите внимание, что IP-адрес теперь присвоен интерфейсу br0.

Создайте настройки сети для виртуальных машин командой nano ~/default.xml

<network>
   <name>default</name>
   <forward mode="bridge"/>
   <bridge name="br0" />
</network>

Сохраните файл и выполните следующие команды:

virsh net-define ~/default.xml
virsh net-autostart default
virsh net-start default

Удалите firewalld. В официальном образе для запуска PlayKey Pro не используется firewalld, поэтому по рекомендациям, полученным от разработчиков, его необходимо удалить.

yum -y erase firewalld

Создайте папку для хранения системного журнала, чтобы он не удалялся при перезагрузке. Это пригодится для анализа работы GameServer

mkdir -p /var/log/journal

На этом основная настройка завершена, в следующей части будет рассмотрена установка и настройка GameServer.

Установка и настройка GameServer

Подготовка

Подключитесь к настраиваемому компьютеру через SSH. Запустите tmux. Дайте команду sudo su для перехода в режим суперпользователя

Создание раздела для виртуальных машин

Убедитесь, что модуль ядра zfs загружен, командой lsmod | grep zfs

# lsmod | grep zfs
zfs                  3555328  3
zunicode              331776  1 zfs
icp                   270336  1 zfs
zcommon                69632  1 zfs
znvpair                77824  2 zfs,zcommon
spl                   106496  4 zfs,icp,znvpair,zcommon
zavl                   16384  1 zfs

В случае, если вывод команды пустой, загрузите модуль командой modprobe zfs

Идентифицируйте диски, установленные в компьютере. Помните, мы используем один для системы, второй для данных. Выполните команду lsblk.

# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0    0 465.8G  0 disk
sda       8:0    0 111.8G  0 disk
├─sda4    8:4    0  99.4G  0 part /
├─sda2    8:2    0     1G  0 part /boot
├─sda3    8:3    0  11.2G  0 part [SWAP]
└─sda1    8:1    0   200M  0 part /boot/efi

В данном примере на диск с идентификатором sda установлена система, диск nvme0n1 пустой и будет использован под хранение образов виртуальных машин.

Пример команды для создания пула ZFS Вы видите ниже. Обратите внимание на параметр ashift. При помощи него ZFS определяет минимальный размер транзакции (2ashift). По поводу значения этого параметра нет единой точки зрения, я придерживаюсь мнения, что при создании пула на SSD его значение должно быть 13, для HDD его значение нужно выставить в 12. Если сомневаетесь - используйте значение 12, в любом случае, критичного влияния на производительность дисковой системы он не окажет. Также, не забудьте правильно указать путь к устройству. Если сомневаетесь, выполните команду fdisk -l, она покажет Вам информацию обо всех дисках, их разделах и вывыдет полный путь к каждому диску. Команда ниже создаст пул с именем data на устройстве nvme0n1. Название пула изменять нельзя!

ВНИМАНИЕ! Данная команда УНИЧТОЖИТ ВСЕ ДАННЫЕ НА УКАЗАННОМ ДИСКЕ! ЕСЛИ У ВАС НА ЭТОМ ДИСКЕ УЖЕ ЛЕЖАТ ОБРАЗЫ ИГР PlayKey, то смотрите следующий пункт

zpool create -o ashift=12 -f data /dev/nvme0n1
zfs create -p data/kvm/desktop

В случае, если Вы уже скачивали образы игр PlayKey на этот диск, выполните следующую команду:

zpool import data

Копирование игр с другого хоста

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

На новом хосте создайте папку для хранения ключей и настройте права доступа:

mkdir /root/.ssh
chmod 700 /root/.ssh

Включите авторизацию по открытому ключу для ssh. Для этого отредактируйте конфигурационный файл демона sshd командой nano /etc/ssh/sshd_config и найдите там строчку PubkeyAuthentication. Раскомментируйте ее (удалите символ # в начале строки). Строка должна выглядеть так:

PubkeyAuthentication yes

Сохраните файл, выйдите из редактора и перезапустите демон sshd командой:

systemctl restart sshd

Сгенерируйте SSH-ключи для пользователя root на уже работающем хосте:

sudo su
ssh-keygen -t ecdsa -b 521

Путь для ключа оставьте по умолчанию (просто нажмите Enter), кодовую фразу тоже вводить не нужно. Примерный вывод результатов:

# ssh-keygen -t ecdsa -b 521
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:BKKNlwGDVTAAw5Hwq2E6D31Z+FgMORJm2UFpnJ08XWY root@hostname
The key's randomart image is:
+---[ECDSA 521]---+
|O=%O**.o .E      |
|.B.B*==..o       |
|  =.B  ..        |
|   + = .         |
|... . + S        |
|o+   *           |
|= . + .          |
| + .             |
|  .              |
+----[SHA256]-----+

Теперь передайте открытый ключ на новый хост

scp /root/.ssh/id_ecdsa.pub <IP-адрес нового хоста>:/root/.ssh/authorized_keys

После этого на новом хосте задайте нужные права на файл authorized_keys:

chmod 600 /root/.ssh/authorized_keys

Теперь проверьте подключение со старого хоста на новый:

ssh <IP-адрес нового хоста>

Подключение должно осуществиться без запроса пароля. Для завершения подключения введите команду exit

Для просмотра игр, установленных на старом хосте, дайте команду zfs list -t snapshot. Вывод будет примерно таким:

# zfs list -t snapshot
NAME                                                                USED  AVAIL  REFER  MOUNTPOINT
data/kvm/desktop/csgo@1134                                         2.15M      -  21.5G  -
data/kvm/desktop/csgo@1182                                            0B      -  21.5G  -
data/kvm/desktop/dota2@2742                                         325M      -  28.4G  -
data/kvm/desktop/dota2@2787                                           0B      -  28.4G  -
data/kvm/desktop/fortnite@2474                                     3.78M      -  83.5G  -
data/kvm/desktop/fortnite@2504                                        0B      -  83.5G  -
data/kvm/desktop/gta5@2649                                         3.41M      -  90.2G  -
data/kvm/desktop/gta5@2664                                            0B      -  90.2G  -
data/kvm/desktop/launchers@2793                                    25.8M      -  3.29G  -
data/kvm/desktop/launchers@2823                                       0B      -  3.29G  -
data/kvm/desktop/overwatch@2665                                    2.62M      -  24.2G  -
data/kvm/desktop/overwatch@2680                                       0B      -  24.2G  -
data/kvm/desktop/pubg@2066                                         1.59G      -  28.5G  -
data/kvm/desktop/pubg@2775                                            0B      -  28.9G  -
data/kvm/desktop/rdr2@125                                          3.58G      -   117G  -
data/kvm/desktop/rdr2@592                                             0B      -   117G  -
data/kvm/desktop/tarkov@1373                                          0B      -  17.9G  -
data/kvm/desktop/thestore@2070                                     1.74G      -  1.74G  -
data/kvm/desktop/thestore@2084                                        0B      -  13.1G  -
data/kvm/desktop/twwarhammer2@400                                  56.0G      -  56.2G  -
data/kvm/desktop/twwarhammer2@2227                                    0B      -  57.5G  -
data/kvm/desktop/windows@139                                       7.83G      -  36.8G  -
data/kvm/desktop/windows@231                                        966M      -  36.8G  -
data/kvm/desktop/windows@270                                          0B      -  36.8G  -
data/kvm/desktop/windows-vm1-270@d35b669fefa7f4255adaa804abf6895d    16K      -  36.8G  -
data/kvm/desktop/witcher3@230                                         0B      -  55.6G  -
data/kvm/desktop/wow@2681                                           203M      -  73.9G  -
data/kvm/desktop/wow@2801                                             0B      -  74.0G  -

Данные выводятся в формате <dataset>@<snapshot>, т.е. data/kvm/desktop/rdr2@125 означает датасет с именем data/kvm/desktop/rdr2, снимок 125. Как можно заметить, снимков несколько, т.к. игры периодически обновляются. Нас интересуют только последние снимки.

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

yum -y install pv

В первую очередь нужно передать на новый хост данные системного диска виртуальной машины. Имя датасета - data/kvm/desktop/windows Определите имя последнего снимка этого датасета, в примере это 270. Так же, для первоначального запуска понадобится датасет data/kvm/desktop/launchers и data/kvm/desktop/gta5

Передача осуществляется командой zfs send -v <dataset@snapshot> | pv -L <максимальная скорость> | ssh <IP address> zfs recv <dataset> Например, для того чтобы скопировать системный диск виртуальной машины с ограничением максимальной скорости 50МБайт/сек на хост с адресом 192.168.50.10:

zfs send -v data/kvm/desktop/windows@270 | pv -L 50M | ssh 192.168.50.10 zfs recv data/kvm/desktop/windows

Точно таким же образом необходимо скопировать нужные игры:

zfs send -v data/kvm/desktop/csgo@1182 | pv -L 50M | ssh 192.168.50.10 zfs recv data/kvm/desktop/csgo

Настройка сети

Для работы GameServer необходимо чтобы Ваш роутер поддерживал технологию UPnP, т.к. GameServer открывает необходимые порты автоматически. Настройка UPnP выходит за рамки данного руководства и я советую обратиться к документации Вашего роутера. Обычно, настройка UPnP достаточно проста. Сложности могут быть, если Ваш компьютер подключен к роутеру не напрямую, а через управляемый коммутатор. Дело в том, что на управляемых коммутаторах, зачастую, Multicast-трафик заблокирован. В этом случае, опять таки обратитесь к документации по настройке Вашего сетевого обрудования.

Установка GameServer

Дистрибутив GameServer не распространяется открыто! Вам необходимо зарегистрироваться как участник PlayKey Pro и получить официальный образ!

После получения официального образа (это файл с расширением .img) откройте его при помощи 7-zip. В корне архива найдите скрипт с именем startup.py и откройте его в любом текстовом редакторе. Найдите функцию Image и посмотрите значение переменной url. По этой ссылке находится непосредственно сам образ системы. Скачайте его, запишите на USB-флэшку и подключите ее к компьютеру, на котором Вы настраивете PlayKey Pro.

Создайте каталог командой mkdir /mnt/playkey

Дайте команду fdisk -l и найдите имя устройства и раздела на флэшке. Пример вывода команды:

_images/pk-usb-flash.png

В данном случае, флэшка определилась как устройство /dev/sda, нужный нам раздел - /dev/sda3

Смонтируйте раздел в директорию, которую создали ранее:

mount /dev/sda3 /mnt/playkey

Скопируйте файл /mnt/playkey/usr/local/etc/gameserver/template.xml в папку /root

Просмотрите содержимое файла /mnt/playkey/usr/local/bin/updater_main.sh. В конце файла вы увидите ссылку. Откройте любой браузер и вставьте в адресную строку эту ссылку и допишите к ней знак вопроса и software=GameServer. На открывшейся странице посмотрите значения параметров url, software, filename и version. Скомпонуйте это в одну строку вида url/software/version/filename и вставьте ее адресную строку новой вкладки браузера и у Вас начнется скачивание установочного файла GameServer.

Скопируйте файл, который Вы скачали в домашнюю папку пользователя root - /root и выполните следующую команду:

yum -y install /root/<имяфайла>

Создайте и отредактируйте файл с настройками nano /usr/local/etc/gameserver/conf.xml

<Config>
    <Host name="a">
        <UserId>1</UserId>
        <PlaykeyApi>http://api.playkey.net/</PlaykeyApi>
        <RemoteHost>52.136.241.61</RemoteHost>
        <RemotePort>13001</RemotePort>
        <AdapterName>NVIDIA GeForce GTX 1080 Ti</AdapterName>
        <SystemSnapshot>data/kvm/desktop/windows@</SystemSnapshot>
        <TemplateFile>/usr/local/etc/gameserver/template.xml</TemplateFile>
        <FilebeatConfig>/usr/local/share/GameServer/logstash/filebeat.yml</FilebeatConfig>
        <LogstashAddress>elk.playkey.net:12122</LogstashAddress>
        <VmAutoconf>
            <Minimal>
                <Memory unit="GiB">8</Memory>
                <Cpu>4</Cpu>
            </Minimal>
            <Memory unit="GiB">16</Memory>
            <Cpu>4</Cpu>
        </VmAutoconf>
    </Host>
</Config>

Обратите внимание на параметры UserID, TemplateFile и раздел VmAutoconf. Первый параметр - это Ваш идентификатор в PlayKey и посмотреть его значение можно в личном кабинете по адресу https://playkey.net/en/account. Второй параметр - это путь к шаблону виртуальной машины. Если у Вас компьютер с процессором AMD, то необходимо это значение изменить на /usr/local/etc/gameserver/template_amd.xml, этот шаблон доступен после установки GameServer. В случае с процессором Intel, используйте файл template.xml, который Вы скопировали из официального образа.

Теперь оцените ресурсы Вашего компьютера для запуска игр. Количество одновременно запускаемых игр ограничено тремя параметрами - количество дискретных видеокарт (видеокарта встроенная в процессор или материнскую плату не учитывается), количество ядер и количество оперативной памяти. Минимальные требования для виртуальной машины - 4 ядра, 8ГБ оперативной памяти и отдельная видеокарта. Таким образом, если у вас всего одна дискретная видеокарта, Вы сможете запускать всего одну виртуальную машину. Что касается оперативной памяти, то 8ГБ на одну виртуальную машину - это необходимый минимум, но некоторые игры требуют значительно большего объема. Например, Red Dead Redemption 2 требует 16Гб. Также, не забывайте про ресурсы потребляемые непосредственно операционной системой, в которой работает виртуальная машина. Стабильная работа обеспечивается на 6ГБ. Перейдем к процессорным ядрам. Большинство игр потребуют 4 ядра, Red Dead Redemption 2 и Warzone - по 6 ядер. Два ядра необходимо операционной системе. Предположим, что Ваша система имеет следущую конфигурацию - 12 физических ядер/24 логических , 32ГБ оперативной памяти и 2 видеокарты. Вы сможете запустить 2 виртуальных машины (ограничение - количество видеокарт), каждую с (32-6)/2=13ГБ оперативной памяти.

Запуск GameServer

После внесения необходимых изменений в конфигурационные файлы необходимо включить и запустить GameServer.

systemctl enable gameserver --now

Скорее всего, Ваш компьютер сразу же перезагрузится, т.к. GameServer вносит некоторые изменения в конфигурацию системы.

После перезагрузки необходимо подождать 2-3 минуты, возможно дольше и проверить роутер, открылись ли порты для GameServer. После этого нужно посмотреть, начался ли процесс загрузки данных для виртуальных машин.

journalctl -fn1000 -tgameserver/downloader