نصب راه‌اندازی BigBlueButton

نصب BigBlueButton

BigBlueButton یک نرم افزار open source (منبع باز) است که برای برگزاری کلاس و جلسات آنلاین در توزیع‌های مختلف لینوکس استفاده می‌شود. برای نصب این نرم افزار بر روی یک سرور اختصاصی لینوکس، می‌توانید از ابزار‌هایی که کار نصب را آسان می‌کنند استفاده کنید.
در این مقاله، می‌خواهیم نحوه نصب BigBlueButton ورژن 2.6 را به شما نشان دهیم. با مبین هاست همراه باشید…

چیزهایی که باید قبل از نصب BigBlueButton بدانید

چیزهایی که باید قبل از نصب BigBlueButton بدانید

بهتر است نرم افزار BigBlueButton را بر روی یک سرور مجازی 64 بیتی “اختصاصی” و “تمیز” اوبونتو 20.04 نصب کنید. منظور از سرور “تمیز”، سروری است که هیچ نرم افزار وب‎ سروری (مانند آپاچی،وب سرور nginx و غیره) یا برنامه‌های کاربردی وب (مانند plesk و غیره) که به پورت 80/443 متصل هستند، بر روی آن نصب نشده ‎است. منظور از “اختصاصی” نیز این است که از سرور برای هیچ چیز دیگری به جز BigBlueButton (و برنامه‌های مربوط به آن مانند Greenlight و غیره) استفاده نخواهد شد.
اگر در حال حاضر نسخه‌های قبلی این نرم افزار مانند 2.4 را بر روی سیستم خود دارید و می‌خواهید آن را به جدیدترین نسخه ارتقا دهید، توصیه می‌کنیم که قبل از ارتقا، یک سرور اختصاصی اوبونتو 20.04 را راه‎اندازی کرده و سپس، داده‌های رکورد‎شده خود را بر روی سرور منتقل کنید. BigBlueButton از ارتقا سرور 2.5 به 2.6 پشتیبانی می‌کند.

موارد مورد نیاز سرور

حداقل الزامات برای نصب bbb عبارتند از:

  • سیستم عامل 64 بیتی اوبونتو نسخه 20.04 با هسته لینوکس 5.x؛
  • نصب آخرین نسخه docker؛
  • 16 گیگابایت حافظه با قابلیت تعویض؛
  • CPU 8 هسته‌ای، با عملکرد تک-نخی بالا؛
  • 500 گیگابایت فضای دیسک خالی برای رکورد کردن. اگر ریکورد جلسات در سرور غیرفعال باشد، به 50 گیگابایت نیاز دارید؛
  • پورت‌های TCP قابل دسترسی 80 و 440؛
  • پورت‌های UDP قابل دسترسی 16384 – 32768؛
  • پهنای باند (متقارن) حداقل 250 مگابایت بر ثانیه؛
  • پورت‌های TCP 80 و 440 که توسط پروکسی معکوس یا وب‎سرور دیگری استفاده نمی‌شوند؛
  • آدرس‌های IPV4 و IPV6.

اگر می‌خواهید نصب BigBlueButton را در سرور مجازی ایران و بر روی یک ماشین مجازی در فضای ابری انجام دهید، به شما توصیه می‌کنیم که از ماشینی استفاده کنید که CPU اختصاصی دارد.

البته، اگر می‌خواهید پس از نصب bbb از آن برای توسعه محلی کسب و کار جدید و نوپای خود استفاده کنید، می‌توانید به جای ملزومات بالا، از موارد زیر استفاده کنید و پس از گسترش کسب و کارتان، به تدریج به پیکربندی سیستم‎‌تان اضافه کنید:

  • CPU 4 هسته‌ای با 8 گیگابایت حافظه؛
  • انجام نصب بر روی یک ماشین مجازی محلی؛
  • 50 گیگابایت فضای خالی؛
  • فقط آدرس IPV4.

یادتان باشد در هر محیطی که عملیات راه‎اندازی را اجرا می‌کنید، مراحل راه‎اندازی شامل پیکربندی گواهی SSL در سرور nginx است. دلیل این پیکربندی این است که در حال حاضر تمامی مرورگر‌ها، زمانی که یک صفحه از طریق ارتباط بلادرنگ وب (WebRTC) درخواست دسترسی به وب‎کم یا میکروفون کاربر را می‌دهد، به گواهی SSL معتبر از وب‎سرور نیاز دارند. در صورتی که تلاش کنید فقط با یک آدرس IP به یک وب‎سرور BigBlueButton دسترسی داشته باشید، مرورگر به صورت خودکار، دسترسی مشتری BigBlueButton را از وب‎کم یا میکروفون شما مسدود می‌کند.

