JAVA GELİŞTİRME PAKETİ(JDK) KURULUMU VE ORTAM DEĞİŞKENLERİNİ AYARLAMA
13 December 2022
Scalelite'in bu sürümünü dağıtmak için önerilen yöntem, Docker konteynerlerini başlatmak ve yönetmek için systemd'yi kullanmaktır. Scalelite kaplarını çalıştıracak her ana bilgisayarda bir miktar başlangıç hazırlığı yapılması gerekir.
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
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-key fingerprint 0EBFCD88
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
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
sudo 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
sudo nano /etc/systemd/system/scalelite.target
[Unit]
Description=Scalelite
[Install]
WantedBy=multi-user.target
scalelite-api Api Hizmeti
sudo 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 Kurulumu – Servislerin Açılması (Api,Web ve Merkezi Yönetim Servisi)
systemctl enable scalelite.target
systemctl enable scalelite-api.service
systemctl enable scalelite-nginx.service
systemctl enable scalelite-poller.service
systemctl enable scalelite-recording-importer.service
Servis Başlatılması ve Durum Kontrolü
systemctl restart scalelite.target
systemctl status scalelite-api.service
systemctl status scalelite-nginx.service
systemctl status scalelite-poller.service
systemctl status scalelite-recording-importer.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.