Εγκατάσταση και παραμετροποίηση

Ιστότοπος: Μάθε το gov.gr
Μάθημα: Big Blue Button - Εικονική τάξη και τηλεκπαίδευση
Βιβλίο: Εγκατάσταση και παραμετροποίηση
Εκτυπώθηκε από: Επισκέπτης (Guest user)
Ημερομηνία: Παρασκευή, 18 Οκτωβρίου 2024, 12:21 PM

1. Εγκατάσταση

Η εγκατάσταση της υπηρεσίας, υλοποιήθηκε σύμφωνα με τις οδηγίες που αναφέρονται στην επίσημη ιστοσελίδα του BigBlueButton στον παρακάτω σύνδεσμο:

https://docs.bigbluebutton.org/administration/install/

Αρχικά, δημιουργήθηκε εικονική μηχανή για τη φιλοξενία της υπηρεσίας, σε υποδομές cloud της ΕΔΥΤΕ, με λειτουργικό σύστημα Ubuntu 20.04 και τα εξής χαρακτηριστικά:

  • 16 GB RAM
  • 8 vCPUs
  • 60 GB HDD

Η επιλογή του λειτουργικού συστήματος Ubuntu, αποτελεί μονόδρομο καθώς είναι η μόνη διανομή η οποία υποστηρίζεται για την εγκατάσταση της πλατφόρμας. Επιπλέον, τα παραπάνω χαρακτηριστικά της εικονικής μηχανής, αποτελούν τα ελάχιστα προτεινόμενα για την παραγωγική λειτουργία της υπηρεσίας.

Σύμφωνα με το documentation της πλατφόρμας, η συγκεκριμένη εγκατάσταση μπορεί να υποστηρίξει μέχρι και 120 ταυτόχρονους ενεργούς χρήστες σε διαφορετικά δωμάτια. Θα πρέπει να επισημάνουμε πως σε περίπτωση που επιτρέπεται στους χρήστες να προχωρήσουν στην εγγραφή τηλεδιασκέψεων, το μέγεθος του διαθέσιμου αποθηκευτικού χώρου θα πρέπει να αυξηθεί σημαντικά και να ξεπεράσει τα 500 GB. Όπως γίνεται αντιληπτό στη συγκεκριμένη υλοποίηση η λειτουργία της εγγραφής τηλεδιασκέψεων είναι απενεργοποιημένη.

Ακόμα, για την ολοκλήρωση της εγκατάστασης, θα πρέπει να επιτραπεί η πρόσβαση στις πόρτες 80, 443 και 16384 – 32768. Σε περίπτωση που το επιθυμούμε, μπορούμε να προχωρήσουμε στις απαραίτητες ρυθμίσεις του firewall χειροκίνητα. Σε διαφορετική περίπτωση, μπορούμε με τα κατάλληλα ορίσματα στο script εγκατάστασης να πραγματοποιήσουμε αυτοματοποιημένη ρύθμιση του firewall.

Για την εγκατάσταση της τελευταίας έκδοσης του BigBlueButton (τη στιγμή που γράφεται το παρόν η τελευταία έκδοση είναι η 2.6), τρέχουμε την παρακάτω εντολή (θα πρέπει να έχουμε εγκαταστήσει την εντολή wget σε περίπτωση που δεν είναι εγκατεστημένη):

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

Σαν ορίσματα στην παραπάνω εντολή χρησιμοποιούνται το -v το οποίο αναφέρεται στην έκδοση του BigBlueButton που θα εγκατασταθεί (στην περίπτωση μας focal-260), το -s στο οποίο ορίζουμε το domain name που θα χρησιμοποιεί η υπηρεσίας μας (θα πρέπει να έχει δημιουργηθεί νωρίτερα) και το -e στο οποίο δηλώνεται το email του διαχειριστή της υπηρεσίας το οποίο θα χρησιμοποιηθεί για τη δημιουργία SSL πιστοποιητικού μέσω Let’s Encrypt (θα πρέπει να είναι ανοιχτή η πρόσβαση στην πόρτα 80). Φυσικά, υπάρχει η δυνατότητα για τη χρήση SSL πιστοποιητικού που θα εκδώσουμε εμείς.

Επιπλέον, με την παραπάνω εντολή, εκτός από την εγκατάσταση του BigBlueButton, προχωράμε στην εγκατάσταση του Greenlight καθώς και στην παραμετροποίηση του firewall, όπως αναφέρθηκε και νωρίτερα, με τα ορίσματα -g και -w αντίστοιχα.