بررسی‌های قبل از نصب BigBlueButton

قبل ازاینکه به سراغ نصب BigBlueButton برویم، اجازه دهید که برای محکم‎کاری هم که شده، چند بررسی سریع داشته باشیم تا مطمئن شویم که تمام موارد لازم را در اختیار داریم. با انجام این بررسی‌ها، خیالمان راحت است که احتمال بروز مشکل در زمان نصب را به حداقل می‌رسانیم.

در قدم اول، باید با اجرای قطعه کد زیر، بررسی کنید که محل سرور en_US.UTF-8 است:

$ cat /etc/default/locale
LANG="en_US.UTF-8"

توجه داشته باشید که در ابتدای دستورات، عبارت $ قرار می‌گیرد. پس از اجرای کد دستوری، نتیجه دستور بدون عبارت $ ظاهر می‌شود. اگر پس از اجرای دستور بالا، عبارت LANG=”en_US.UTF-8″ را نمی‌بینید، کد زیر را اجرا کنید تا محل بر روی en_US.UTF-8 تنظیم شود:

$ sudo apt-get install -y language-pack-en

$ sudo update-locale LANG=en_US.UTF-8

در قدم بعدی، باید از سیستم خارج شده و دوباره وارد جلسه SSH شوید تا پیکربندی محلی برای جلسه شما مجددا بارگیری شود. در ادامه، دستور cat /etc/default/locale را دوباره اجرا کنید و بررسی کنید که آیا عبارت LANG=”en_US.UTF-8″ ظاهر می‌شود یا خیر.
توجه: اگر عبارت LC_ALL=en_US.UTF-8 را در خروجی مشاهده کردید، ورودی LC_ALL را از /etc/default/locale حذف کرده و از سیستم خارج شده و یکبار دیگر وارد شوید.

سپس، کد sudo systemctl show-environment را اجرا کرده و مطمئن شوید که عبارت LANG=en_US.UTF-8 در خروجی ظاهر می‌شود.

$ sudo systemctl show-environment
LANG=en_US.UTF-8
PATH=/usr/local/sbin: /usr/local/bin: /usr/sbin: /usr/bin: /sbin: /bin

اگر پیام بالا برایتان ظاهر نشد، کد sudo systemctl set-environment LANG=en_US.UTF-8 را اجرا کرده و مجددا کد sudo systemctl show-environment بالا را اجرا کنید و مطمئن شوید که عبارت LANG=en_US.UTF-8 در خروجی ظاهر می‌شود.
در قدم بعدی، با استفاده از کد دستوری free -h بررسی کنید که آیا سرور شما حداقل 16 گیگابایت فضای خالی دارد یا خیر. در نمونه زیر، یک نمونه از خروجی این دستور را مشاهده می‌کنید:

$ free -h

total used free shared buff/cache available

Mem: 15G 3.1G 1.0G 305M 11G 12G

Swap: 0B 0B 0B

در نمونه بالا، مشاهده می‌کنید که در ستون total، فضای خالی سرور 15 گیگابایت است. این مقدار حافظه برای نصب بیگ بلو باتن کافی نیست و حافظه سرور باید به حداقل 16 گیگابایت برسد. با این حال، اگر در یک محیط در حال توسعه کار می‌کنید، 8 گیگابایت برای شما کافی است.
در قدم بعدی، باید با کد دستوری زیر، بررسی کنید که سرور شما دارای سیستم عامل اوبونتو 20.04 است:

$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=20.04

DISTRIB_CODENAME=focal

DISTRIB_DESCRIPTION=”Ubuntu 20.04.4 LTS”

سپس، باید بررسی کنید که نسخه سیستم عامل اوبونتو، 64 بیتی است یا خیر:

$ uname -m

x86_64

سپس، با استفاده از کد دستوری زیر، بررسی کنید که سرور شما از آدرس‌های IPV6 پشتیبانی می‌کند:

$ ip addr | grep inet6

inet6:: 1/128 scope host

