Describe BigBlueButtonRebuild here.

Rebuild Procedure

VM and Operating System

  • Back up previous VM
  • Change IP address of previous VM to another IP in UCC Machine Room range
  • Create new VM on UCC Proxmox cluster
    • New VM config is 8GB, 8 cores, defaults for most things
    • New VM storage is 32G, on vmstore_ssd
  • Install base operating system for BigBlueButton

    • Ubuntu 18.04 (via netboot.xyz.iso)
  • Provision on network with original VM IP address
  • Add UCC wheel keys to root user and permit root logins remotely via SSH

UCC SOE

The UCC Ansible SOE https://gitlab.ucc.asn.au/ucc-systems/ucc-ansible-soe has a playbook for making the new BigBlueButton host a UCC server.

  • If not already present, add the host to ucc-hosts inventory under bbb-hosts
  • Run the playbook

ansible-playbook -K -i ucc-hosts bbb-hosts.yml

Big Blue Button Install

install.sh

  • Download the install.sh script  wget https://ubuntu.bigbluebutton.org/bbb-install.sh 

  • Edit out the check for an external IP address around line 500
  • Run with the following command line arguments

time eatmydata ./bbb-install.sh -v bionic-23 -a -w -g -s meetings.ucc.asn.au -e [email protected] -x

Let's Encrypt

As the host will not have a working webserver initial to do URL based challenges, you need do a DNS TXT challenge manually. Do this via the usual UCC DNS update mechanism. Or use QuoVadis per SSLCertificates.

Configuration changes

  • If you edited bbb-install.sh to not check for an external IP, this shouldn't be necessary.
  • Use  bbb-conf -check  to find all the locations where the external IP of the host should be used (the Cloudflare IP will be appearing here incorrectly)

  • Use stun:stun.freeswitch.org for the STUN server
  • These locations include:
    • /opt/freeswitch/etc/freeswitch/vars.xml
    • /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
    • /etc/bigbluebutton/nginx/sip.nginx
    • /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml
    • /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml
    • /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
  • A copy of the output of  bbb-conf -check  has been placed in /home/wheel/docs/bbb-conf-check.txt

LDAP

The LDAP config for the UCC BigBlueButton is in the Greenlight .env file /root/greenlight/.env

It roughly looks like this

LDAP_SERVER=samson.ad.ucc.gu.uwa.edu.au
LDAP_PORT=636
LDAP_METHOD=ssl
LDAP_UID=sAMAccountName
LDAP_BASE=dc=ad,dc=ucc,dc=gu,dc=uwa,dc=edu,dc=au
LDAP_BIND_DN=CN=greenlightbind,CN=Users,DC=ad,DC=ucc,DC=gu,DC=uwa,DC=edu,DC=au
LDAP_AUTH=simple
LDAP_PASSWORD=REPLACEME
LDAP_ROLE_FIELD=ou
LDAP_FILTER=
LDAP_ATTRIBUTE_MAPPING=name=displayName;uid=uid;

Demo

Check that things mostly work with the Demo

Data Migration

Database

You can copy the existing databases from the previous host across from /root/greenlight/db into the same location on the new host

You will need to do some work to update the DB password and do the database migration ( [TRS] can you help fill this out )

docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret
docker-compose up -d
docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
docker exec -it greenlight-v2 /bin/bash
docker-compose down
docker-compose up -d

Recordings

This can be copied from /var/bigbluebutton/published to the new host

Testing

Have a long evening chat with your fellow UCCans

Clean Up

  • apt-get purge bbb-demo

Future Tasks

  • Set up the Let's Encrypt cert before BBB install (needs UCC DNS helper infrastructure first)
  • Look at one of the suggested ansible roles for installation from the BBB website and integrate into the UCC Ansible SOE

Thanks

Thanks to [MPT], [NTU], [TRS], [TPG] and [MTL] for making it work again