Αφού ολοκληρωθεί η εκτέλεση του script, μπορούμε να ελέγξουμε αν έχει γίνει σωστά η παραμετροποίηση ή αν υπάρχουν κάποια πιθανά μελλοντικά προβλήματα εκτελώντας την εντολή bbb-conf --check. Ακόμα, μπορούμε να ελέγξουμε αν όλα τα services είναι ενεργά εκτελώντας την εντολή sudo bbb-conf --status, ενώ με την εντολή dpkg -l | grep bbb-, μπορούμε να προβάλουμε τα πακέτα του BigBlueButton που έχουν εγκατασταθεί.
Αφού έχουν ολοκληρωθεί οι παραπάνω διαδικασίες, μπορούμε να αποκτήσουμε πρόσβαση στο γραφικό περιβάλλον του Greenlight, εφόσον έχουμε επιλέξει την εγκατάσταση του, μέσω ενός φυλλομετρητή, στη διεύθυνση https://<hostname>/b, όπου hostname είναι το domain name που δηλώσαμε κατά την εγκατάσταση.

Σε περίπτωση κατά την οποία επιθυμούμε να χρησιμοποιήσουμε το BigBlueButton μέσα από κάποιο άλλο γραφικό περιβάλλον και όχι το Greenlight, όπως για παράδειγμα κάποιο LMS (eclass, moodle) ή κάποιο CMS (wordpress, zoomla) θα πρέπει να χρησιμοποιηθεί το κατάλληλο url και secret για τη διασύνδεσή τους. Αυτά τα βρίσκουμε εκτελώντας την εντολή bbb-conf --secret.

Τέλος, για να προχωρήσουμε στην αναβάθμιση στην τελευταία έκδοση της πλατφόρμας σε περίπτωση που είναι επιθυμητό, θα πρέπει να εκτελέσουμε το bbb-install script με την έκδοση την οποία επιθυμούμε να εγκαταστήσουμε.

2. Διαχείριση των services

Όπως αναφέρθηκε στην περιγραφή της υπηρεσίας, για την ορθή λειτουργία του BigBlueButton, θα πρέπει να είναι ενεργά τα παρακάτω services:

  • kurento media server
  • freeswitch
  • redis
  • nginx
  • MongoDB

Για να ελέγξουμε τη λειτουργία τους χρησιμοποιούμε την εντολή systemctl του λειτουργικού συστήματος. Για παράδειγμα, για να ελέγξουμε την κατάσταση του kurento media server, εκτελούμε την εντολή systemctl status kurento-media-server.

Όσο αφορά τον έλεγχο της λειτουργίας του BigBlueButton, επιτυγχάνεται με τη χρήση της εντολής bbb-conf [options]. Σε χρήση της εντολής αυτής αναφερθήκαμε και νωρίτερα χωρίς περισσότερες λεπτομέρειες, για τον έλεγχο της παραμετροποίησης της πλατφόρμας με την εντολή bbb-conf --check, αλλά και για την εμφάνιση του μυστικού κλειδιού για τη διασύνδεση της πλατφόρμας με άλλα λογισμικά, με την εντολή bbb-conf --secret. Αντίστοιχα για τον έλεγχο της κατάστασης του service, για την εκκίνηση του ή τη διακοπή λειτουργίας του χρησιμοποιούνται τα ορίσματα status, start, stop.

Τέλος, για τη λειτουργία του Greenlight, το οποίο όπως είπαμε αποτελεί το γραφικό περιβάλλον διαχείρισης του BigBlueButton, χωρίς όμως να είναι απαραίτητη η εγκατάστασή του, χρησιμοποιείται η λύση των containers και δημιουργούνται δύο containers, ένα για το greenlight και ένα για την postgres που αυτό χρησιμοποιεί. Το yaml αρχείο για την παραμετροποίηση των δύο containers βρίσκεται στον φάκελο του greenlight (docker-compose.yml), ενώ η παραμετροποίηση του Greenlight πραγματοποιείται μέσω του αρχείου .env, το οποίο βρίσκεται στον ίδιο φάκελο.

Για την εκκίνηση του Greenlight εκτελούμε την εντολή sudo docker-compose up -d, ενώ για την διακοπή λειτουργίας του την εντολή sudo docker-compose down. Για την εκτέλεση και των δύο εντολών θα πρέπει να βρισκόμαστε στο directory του Greenlight.

3. Απενεργοποίηση εγγραφής και δημιουργία χρηστών

Καθώς θα πρέπει να επιτρέπεται η πρόσβαση σε όλους για το γραφικό περιβάλλον του Greenlight, προτείνουμε την απενεργοποίηση της λειτουργίας εγγραφής για τους χρήστες, ώστε να αποφύγουμε τη δημιουργία ανεπιθύμητων χρηστών και την πρόσβαση στην υπηρεσία από αυτούς. Για την απενεργοποίηση της λειτουργίας, θα πρέπει να ορίσουμε την τιμή του “ALLOW_GREENLIGHT_ACCOUNTS” στο .env αρχείο σε false, ενώ στη συνέχεια απαιτείται επανεκκίνηση του Greenlight με τον τρόπο που αναφέραμε πιο πάνω.

Αφού απενεργοποιήσουμε τη δυνατότητα για εγγραφή των χρηστών, η δημιουργία νέων χρηστών της υπηρεσίας μπορεί να πραγματοποιηθεί μόνο από τον διαχειριστή, μέσω της γραμμής εντολών με την χρήση της παρακάτω εντολής:

