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