Table of Contents |
---|
Развертывание сервера из образа в Yandex.Cloud Marketplace
Образ Flashphoner Web Call Server с почасовой оплатой доступен в Yandex.Cloud Marketplace. Данный вариант предпочтительнее для серверов с относительно коротким сроком жизни (до нескольких месяцев).
Для начала развертывания необходимы:
- активный аккаунт в Yandex.Cloud, облако и виртуальная приватная сеть в этом аккаунте
- дополнительно, доменные имена для привязки к экземплярам серверов
Развертывание и запуск экземпляра виртуальной машины
1. В Yandex.Cloud Marketplace найдите продукт Flashphoner Web Call Server или откройте страницу в Yandex.Cloud Marketplace
2. На странице продукта нажмите Create VM
3. Введите имя сервера, описание и регион расположения датацентра
4. В разделе Disks
выберите тип и размер диска
5. В разделе Computing resources
выберите тип процессора, количество процессоров, объем памяти. По умолчанию выставляются минимальные параметры. Обратите внимание, что параметр Guaranteed vCPU performance
должен быть равен 100%
6. В разделе Network settings
выберите доступную подсеть, при необходимости укажите вручную IP адреса
7. В разделе Access
укажите имя пользователя и публичный SSH ключ для доступа к серверу и нажмите Create VM
8. Дождитесь, пока ВМ не перейдет в статус Running
(возможно, потребуется обновить страницу)
Тестирование созданного экземпляра WCS
1. Подождите 30 секунд после перехода ВМ в статус Running
, чтобы скрипты развертывания ВМ успели отработать. Затем скопируйте публичный IP адрес
2. В новой вкладе браузера откройте URL https://public-ip:8444/admin/
, где public-ip
- публичный IP-адрес, скопированный на предыдущем шаге. Примите исключение безопасности (по умолчанию WCS использует самоподписанные SSL сертификаты)
Откроется страница входа в веб интерфейс WCS.
3. Скопируйте ID
из параметров ВМ
4. На странице входа в веб интерфейс WCS введите имя пользователя admin
, в качестве пароля используйте ID
, скопированный на предыдущем шаге
5. В веб интерфейсе выберите пример Two Way Streaming
6. Нажмите Connect
, затем Publish
. Разрешите браузеру доступ к камере и микрофону
7. После того, как под окном Local
отобразится PUBLISHING
, нажмите Play
Браузер отправляет медиапоток на сервер и играет его с сервера. Созданный экземпляр WCS работает.
Развертывание сервера с нуля из стандартного образа Linux
Начиная со сборки 5.2.759, WCS может быть развернут в Yandex.Cloud как с нуля на базе одного из стандартных образов Linux как отдельно стоящий медиа сервер или часть CDN с низкой задержкой. Этот вариант предпочтительнее для серверов с длительным сроком использования (от года и более)
Для начала развертывания необходимы:
- активный аккаунт в Yandex.Cloud, облако и виртуальная приватная сеть в этом аккаунте
- лицензия WCS для активации на сервере/серверах
- дополнительно, доменные имена для привязки к экземплярам серверов
Развертывание
...
и запуск экземпляра виртуальной машины
1. В консоли Yandex,Cloud перейдите в раздел "Compute Cloud - Virtual machines" и нажмите "Create VM", чтобы начать создание экземпляра сервера.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#!/bin/bash # export IPT="iptables" # External interface export WAN=eth0 # Clean iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Set default policies $IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT # Allow local traffic $IPT -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT $IPT -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT # Allow outgoing connections $IPT -A OUTPUT -o $WAN -j ACCEPT # Allow already established connections $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Enable packet fragmentation #$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Drop invalid packets $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Allow pings $IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT $IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT $IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # Allow SSH $IPT -A INPUT -p tcp --dport 22 -j ACCEPT # Allow DNS #$IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT # Allow NTP #$IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT # Allow WCS ports $IPT -A INPUT -p tcp --dport 80 -j ACCEPT $IPT -A INPUT -p tcp --dport 443 -j ACCEPT $IPT -A INPUT -p tcp --dport 8888 -j ACCEPT $IPT -A INPUT -p tcp --dport 8443 -j ACCEPT $IPT -A INPUT -p tcp --dport 1935 -j ACCEPT $IPT -A INPUT -p udp --dport 1935 -j ACCEPT $IPT -A INPUT -p tcp --dport 554 -j ACCEPT $IPT -A INPUT -p tcp --dport 3478 -j ACCEPT $IPT -A INPUT -p tcp --dport 8080 -j ACCEPT $IPT -A INPUT -p tcp --dport 8081 -j ACCEPT $IPT -A INPUT -p tcp --dport 8084 -j ACCEPT $IPT -A INPUT -p tcp --dport 8082 -j ACCEPT $IPT -A INPUT -p tcp --dport 8085 -j ACCEPT $IPT -A INPUT -p tcp --dport 8445 -j ACCEPT $IPT -A INPUT -p tcp --dport 8444 -j ACCEPT $IPT -A INPUT -p tcp --dport 10000:50000 -j ACCEPT $IPT -A INPUT -p udp --dport 10000:50000 -j ACCEPT $IPT -A INPUT -p tcp --dport 50999 -j ACCEPT $IPT -A INPUT -j DROP $IPT -A FORWARD -j DROP # Save the rules to file /sbin/iptables-save > /etc/sysconfig/iptables |
Установка и настройка WCS
1. Установите JDK. Для работы в условиях больших нагрузок рекомендуется JDK 12 или 14
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash sudo rm -rf jdk* curl -s https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz | tar -zx [ ! -d jdk-12.0.2/bin ] && exit 1 sudo mkdir -p /usr/java [ -d /usr/java/jdk-12.0.2 ] && sudo rm -rf /usr/java/jdk-12.0.2 sudo mv -f jdk-12.0.2 /usr/java [ ! -d /usr/java/jdk-12.0.2/bin ] && exit 1 sudo rm -f /usr/java/default sudo ln -sf /usr/java/jdk-12.0.2 /usr/java/default sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.2/bin/java" 1 sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-12.0.2/bin/jstack" 1 sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd" 1 sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-12.0.2/bin/jmap" 1 sudo update-alternatives --set "java" "/usr/java/jdk-12.0.2/bin/java" sudo update-alternatives --set "jstack" "/usr/java/jdk-12.0.2/bin/jstack" sudo update-alternatives --set "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd" sudo update-alternatives --set "jmap" "/usr/java/jdk-12.0.2/bin/jmap" |
...
Code Block | ||||
---|---|---|---|---|
| ||||
sudo yum install -y tcpdump mc iperf3 fontconfig |
3. Отключите SELinux
Code Block | ||||
---|---|---|---|---|
| ||||
sudo setenforce 0 |
4. Установите WCS
Code Block | ||||
---|---|---|---|---|
| ||||
curl -OL https://flashphoner.com/downloads/builds/WCS/5.2/FlashphonerWebCallServer-5.2.xxx.tar.gz tar -xzf FlashphonerWebCallServer-5.2.xxx.tar.gz cd FlashphonerWebCallServer-5.2.xxx sudo ./install.sh |
Здесь xxx - номер сборки WCS
5. Активируйте Вашу лицензию
Code Block | ||||
---|---|---|---|---|
| ||||
cd /usr/local/FlashphonerWebCallServer/bin sudo ./activation.sh |
Запуск и тест WCS
1. Запустите WCS
Code Block | ||||
---|---|---|---|---|
| ||||
sudo systemctl start webcallserver |
2. Войдите в веб-интерфейс сервера, откройте пример Two Way Streaming, опубликуйте и проиграйте поток test
Параметры пользователя admin по умолчанию
Yandex.Cloud поддерживает два варианта получения данных о запущенном инстансе: Google Cloud API endpoints и AWS EC2 API endpoints. Поэтому, начиная со сборки 5.2.921, WCS по умолчанию определяет облачную среду как Amazon.
В свою очередь, одно из главных требований Amazon - это уникальный пароль администратора для каждого инстанса, поэтому в качестве пароля в облачной среде Amazon используется уникальный instanceId, доступный через API или в EC2 консоли.
Таким образом, при запуске WCS в Yandex.Cloud, начиная со сборки 5.2.921, для пользователя admin по умолчанию устанавливается пароль, равный instanceId. Однако, этот параметр может не отображаться в консоли Yandex.Clouid. Для того, чтобы узнать instanceId, подключитесь к серверу по SSH и используйте следующую команду
Code Block | ||||
---|---|---|---|---|
| ||||
curl http://169.254.169.254/latest/meta-data/instance-id |