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 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
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.