اگر پس از اجرای کد بالا، عبارت inet6:: 1/128 scope host را مشاهده نمی‌کنید، باید پس از نصب بیگ بلو باتن، پیکربندی FreeSWITCH را تغییر دهید تا پشتیبانی از IPV6 غیرفعال شود.
در قدم بعدی، با کد زیر، بررسی می‌کنید که سرور شما هسته لینوکس 5.x را اجرا می‌کند یا خیر:

$ uname -r

5.4.x-xx-generic

سپس، باید بررسی کنید که CPU سرور شما حداقل 8 هسته داشته باشد:

$ grep -c ^processor /proc/cpuinfo

8

حال شاید برای شما سوال پیش بیاید که چرا BigBlueButton فقط از اوبونتو 20.04 نسخه 64 بیتی پشتیبانی می‌کند؟ جواب بسیار ساده است. این توزیع از لینوکس واقعا خوب کار می‌کند و نصب قوی، آزمایش شده و مستندی دارد.

نصب BigBlueButton

نصب BigBlueButton

برای نصب BigBlueButton می‌توانید از اسکریپت bbb-install-2.6.sh استفاده کنید.

با کلیک بر روی لینک بالا، به صفحه حاوی اسکریپت می‌روید و می‌توانید توضیحات کد را (در ابتدای توضیحات، علامت # قرار دارد) مشاهده کنید. این اسکریپت، آخرین نسخه BigBlueButton 2.6 را با استفاده از -v focal-260 نصب می‌کند و یا در صورت نصب بودن این برنامه، آن را ارتقا می‌دهد. همچنین می‌تواند Greenlight (-g) و یا firewall (-w) را نصب کند. توجه داشته باشید که پس از BigBlueButton 2.6 شما نمی‌توانید از دموهای API استفاده کنید. در عوض توصیه می‌کنیم به جای آن، از Greenlight یا API MATE استفاده کنید.

wget -qO- https: //ubuntu.bigbluebutton.org/bbb-install-2.6.sh | bash -s -- -v focal-260 -s bbb.example.com -e notice@example.com -g -w

پس از اینکه اجرای اسکریپت bbb-install-2.6.sh تمام شد، می‌توانید با استفاده از دستور bbb-conf –check وضعیت سرور خود را بررسی کنید. پس از اجرای این دستور، باید خروجی زیر را مشاهده کنید:

$ sudo bbb-conf --check

BigBlueButton Server 2.6.0-alpha.1 (54)
 Kernel version: 5.4.0-107-generic
 Distribution: Ubuntu 20.04.4 LTS (64-bit)
 Memory: 16393 MB
 CPU cores: 2

/etc/bigbluebutton/bbb-web.properties (override for bbb-web)
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web)
 bigbluebutton.web.serverURL: https://bbb.example.com
 defaultGuestPolicy: ALWAYS_ACCEPT
 svgImagesRequired: true
 defaultMeetingLayout: CUSTOM_LAYOUT

/etc/nginx/sites-available/bigbluebutton (nginx)
 server_name: bbb.example.com
 port: 80, [::]:80
 port: 443 ssl

/opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH)
 local_ip_v4: 133.203.31.212
 external_rtp_ip: 133.203.31.212
 external_sip_ip: 133.203.31.212

/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
 ext-rtp-ip: $${local_ip_v4}
 ext-sip-ip: $${local_ip_v4}
 ws-binding: 133.203.31.212:5066
 wss-binding: 133.203.31.212:7443

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
 playback_host: bbb.example.com
 playback_protocol: https
 ffmpeg: 4.2.7-0ubuntu0.1

/usr/share/bigbluebutton/nginx/sip.nginx (sip.nginx)
 proxy_pass: 133.203.31.212
 protocol: http

/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml (bbb-webrtc-sfu)
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml (bbb-webrtc-sfu - override)
 mediasoup.webrtc.*.announcedIp: 133.203.31.212
 mediasoup.plainRtp.*.announcedIp: 133.203.31.212
 kurento.ip: 133.203.31.212
 kurento.url: ws://127.0.0.1:8888/kurento
 freeswitch.sip_ip: 133.203.31.212
 recordScreenSharing: true
 recordWebcams: true
 codec_video_main: VP8
 codec_video_content: VP8

