ScaleLite Kurulumu

Docker repository eklenmesi ve kurulum işlemleri

Aşağıdaki işlemler root yetkisi ile yapılmalıdır veya eksik komutların başına sudo ekleyiniz.

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable“
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Test

sudo docker run hello-world

ScaleLite için Docker network objesi oluşturulması

docker network create scalelite

SCALELİTE Taslak/Parametre dosyamız

Link: https://github.com/blindsidenetworks/scalelite#Configuration

URL_HOST=  ScaleLite dns adımız
SECRET_KEY_BASE= Ruby servislerinden erişilecek internal secret code
LOADBALANCER_SECRET= Disaridan (LMS/Sakai) erisilirken kullanilacak secret code
DATABASE_URL=  postgresql bağlantısı bilgisi   postgresql://username:password@IP
REDIS_URL=   redisserver bilgisi  redis://:password@IP:6379
WEB_CONCURRENCY=  puma web server job sayısı cpu/memory sayısına göre belirlenir her bir iş için 2 veya 256Mb ram için 1 olarak hesaplanmalı.
INTERVAL=  kaç saniyede bir bigbluebutton sunucu durumlarının toplanacağı, varsayılan 60
SCALELITE_TAG=  ScaleLiteSürüm Bilgisi v1
SCALELITE_RECORDING_DIR= Nfs kayıtlarının tutulacağı dizin /mnt/scalelite-recordings/var/bigbluebutton
NGINX_SSL=ssl erişimi olacak ise true yapılmalı
SCALELITE_NGINX_EXTRA_OPTS= ngix için parametreler (ssl dizini vb.)  –mount type=bind,source=/etc/letsencrypt,target=/etc/nginx/ssl,readonly

Örnek Dosya

nano etc/default/scalelite
URL_HOST=scalelite.alanadiniz.com
SECRET_KEY_BASE=InternalSecretCodeRubyTarafindanErisimIcin
LOADBALANCER_SECRET=ExternalSecretCodeLMSErisimiIcin
DATABASE_URL=postgresql://postgres:PostGreSqlSifresi@IpAdresiniz
REDIS_URL=redis://:RedisSifresi@IpAdresiniz:6379
WEB_CONCURRENCY=2
INTERVAL=30
SCALELITE_TAG=v1
SCALELITE_RECORDING_DIR=/mnt/scalelite-recordings/var/bigbluebutton
NGINX_SSL=true
SCALELITE_NGINX_EXTRA_OPTS=–mount type=bind,source=/etc/letsencrypt,target=/etc/nginx/ssl,readonly

SCALELITE SERVISLERININ OLUSTURULMASI

Güncel dosyalar https://github.com/blindsidenetworks/scalelite/tree/master/systemd adresinde yer almaktadır.

scalelite.target Tüm Servislerin Merkezi yönetimi için

nano /etc/systemd/system/scalelite.target

[Unit]
Description=Scalelite
[Install]
WantedBy=multi-user.target

scalelite-api Api Hizmeti

nano /etc/systemd/system/scalelite-api.service

[Unit]
Description=Scalelite API
After=network-online.target
Wants=network-online.target
Before=scalelite.target
PartOf=scalelite.target
[Service]
EnvironmentFile=/etc/default/scalelite
ExecStartPre=-/usr/bin/docker kill scalelite-api
ExecStartPre=-/usr/bin/docker rm scalelite-api
ExecStartPre=/usr/bin/docker pull blindsidenetwks/scalelite:${SCALELITE_TAG}-api
ExecStart=/usr/bin/docker run –name scalelite-api –env-file /etc/default/scalelite –network scalelite –mount type=bind,source=${SCALELITE_RECORDING_DIR},target=/var/bigbluebutton blindsidenetwks/scalelite:${SCALELITE_TAG}-api
[Install] WantedBy=scalelite.target

scalelite-nginx Nginx Hizmeti

nano /etc/systemd/system/scalelite-nginx.service

