I was looking for an ansible role to install BigBlueButton with SSL support, but it seems there's not much roles out there for this. Searching I the Internet the most complete one I found was this one, but it was outdated (last commit from two years ago) and broken, and the PR to fix it was from almost a year ago with no answer from the developer, so I figured it was abandoned and forked it.
Additional to fixing the broken stuff, this fork has the following additional features:
- Installs latest BigBlueButton stable version, currently 1.1, but it will be updated to 2.0 when it comes out of beta.
- Installation behind a firewall (NAT setup support).
- Automatic SSL configuration using LetsEncrypt certificates.
- Optionally installs the bbb-demo and bbb-check packages.
Lets see an example playbook to do a BigBlueButton install with SSL support:
--- - hosts: bbb remote_user: ansible become: True become_user: root gather_facts: True roles: - role: ansible-bigbluebutton bbb_server_name: bbb.example.com bbb_configure_ssl: True bbb_ssl_email: firstname.lastname@example.org
Replace bbb_server_name with your server's hostname and bbb_ssl_email with your email address for the LetsEncrypt certificate generation, that's it.
The role will install BigBlueButton according to the official installation instructions, generate SSL certificates using LetsEncrypt, and configure BigBlueButton to use those certificates. Remember, your hostname has to resolve to a public IP address, if not then LetsEncrypt certificate generation will not work.
If your server is behind a firewall the variable bbb_configure_nat: True needs to be added to the playbook to enable NAT configuration:
--- - hosts: bbb remote_user: ansible become: True become_user: root gather_facts: True roles: - role: ansible-bigbluebutton bbb_server_name: bbb.example.com bbb_configure_ssl: True bbb_ssl_email: email@example.com bbb_configure_nat: True
This will reconfigure BigBlueButton components to use the local IP address instead of the one the server publicly resolves to.
If you want to install the demo package or the health check package you can use bbb_install_demo: True and bbb_install_check: True respectevly to install them.
There is still some missing stuff I want to do before I consider this role complete:
- Push it to Ansible Galaxy.
- Install the new greenlight interface to create meetings.
- Install the new HTML5 client for testing.
As an alternative to greenlight there's another project called Mconf-web, which is a web portal from were you can create public and private rooms that have their own videoconference room in the BigBlueButton server. Check my mconf-web docker container for an easy way to use it.