/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml (HTML5 client)
/etc/bigbluebutton/bbb-html5.yml (HTML5 client config override)
 build: 8
 kurentoUrl: wss://bbb.example.com/bbb-webrtc-sfu
 defaultFullAudioBridge: sipjs
 defaultListenOnlyBridge: fullaudio
 sipjsHackViaWs: true

/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml (STUN Server)
 stun: stun.l.google.com:19302


# Potential problems described below

اگر خطای پیکربندی یا خطای نصب BigBlueButton رخ دهد، در خط آخر (Potential problems) پیامی برای شما نوشته می‌شود. این پیام‌ها حاوی توصیه‌هایی درباره نحوه حل مشکل هستند.

همچنین، می‌توانید با استفاده از دستور sudo bbb-conf –status بررسی کنید که تمام فرایند‌های BigBlueButton شروع شده و به درستی در حال اجرا هستند یا خیر:

 

$ sudo bbb-conf –status

nginx —————————————————► [✔ – active]

freeswitch ————————————► [✔ – active]

redis-server ——————————► [✔ – active]

bbb-apps-akka —————————► [✔ – active]

bbb-fsesl-akka ————————► [✔ – active]

mongod ————————————————► [✔ – active]

bbb-html5 —————————————► [✔ – active]

bbb-webrtc-sfu ————————► [✔ – active]

kurento-media-server ——► [✔ – active]

bbb-html5-backend@1 ———► [✔ – active]

bbb-html5-backend@2 ———► [✔ – active]

bbb-html5-frontend@1 ——► [✔ – active]

bbb-html5-frontend@2 ——► [✔ – active]

etherpad ——————————————► [✔ – active]

bbb-web ———————————————► [✔ – active]

bbb-pads ——————————————► [✔ – active]

علاوه براین، می‌توانید از دستور dpkg -l | grep bbb- برای فهرست‎کردن تمام پکیج‌های اصلی BigBlueButton استفاده کنید:

# dpkg -l | grep bbb-
ii bbb-apps-akka 2.6-10 all BigBlueButton Apps (Akka)
ii bbb-config 1:2.6-4 amd64 BigBlueButton configuration utilities
ii bbb-etherpad 1:2.6-2 amd64 The EtherPad Lite components for BigBlueButton
ii bbb-freeswitch-core 2:2.6-3 amd64 BigBlueButton build of FreeSWITCH
ii bbb-freeswitch-sounds 1:2.6-1 amd64 FreeSWITCH Sounds
ii bbb-fsesl-akka 2.6-5 all BigBlueButton FS-ESL (Akka)
ii bbb-html5 1:2.6-8 amd64 The HTML5 components for BigBlueButton
ii bbb-learning-dashboard 1:2.6-3 amd64 BigBlueButton bbb-learning-dashboard
ii bbb-libreoffice-docker 1:2.6-1 amd64 BigBlueButton setup for LibreOffice running in docker
ii bbb-mkclean 1:2.6-1 amd64 Clean and optimize Matroska and WebM files
ii bbb-pads 1:2.6-8 amd64 BigBlueButton Pads
ii bbb-playback 1:2.6-2 amd64 BigBlueButton playback
ii bbb-playback-presentation 1:2.6-3 amd64 BigBluebutton playback of presentation
ii bbb-record-core 1:2.6-4 amd64 BigBlueButton record and playback
ii bbb-web 1:2.6-5 amd64 BigBlueButton API
ii bbb-webrtc-sfu 1:2.6-6 amd64 BigBlueButton WebRTC SFU

با نصب Greenlight، می‌توانید آدرس https: //<hostname>/b را در یک مرورگر باز کرده ( به جای <hostname> نام میزبانی که در دستور bbb-install-2.6.sh مشخص کرده‌اید را وارد کنید)، یک حساب محلی ساخته، یک اتاق بسازید و به آن ملحق شوید. همچنین می‌توانید با ارائه یکپارچه‌سازی آدرس سرور و رمز مشترک، BigBlueButton را با یکی از ادغام‌های شخص ثالث، یکی کنید. برای نمایش این اطلاعات، از دستور bbb-conf –secret استفاده کنید:

$ sudo bbb-conf –secret

URL: https: //bbb.example.com/bigbluebutton/

Secret: 330a8b08c3b4c61533e1d0c334

Link to the API-Mate:

https: //mconf.github.io/api-mate/#server=https: //bbb.example.com/bigbluebutton/&sharedSecret=330a8b08c3b4c61533e1d0c334

لینکی که به API-Mate پیوند شده، صفحه‌ای به آدرس https: //mconf.github.io/api-mate/ را باز می‌کند. این لینک به شما این امکان را می‌دهد که تماس‌های API معتبر را به سرورتان ارسال کنید. با استفاده از این قابلیت، بدون نیاز به ابزارهایی مانند Greenlight، می‌توانید تست‎کردن را به راحتی انجام دهید.

موارد دیگر

پیکربندی فایروال (در صورت نیاز)

اگر در زمان نصب BigBlueButton بین خود و کاربرانتان یک فایروال قرار داده‌اید، باید آن را پیکربندی کنید.

بروزرسانی BigBlueButton 2.6

می‌توانید با اجرای مجدد دستور bbb-install-2.6.sh آخرین نسخه BigBlueButton را دانلود و نصب کنید.

ارتقا از BigBlueButton 2.5

برای این کار، باید دو مرحله زیر را دنبال کنید:

  • با استفاده از دستور sudo apt purge bbb-demo مطمئن شوید که bbb-demo نصب نشده است.
  • سپس، کد bbb-install-2.6.sh را اجرا کنید تا آخرین نسخه BigBlueButton 2.6 بر روی نسخه 2.5 دانلود و نصب شود.

ارتقا از BigBlueButton 2.4

اگر می‌خواهید BigBlueButton 2.4 یا نسخه 2.3 را ارتقا دهید، پیشنهاد می‌کنیم که یک سرور جدید اوبونتو 20.04 را با BigBlueButton 2.5 راه‎اندازی کرده و سپس رکوردهای موجود را از سرور قدیمی کپی کنید.

راه اندازی مجدد سرور

هر زمانی که خواستید، می‌توانید سرور BigBlueButton را با استفاده از دستورات زیر مجددا راه‎اندازی کنید:

$ sudo bbb-conf –restart

$ sudo bbb-conf –check

دستور bbb-conf –check برخی از فایل‌های گزارش‎شده را برای بررسی پیام‌های خطا، اسکن می‌کند.

مراحل پس از نصب BigBlueButton

مراحل پس از نصب BigBlueButton

اگر از این سرور برای هدف مهمی استفاده می‌کنید، باید کارهای زیر را انجام دهید:

  • سیستم‎تان را ایمن کنید: برای اینکار، می‌توانید دسترسی به پورت‎های خاص را محدود کنید.
  • سرور خود را طوری پیکربندی کنید که در پشت فایروال به کار خود ادامه دهد و یا آدرس IP خصوصی/عمومی داشته باشد.
  • اگر Greenlight را نصب کرده‌اید و دیگر به آن نیازی ندارید، آن را حذف کنید.
  • اگر سرور شما در اینترنت است و کاربران شما از پشت فایروال‌های محدود به آن دسترسی دارند، یک سرور TURN راه‎اندازی کنید.
  • با استفاده از ابزارهای آنلاین مانند ssllabs و غیره، پیکربندی HTTPS خود را آزمایش و بررسی کنید

رفع خطای Package locales-all is not available

پکیج bbb-libreoffice باید یک تصویر docker برای libreoffice بسازد. ممکن است در زمان نصب روی شبکه پشت فایروال، خطای زیر را دریافت کنید:

Package locales-all is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

E: Package ‘locales-all’ has no installation candidate

E: Unable to locate package libxt6

E: Unable to locate package libxrender1

The command ‘/bin/sh -c apt -y install locales-all fontconfig libxt6 libxrender1’ returned a non-zero code: 100

dpkg: error processing package bbb-libreoffice-docker (–configure):

installed bbb-libreoffice-docker package post-installation script subprocess returned error exit status 100

اوبونتو 20.04 از systemd-resolved که یک حل‎کننده محلی حافظه پنهان ارائه می‌دهد و آن را در /etc/resolv.conf ثبت می‌کند، برای حل مشکل استفاده می‌کند. اگر در زمان نصب BigBlueButton با این خطا روبرو شدید و یک name server محلی مانند 10.11.12.13 دارید، می‌توانید آن را به resolv.conf اضافه کنید:

echo "nameserver 10.11.12.13" > /etc/resolv.conf

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ده + ده =