Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Work on BBB 3.0 #380

Draft
wants to merge 6 commits into
base: bbb/2.7
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,4 @@ suites:
- name: default-node12
run_list:
attributes:
- name: default-mongo36
run_list:
attributes:
- name: default-mongo4
run_list:
attributes:

21 changes: 7 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@ Also check [Before you install](https://docs.bigbluebutton.org/administration/in
| Required | Variable Name | Function | Default value | Comment |
| -------- | ------------- | -------- | ------------ | ------- |
| ⚠️ | `bbb_hostname` | Hostname for this BigBlueButton instance | `{{ ansible_fqdn }}` |
| | `bbb_version` | Install specified BigBlueButton version | `focal-250` | For installing specified BigBlueButton version e.g. `bionic-230-2.3.15` |
| | `bbb_state` | Install BigBlueButton to state | `present` | for updating BigBlueButton with this role use `latest` |
| | `bbb_apt_mirror` | apt repo server for BigBlueButton packages | `https://ubuntu.bigbluebutton.org` | other value would be e.g. `https://packages-eu.bigbluebutton.org` |
| | `bbb_version` | Install specified BigBlueButton version | `jammy-300` | For installing specified BigBlueButton version e.g. `bionic-230-2.3.15` |
| | `bbb_upgrade` | If true, upgrade packages (including BBB itself) while running this role | `false` | |
| | `bbb_apt_mirror` | BBB repository server | `https://ubuntu.bigbluebutton.org` | e.g. `https://packages-eu.bigbluebutton.org` |
| | `bbb_apt_key` | Download URL for BBB repository signing key | `{{ bbb_apt_mirror }}/repo/bigbluebutton.asc` | |
| | `bbb_letsencrypt_enable` | Enable letsencrypt/HTTPS | `yes` |
| ⚠️ when using letsencrypt| `bbb_letsencrypt_email` | E-mail for use with letsencrypt | | |
| | `bbb_letsencrypt_api` | Set letsencrypt api | `https://acme-v02.api.letsencrypt.org/directory` | Use this variable to change letsencrypt API URL (example: staging API `https://acme-staging-v02.api.letsencrypt.org/directory`) |
Expand Down Expand Up @@ -62,8 +63,6 @@ Also check [Before you install](https://docs.bigbluebutton.org/administration/in
| | `bbb_ice_servers` | a list of RemoteIceCandidate for STUN | `[]` | in array with key `server` |
| | `bbb_ignore_running_meetings` | install even if meetings are running | `no` | current meetings will be terminated |
| | `bbb_turn_servers` | a list of TURN-Server to use | `{}` | take a look in defaults/main.yml |
| | `bbb_mongodb_version` | version of mongodb to be installed | `4.2` | |
| | `bbb_mongodb_tmpfs_size` | tmpfs size for the mongodb | `512m` | |
| | `bbb_disable_recordings` | Disable options in gui to have recordings | `no` | [Recordings are running constantly in background](https://github.com/bigbluebutton/bigbluebutton/issues/9202) which is relevant as privacy relevant user data is stored |
| | `bbb_api_demos_enable` | enable installation of the api demos | `no` | |
| | `bbb_client_log_enable` | enable installation of the nginx-full and config for client logging according to [BBB Customization Docs](https://docs.bigbluebutton.org/admin/customize.html#collect-feedback-from-the-users). See "METEOR" Section below for needed `bbb_meteor` values. | `false` | |
Expand All @@ -75,7 +74,6 @@ Also check [Before you install](https://docs.bigbluebutton.org/administration/in
| | `bbb_apps_akka_log_level` | set the loglevel for bbb-apps-akka | `ERROR` | |
| | `bbb_meteor` | overwrite settings in meteor | `{}` | |
| | `bbb_kurento_interfaces` | Specify the listening interfaces for kurento | `{{ [ansible_default_ipv4.interface, 'lo'] }}` | |
| | `bbb_nodejs_version` | version of nodejs to be installed | `18.x` | |
| | `bbb_system_locale` | the system locale to use | `en_US.UTF-8` | |
| | `bbb_secret` | define the shared secret for bbb | `none` | Set this if you want to define the bbb-secret. Otherwise the secret is generated by bbb. Supported characters are `[a-zA-Z0-9]` |
| | `bbb_freeswitch_ipv6` | Enable IPv6 support in FreeSWITCH | `true` | Disable to fix [FreeSWITCH IPv6 error][bbb_freeswitch_ipv6] |
Expand All @@ -86,7 +84,7 @@ Also check [Before you install](https://docs.bigbluebutton.org/administration/in
| | `bbb_dialplan_energy_level` | Set energy level of dailplan for FreeSWITCH | `100` | only for selected profile `bbb_dialplan_quality` |
| | `bbb_dialplan_comfort_noise` | Set comfort noise of dailplan for FreeSWITCH | `1400` | Allowed values: (0-10000|true), 0 disables comfort-noise, true sets to default (1400), only for selected profile `bbb_dialplan_quality` |
| | `bbb_webhooks_enable` | install bbb-webhooks | `no` | |
| | `bbb_check_for_running_meetings` | Check server and stop playbook in case of running meetings. Attention: Currently the check is done only after Docker and NodeJS Roles have already run. | `true` | |
| | `bbb_check_for_running_meetings` | Check server and stop playbook in case of running meetings. | `true` | |
| | `bbb_monitoring_all_in_one_enable` | deploy [all in one monitoring stack](https://bigbluebutton-exporter.greenstatic.dev/installation/all_in_one_monitoring_stack/) (docker) | `no` |
| | `bbb_monitoring_all_in_one_version` | Deprecated, use `bbb_monitoring_exporter_version` instead | | |
| | `bbb_monitoring_all_in_one_directory` | Directory for the docker compose files | `/root/bbb-monitoring` | |
Expand Down Expand Up @@ -150,9 +148,9 @@ Also check [Before you install](https://docs.bigbluebutton.org/administration/in
| Deprecated | `bbb_breakout_rooms_enabled` | Enable or disable breakout rooms | `true` | use `bbb_disabled_features` instead |
| | `bbb_breakout_rooms_record` | Enable or disable recording in breakout rooms | `false` | |
| | `bbb_breakout_rooms_privatechat_enabled` | Enable or disable private chat in breakout rooms | `true` | |
| | `bbb_docker_compose_version` | Set [docker-compose python package version](https://pypi.org/project/docker/#history) | see `defaults/main.yml` | Sets the version of the docker-compose python package |
| | `bbb_docker_passwd` | Password to Docker Hub login | Not defined (default: disabled) | Set a Docker Hub password. When defined is used to avoid rate limits |
| | `bbb_docker_config` | Docker daemon config | `{"log-driver": "journald"}` | Set to `False` to keep original file |
| | `bbb_docker_user` | Username to Docker Hub login | Not defined (default: disabled) | Set a Docker Hub user. When defined is used to avoid rate limits |
| | `bbb_docker_passwd` | Password to Docker Hub login | Not defined (default: disabled) | Set a Docker Hub password. When defined is used to avoid rate limits |
| | `bbb_etherpad_disable_cursortrace_plugin` | Disable or enable cursortrace plugin for etherpad | `false` | Set to `true` if you want to avoid displaying names at cursor position in shared notes |
| | `bbb_user_inactivity_inspect_timer` | User inactivity audit timer interval in minutes | `0` | If `0` inactivity inspection is deactivated |
| | `bbb_user_inactivity_threshold` | Number of minutes to consider a user inactive | `30` | A warning message is send to client to check if really inactive |
Expand Down Expand Up @@ -344,11 +342,6 @@ bbb_dialin_mask_caller: true
bbb_dialin_overwrite_footer: true
```

## Dependencies

- [geerlingguy.nodejs](https://github.com/geerlingguy/ansible-role-nodejs)
- [geerlingguy.docker](https://github.com/geerlingguy/ansible-role-docker)

## Example Playbook

This is an example of how to use this role. *Warning:* the values of the variables should be changed!
Expand Down
17 changes: 6 additions & 11 deletions defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
---
bbb_hostname: "{{ ansible_fqdn }}"
bbb_state: present
bbb_version: focal-270
bbb_upgrade_packages: "{{ 'yes' if bbb_state == 'latest' else 'no' }}"
bbb_upgrade: false
bbb_version: jammy-300
bbb_check_for_running_meetings: true
bbb_letsencrypt_enable: true
bbb_letsencrypt_api: https://acme-v02.api.letsencrypt.org/directory
Expand Down Expand Up @@ -36,6 +35,9 @@ bbb_apps_akka_log_level: ERROR
bbb_freeswitch_log_level: warning
bbb_etherpad_log_level: INFO

bbb_docker_config:
log-driver: journald

# freeswitch
bbb_freeswitch_ipv6: true
bbb_freeswitch_ip_address: "{{ ansible_default_ipv4.address }}"
Expand All @@ -47,8 +49,6 @@ bbb_freeswitch_unmuted_sound: true
# bbb_freeswitch_default_password: "Needs_To_Be_Defined_By_The_User"

bbb_system_locale: en_US.UTF-8
bbb_mongodb_version: 4.4
bbb_mongodb_tmpfs_size: 512m

# Attention, needs to be encoded with "native2ascii -encoding UTF8"
bbb_default_welcome_message: Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="https://www.bigbluebutton.org/html5"><u>tutorial
Expand Down Expand Up @@ -98,7 +98,7 @@ bbb_dialplan_energy_level: 100
bbb_dialplan_comfort_noise: 1400

bbb_apt_mirror: https://ubuntu.bigbluebutton.org
bbb_apt_key: 770C4267C5E63474D171B60937B5DD5EFAB46452
bbb_apt_key: "{{ bbb_apt_mirror }}/repo/bigbluebutton.asc"

ansible_python_interpreter: /usr/bin/python3

Expand Down Expand Up @@ -308,11 +308,6 @@ bbb_firewall_ufw:
port: "{{ bbb_ssh_port }}"
proto: tcp

# https://pypi.org/project/docker-compose/#history
bbb_docker_compose_version: 1.29.2

bbb_nodejs_version: 18.x

# Cluster proxy variables
# Define the following variables to set up the cluster proxy
# bbb_proxy_host: bbb.example.com
Expand Down
8 changes: 0 additions & 8 deletions examples/bbb.yml

This file was deleted.

16 changes: 0 additions & 16 deletions examples/hosts

This file was deleted.

7 changes: 0 additions & 7 deletions examples/playbook/bigbluebutton.yml

This file was deleted.

17 changes: 0 additions & 17 deletions examples/vars.yml

This file was deleted.

18 changes: 6 additions & 12 deletions handlers/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,16 @@
name: nginx
state: restarted

- name: Restart freeswitch
become: true
systemd:
name: freeswitch
state: restarted

- name: Stop mongo
- name: Reload docker
become: true
systemd:
name: mongod
state: stopped
name: docker
state: reloaded

- name: Restart mongo
- name: Restart freeswitch
become: true
systemd:
name: mongod
name: freeswitch
state: restarted

- name: Restart kurento
Expand Down Expand Up @@ -70,7 +64,7 @@
state: reloaded

- name: Restart monitoring container
community.docker.docker_compose:
community.docker.docker_compose_v2:
pull: false
restarted: true
project_src: "{{ bbb_monitoring_all_in_one_directory }}"
Expand Down
14 changes: 1 addition & 13 deletions meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,6 @@ galaxy_info:
platforms:
- name: Ubuntu
versions:
- focal
- jammy

galaxy_tags: []
dependencies:
- role: geerlingguy.nodejs
vars:
nodejs_version: "{{ bbb_nodejs_version }}"
tags:
- geerlingguy
- geerlingguy_nodejs

- role: geerlingguy.docker
tags:
- geerlingguy
- geerlingguy_docker
1 change: 0 additions & 1 deletion molecule/default/converge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
no_proxy: "{{ lookup('env', 'no_proxy') }}"
remote_user: root
vars:
bbb_nodejs_version: 8.x
bbb_letsencrypt_enable: false
bbb_letsencrypt_email: mail@example.com
tasks:
Expand Down
16 changes: 0 additions & 16 deletions molecule/default/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
with_items:
- language-pack-en
- python3-pip
- mongodb-org
- bbb-html5
- bigbluebutton
- name: Ensure bigbluebutton.properties file is present
Expand All @@ -36,20 +35,6 @@
assert:
that: cfg3.stat.exists and cfg3.stat.size != 0

- name: Ensure mongodb process is running
command: pgrep -u mongodb mongod
register: ps2
changed_when: false
failed_when: false
- name: Validate mongodb ps output
assert:
that: ps2.stdout
- name: Ensure mongod port is listening
wait_for:
host: 127.0.1.1
port: 27017
timeout: 5

- name: Populate service facts
ansible.builtin.service_facts:

Expand All @@ -69,7 +54,6 @@
- bbb-web.service
- bbb-webrtc-sfu.service
- kurento-media-server.service
- mongod.service
- nginx.service
failed_when: false
when: >
Expand Down
6 changes: 0 additions & 6 deletions requirements.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
---
roles:
- src: geerlingguy.nodejs
version: 6.0.0
- src: geerlingguy.docker
version: 4.1.0

collections:
- name: community.general
- name: community.docker
2 changes: 1 addition & 1 deletion tasks/checkvars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
- name: Checking distribution
debug:
msg: distribution should be focal and was detected as {{ ansible_distribution_release }}
failed_when: ansible_distribution_release | lower != 'focal'
failed_when: ansible_distribution_release | lower != bbb_ubuntu_name
- name: Checking bbb_monitoring_all_in_one_external
debug:
msg: bbb_monitoring_all_in_one_external is deprecated, use bbb_monitoring_external instead
Expand Down
22 changes: 9 additions & 13 deletions tasks/docker.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
---
- name: Ensure pip is installed
apt:
name:
- python3-pip
- python3-setuptools
state: "{{ bbb_state }}"

- name: Install python docker packages
pip:
name:
- docker
- docker-compose=={{ bbb_docker_compose_version }}
state: "{{ bbb_state }}"
- name: Configure docker daemon
become: true
ansible.builtin.template:
src: "docker/daemon.json.j2"
dest: "/etc/docker/daemon.json"
mode: '0600'
when: "bbb_docker_config | default(False)"
notify: Reload docker

- name: Log into DockerHub (avoid rate limits)
become: true
community.docker.docker_login:
username: "{{ bbb_docker_user }}"
password: "{{ bbb_docker_passwd }}"
Expand Down
1 change: 1 addition & 0 deletions tasks/firewall/ufw_disable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
manager: auto

- name: Disable UFW
become: true
community.general.ufw:
state: disabled
when: "'ufw' in packages"
Loading
Loading