This guide provides an Ansible playbook to automate BigBlueButton native installation on Ubuntu 22.04 LTS.
| Aspect | Details |
|---|---|
| License | LGPL-3.0 |
| Technical Stack | JavaScript, TypeScript, Scala, Java, Ruby |
| Deployment | Native Ubuntu 22.04 LTS (required) |
| Docker Support | Development only, NOT for production |
| Documentation | docs.bigbluebutton.org |
BigBlueButton requires native installation on Ubuntu 22.04 LTS. Docker is NOT supported for production.
- name: Deploy BigBlueButton (Native Installation)
hosts: bbb-servers
become: true
vars:
bbb_version: "focal-270"
bbb_hostname: "bbb.example.com"
bbb_email: "admin@example.com"
install_greenlight: true
ssl_type: "letsencrypt"
tasks:
- name: Verify Ubuntu 22.04 LTS
assert:
that:
- ansible_distribution == "Ubuntu"
- ansible_distribution_version == "22.04"
fail_msg: "BigBlueButton requires Ubuntu 22.04 LTS"
- name: Set hostname
hostname:
name: "{{ bbb_hostname }}"
when: ansible_hostname != bbb_hostname
- name: Update system packages
apt:
update_cache: yes
upgrade: dist
autoremove: yes
autoclean: yes
- name: Install required packages
apt:
name:
- wget
- curl
- gnupg
- ca-certificates
state: present
- name: Download BBB install script
get_url:
url: https://ubuntu.bigbluebutton.org/bbb-install.sh
dest: /usr/local/sbin/bbb-install.sh
mode: '0755'
- name: Verify BBB install script checksum
shell: |
wget -qO - https://ubuntu.bigbluebutton.org/bbb-install.sh.gpg | gpg --import
gpg --verify /usr/local/sbin/bbb-install.sh.gpg /usr/local/sbin/bbb-install.sh
register: checksum_verify
changed_when: false
ignore_errors: yes
- name: Run BigBlueButton installation
shell: |
/usr/local/sbin/bbb-install.sh \
-v {{ bbb_version }} \
-s {{ bbb_hostname }} \
-e {{ bbb_email }} \
{% if install_greenlight %}-W{% endif %} \
{% if ssl_type == 'letsencrypt' %}-c none -W{% endif %}
args:
creates: /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
- name: Wait for BigBlueButton services
wait_for:
timeout: 60
delegate_to: localhost
- name: Verify BigBlueButton status
command: bbb-conf --status
register: bbb_status
changed_when: false
- name: Display BigBlueButton status
debug:
var: bbb_status.stdout_lines
- name: Get BBB API secret
command: bbb-conf --secret
register: bbb_secret
changed_when: false
no_log: true
- name: Display connection information
debug:
msg: |
BigBlueButton installed successfully!
URL: https://{{ bbb_hostname }}
{{ bbb_secret.stdout }}
[bbb-servers]
bbb.example.com ansible_user=ubuntu ansible_python_interpreter=/usr/bin/python3
[bbb-servers:vars]
ansible_ssh_private_key_file=~/.ssh/id_ed25519
# Run the playbook
ansible-playbook -i inventory.ini bigbluebutton.yml
# With extra variables
ansible-playbook -i inventory.ini bigbluebutton.yml \
-e bbb_hostname=meet.example.com \
-e bbb_email=admin@example.com \
-e install_greenlight=true
# Check all services
sudo bbb-conf --status
# Check for issues
sudo bbb-conf --check
# Display API secrets
sudo bbb-conf --secret
https://<your-bbb-hostname>https://<your-bbb-hostname>/bigbluebutton| Variable | Default | Description |
|---|---|---|
bbb_version |
focal-270 |
BBB version to install |
bbb_hostname |
Required | Server FQDN |
bbb_email |
Required | Email for SSL certificates |
install_greenlight |
true |
Install Greenlight web UI |
ssl_type |
letsencrypt |
SSL certificate type |
sudo systemctl status bbb-web
sudo systemctl status freeswitch
sudo systemctl status nginx
sudo bbb-conf --setip <hostname-or-ip>
sudo bbb-conf --check
sudo tail -f /var/log/bigbluebutton/bbb-web.log
sudo journalctl -u freeswitch -f
Any questions?
Feel free to contact us. Find all contact information on our contact page.