[Unit]
Description=Scalelite Nginx
After=network-online.target
Wants=network-online.target
Before=scalelite.target
PartOf=scalelite.target
After=scalelite-api.service
Requires=scalelite-api.service
After=remote-fs.target
[Service]
EnvironmentFile=/etc/default/scalelite
ExecStartPre=-/usr/bin/docker kill scalelite-nginx
ExecStartPre=-/usr/bin/docker rm scalelite-nginx
ExecStartPre=/usr/bin/docker pull blindsidenetwks/scalelite:${SCALELITE_TAG}-nginx
ExecStart=/usr/bin/docker run –name scalelite-nginx –env-file /etc/default/scalelite –network scalelite –publish 80:80 –publish 443:443 –mount type=bind,source=${SCALELITE_RECORDING_DIR}/published,target=/var/bigbluebutton/published,readonly $SCALELITE_NGINX_EXTRA_OPTS blindsidenetwks/scalelite:${SCALELITE_TAG}-nginx
[Install] WantedBy=scalelite.target

ScaleLite KurulumuServislerin Açılması (Api,Web ve Merkezi Yönetim Servisi)

systemctl enable scalelite.target
systemctl enable scalelite-api.service
systemctl enable scalelite-nginx.service

Servis Başlatılması ve Durum Kontrolü

systemctl restart scalelite.target
systemctl status scalelite-api.service
systemctl status scalelite-nginx.service

Hata izleme için

tail -f /var/log/syslog

Veritabanının Oluşturulması

docker exec -it scalelite-api bin/rake db:setup

systemctl restart scalelite.target

Eğer postgresql bağlantısı başarılıysa yukarıdaki gibi veritabanı ve tablolar oluşturulacaktır.

scalelite-poller BigBlueButton Toplantı/yük durumu kontrol servisi

nano /etc/systemd/system/scalelite-poller.service

[Unit]
Description=Scalelite Meeting Status Poller
After=network-online.target
Wants=network-online.target
Before=scalelite.target
PartOf=scalelite.target
After=scalelite-api.service
[Service]
EnvironmentFile=/etc/default/scalelite
ExecStartPre=-/usr/bin/docker kill scalelite-poller
ExecStartPre=-/usr/bin/docker rm scalelite-poller
ExecStartPre=/usr/bin/docker pull blindsidenetwks/scalelite:${SCALELITE_TAG}-poller
ExecStart=/usr/bin/docker run –name scalelite-poller –env-file /etc/default/scalelite –network scalelite blindsidenetwks/scalelite:${SCALELITE_TAG}-poller
[Install]
WantedBy=scalelite.target

scalelite-poller  Servisinin açılması

  systemctl enable scalelite-poller.service

Tüm Hizmetleri restart edelim

  systemctl restart scalelite.target

scalelite-poller  Servis durumu

  systemctl status scalelite-poller.service

scalelite-recording-importer BigBlueButton kayıtlarının import servisi

nano /etc/systemd/system/scalelite-recording-importer.service

[Unit]
Description=Scalelite Recording Importer
After=network-online.target
Wants=network-online.target
Before=scalelite.target
PartOf=scalelite.target
After=scalelite-api.service
After=remote-fs.target
[Service]
EnvironmentFile=/etc/default/scalelite
ExecStartPre=-/usr/bin/docker kill scalelite-recording-importer
ExecStartPre=-/usr/bin/docker rm scalelite-recording-importer
ExecStartPre=/usr/bin/docker pull blindsidenetwks/scalelite:${SCALELITE_TAG}-recording-importer
ExecStart=/usr/bin/docker run –name scalelite-recording-importer –env-file /etc/default/scalelite –network scalelite –mount type=bind,source=${SCALELITE_RECORDING_DIR},target=/var/bigbluebutton blindsidenetwks/scalelite:${SCALELITE_TAG}-recording-importer
[Install]
WantedBy=scalelite.target

scalelite-recording-importer  Servisinin açılması

  systemctl enable scalelite-recording-importer.service

Tüm Hizmetleri restart edelim

  systemctl restart scalelite.target

scalelite-recording-importer  Servis durumu

  systemctl status scalelite-recording-importer.service

Yukarıdaki işlemler tamamlandıktan sonra, aşağıdaki komut ile scalelite-api container içerisinde ./bin/rake servers komutunu çalıştırdığınızda No servers are configured yazısı çıkacaktır.

docker exec -it scalelite-api bin/rake servers

Bir sonraki yazıda sunucular nasıl eklenir ve yönetilir.