sudo docker exec greenlight-v2 bundle exec rake user:create["Full Name","useremail@example.gr","password","user"]

Αντίστοιχα, για την δημιουργία νέου λογαριασμού διαχειριστή της υπηρεσίας εκτελούμε την εντολή:

sudo docker exec greenlight-v2 bundle exec rake user:create["Full Name","useremail@example.gr","password","admin"]

Αφού δημιουργηθεί ο χρήστης, όπως θα δούμε και παρακάτω, μπορεί να γίνει επεξεργασία του λογαριασμού και μέσα από το γραφικό περιβάλλον του Greenlight.

Σε αυτό το σημείο, θα πρέπει να τονίσουμε πως στην περίπτωση κατά την οποία έχουμε υλοποιήσει διασύνδεση του BigBlueButton με κάποια άλλη πλατφόρμα, όπως για παράδειγμα το eclass ή το Nextcloud, δεν είναι απαραίτητη η δημιουργία χρήστη το BigBlueButton. Η αυθεντικοποίηση των χρηστών πραγματοποιείται από τη διασυνδεδεμένη πλατφόρμα.

4. Διασύνδεση με υπηρεσίες καταλόγου

Πέρα από τη δυνατότητα για δημιουργία λογαριασμών για τοπικούς χρήστες της υπηρεσίας, το Greenlight μας δίνει τη δυνατότητα για χρήση άλλων μεθόδων αυθεντικοποίησης όπως η διασύνδεση με υπηρεσία LDAP, με χρήση λογαριασμού Google ή Microsoft Office 365 και με χρήση OpenID.

Η παραμετροποίηση για τις παραπάνω λειτουργίες πραγματοποιείται μέσα από το αρχείο .env που υπάρχει στον φάκελο του Greenlight. Για παράδειγμα, για τη διασύνδεση με υπηρεσία LDAP, απαιτείται η συμπλήρωση των παρακάτω:

LDAP_SERVER=ldap.example.com
LDAP_PORT=389
LDAP_METHOD=plain
LDAP_UID=uid
LDAP_BASE=dc=example,dc=com
LDAP_AUTH=simple
LDAP_BIND_DN=cn=admin,dc=example,dc=com
LDAP_PASSWORD=password
LDAP_ROLE_FIELD=ou
LDAP_FILTER=(&(attr1=value1)(attr2=value2))
LDAP_ATTRIBUTE_MAPPING=name=displayName;uid=uid;

Όπως αναφέραμε και νωρίτερα, στην περίπτωση κατά την οποία έχουμε υλοποιήσει διασύνδεση του BigBlueButton με κάποια άλλη πλατφόρμα, όπως για παράδειγμα το eclass ή το Nextcloud, δεν είναι απαραίτητη η παραμετροποίηση του BigBlueButton. Η αυθεντικοποίηση των χρηστών πραγματοποιείται μόνο από την διασυνδεδεμένη πλατφόρμα, οπότε αν αυτή χρησιμοποιεί άλλον τρόπο αυθεντικοποίησης, αυτός χρησιμοποιείται και για το BigBlueButton.

5. Απενεργοποίηση εγγραφών τηλεδιασκέψεων

Καθώς το BigBlueButton, ενώ δίνει τη δυνατότητα για εγγραφή των τηλεδιασκέψεων από επιλογή των χρηστών, προχωράει στην εγγραφή όλων των τηλεδιασκέψεων χωρίς εξαιρέσεις και κρατάει ιστορικό 14 ημερών, προτείνεται η απενεργοποίηση της εγγραφής των τηλεδιασκέψεων. Επιπλέον, επειδή κάθε εγγραφή καταλαμβάνει αρκετό χώρο στον δίσκο της μηχανής, προτείνεται η γενικότερη απενεργοποίηση των τηλεδιασκέψεων εκτός αν κάτι διαφορετικό απαιτείται για την υλοποίηση της υπηρεσίας.

Για την απενεργοποίηση της δυνατότητα εγγραφής των τηλεδιασκέψεων, θα πρέπει στο αρχείο /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties να προχωρήσουμε στις παρακάτω αλλαγές:

disableRecordingDefault=true
autoStartRecording=false
allowStartStopRecording=false
breakoutRoomsRecord=false

και στη συνέχεια να επανεκκινήσουμε το BigBlueButton (bbb-conf --restart).

Σε περίπτωση κατά την οποία δεν είναι επιθυμητή η απενεργοποίηση των εγγραφών, μπορούμε να μειώσουμε την χρονική διαθεσιμότητα των εγγραφών μέσα από το αρχείο /etc/cron.daily/bigbluebutton. Όπως προαναφέραμε, η προκαθορισμένη χρονική διαθεσιμότητα των εγγεγραμμένων τηλεδιασκέψεων είναι 14 ημέρες.