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 [[https://gitlab.ucc.asn.au/ucc-systems/ucc-ansible-soe|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 wheel@ucc.gu.uwa.edu.au -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 * https://github.com/n0emis/ansible-role-bigbluebutton == Thanks == Thanks to [MPT], [NTU], [TRS], [TPG] and [MTL] for making it work again