From b0a0d3a6638d408de91582b7bf14e4222ac8c22b Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Mon, 30 Apr 2018 17:35:27 -0500 Subject: [PATCH 01/37] Update for bigbluebutton 1.1 --- defaults/main.yml | 11 +++++------ meta/main.yml | 4 ++-- tasks/main.yml | 48 +++++++++++++++++++++++++++-------------------- 3 files changed, 35 insertions(+), 28 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index c273793..55ba98b 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,7 +1,6 @@ --- -bbb_apt_key: '328BD16D' - -#Repositories -bbb_apt_repo_url: 'http://ubuntu.bigbluebutton.org/trusty-1-0/' -libreoffice_ppa: 'ppa:libreoffice/libreoffice-4-4' -ffmpeg_ppa: 'ppa:mc3man/trusty-media' +bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-110/' +bbb_server_name: "bbb.example.com" +bbb_ubuntu_version: "16.04" +bbb_install_demo: "no" +bbb_configure_ssl: True diff --git a/meta/main.yml b/meta/main.yml index b7852a3..9f37a0e 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -110,11 +110,11 @@ galaxy_info: # - quantal # - raring # - saucy - - trusty + # - trusty # - utopic # - vivid # - wily - # - xenial + - xenial #- name: SLES # versions: # - all diff --git a/tasks/main.yml b/tasks/main.yml index 8000917..efffb1c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,10 +1,22 @@ --- +- name: Check if OS is supported + fail: + msg: "OS not supported for BigBlueButton installation" + when: ansible_distribution != "Ubuntu" or ansible_distribution_version != "{{ bbb_ubuntu_version }}" + +- name: Enable https support for apt + apt: + name: apt-transport-https + state: present + tags: + - apt_transport_https + - name: Update apt cache apt: update_cache=yes tags: - update_apt_cache -- name: BigBluebutton required packages are present +- name: BigBluebutton required packages apt: name={{ item }} state=present with_items: - language-pack-en @@ -29,8 +41,7 @@ - name: BigBlueButton apt key is present apt_key: - url: http://ubuntu.bigbluebutton.org/bigbluebutton.asc - id: '{{ bbb_apt_key }}' + url: https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc state: present tags: - bbb_apt_key @@ -38,30 +49,18 @@ - name: multiverse apt repositories are enabled apt_repository: repo={{ item }} state=present with_items: - - 'deb http://archive.ubuntu.com/ubuntu trusty multiverse' - - 'deb-src http://archive.ubuntu.com/ubuntu trusty multiverse' - - 'deb http://archive.ubuntu.com/ubuntu trusty-updates multiverse' - - 'deb-src http://archive.ubuntu.com/ubuntu trusty-updates multiverse' + - 'deb http://archive.ubuntu.com/ubuntu xenial multiverse' + - 'deb-src http://archive.ubuntu.com/ubuntu xenial multiverse' + - 'deb http://archive.ubuntu.com/ubuntu xenial-updates multiverse' + - 'deb-src http://archive.ubuntu.com/ubuntu xenial-updates multiverse' tags: - multiverse_repositories - repositories -- name: libreoffice ppa is enabled - apt_repository: repo='{{ libreoffice_ppa }}' - tags: - - libreoffice_repositories - - repositories - -- name: ffmpeg ppa is enabled - apt_repository: repo='{{ ffmpeg_ppa }}' - tags: - - ffmpeg_repositories - - repositories - - name: BigBlueButton repo is enabled apt_repository: repo={{ item }} state=present with_items: - - 'deb {{ bbb_apt_repo_url }} bigbluebutton-trusty main' + - 'deb {{ bbb_apt_repo_url }} bigbluebutton-xenial main' tags: - bbb_repositories - repositories @@ -80,3 +79,12 @@ apt: name=bbb-check state=present tags: - install_bbb_check +- name: Set bbb server name + command: bbb-conf --setip "{{ bbb_server_name }}" + tags: + - run_bbb-conf_setip +- name: Restart bbb + command: bbb-conf --restart + tags: + - run_bbb-conf_restart + From e8ec2ea0fea21589be17831ad1b8ad3865219254 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:02:02 -0500 Subject: [PATCH 02/37] Improve task descriptions. --- tasks/main.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index efffb1c..60e6e57 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -16,18 +16,18 @@ tags: - update_apt_cache -- name: BigBluebutton required packages +- name: Install BigBluebutton required packages apt: name={{ item }} state=present with_items: - language-pack-en - software-properties-common tags: - - bbb_dependencies + - bbb-dependencies -- name: apt_repository required packages are present +- name: Check python-apt is present apt: name=python-apt state=present tags: - - bbb_role_dependencies + - bbb-role_dependencies - name: Update locale (ensure LANG=en_US.UTF-8) lineinfile: dest=/etc/default/locale regexp=^LANG line='LANG=en_US.UTF-8' @@ -39,14 +39,14 @@ tags: - set_locale -- name: BigBlueButton apt key is present +- name: Check BigBlueButton apt key is present apt_key: url: https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc state: present tags: - - bbb_apt_key + - bbb-apt_key -- name: multiverse apt repositories are enabled +- name: Check multiverse apt repositories are enabled apt_repository: repo={{ item }} state=present with_items: - 'deb http://archive.ubuntu.com/ubuntu xenial multiverse' @@ -57,15 +57,15 @@ - multiverse_repositories - repositories -- name: BigBlueButton repo is enabled +- name: Check BigBlueButton repo is enabled apt_repository: repo={{ item }} state=present with_items: - 'deb {{ bbb_apt_repo_url }} bigbluebutton-xenial main' tags: - - bbb_repositories + - bbb-repositories - repositories -- name: bigbluebutton is installed +- name: Check BigBlueButton is installed apt: name=bigbluebutton state=present tags: - install_bbb @@ -78,8 +78,9 @@ - name: bbb-check is installed apt: name=bbb-check state=present tags: - - install_bbb_check -- name: Set bbb server name + - install_bbb-check + +- name: Set BigBlueButton server name command: bbb-conf --setip "{{ bbb_server_name }}" tags: - run_bbb-conf_setip From e351ad83a2edc40ec20a402327f710c5f4117b53 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:06:53 -0500 Subject: [PATCH 03/37] Add configuration variables to optionally install bbb-demo and bbb-check. --- defaults/main.yml | 4 ++-- tasks/main.yml | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 55ba98b..b41e20f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,5 +2,5 @@ bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-110/' bbb_server_name: "bbb.example.com" bbb_ubuntu_version: "16.04" -bbb_install_demo: "no" -bbb_configure_ssl: True +bbb_install_demo: False +bbb_install_check: False diff --git a/tasks/main.yml b/tasks/main.yml index 60e6e57..d1b9df6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -70,13 +70,15 @@ tags: - install_bbb -- name: bbb-demo is installed +- name: Install bbb-demo package apt: name=bbb-demo state=present + when: bbb_install_demo == True tags: - - install_bbb_demo + - install_bbb-demo -- name: bbb-check is installed +- name: Install bbb-check package apt: name=bbb-check state=present + when: bbb_install_check == True tags: - install_bbb-check From 45d1b17768b1f36b6de4f127ff3d092144d5b5dc Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:13:00 -0500 Subject: [PATCH 04/37] Improve task descriptions. --- tasks/main.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index d1b9df6..5cec7dc 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -86,8 +86,9 @@ command: bbb-conf --setip "{{ bbb_server_name }}" tags: - run_bbb-conf_setip -- name: Restart bbb + +- name: Restart BigBlueButton command: bbb-conf --restart tags: - - run_bbb-conf_restart + - bbb-restart From ae0f5c117904ecf7c095c617679b0a3a29c34505 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:13:30 -0500 Subject: [PATCH 05/37] Run bbb-conf --check at the end of configuration and print output. --- tasks/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index 5cec7dc..ecff319 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -92,3 +92,12 @@ tags: - bbb-restart +- name: Check BigBlueButton installation + command: bbb-conf --check + register: bbb_check_out + tags: + - bbb-check_install +- name: bbb-conf --check output + debug: msg="{{ bbb_check_out }}" + tags: + - bbb-check_install From 4dea467f09f4924096dde3a3588890340be0901a Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:14:43 -0500 Subject: [PATCH 06/37] Get public and local IP addresses. --- tasks/main.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index ecff319..2ff3b83 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -87,6 +87,34 @@ tags: - run_bbb-conf_setip +- name: Get server local IP address + debug: msg="{{ ansible_default_ipv4.address }}" + register: server_ip + tags: + - bbb-get_local_ip +# - name: Print local IP address +# debug: msg="{{ server_ip }}" +# tags: +# - bbb-get_local_ip + +- name: Get server public IP address + ipify_facts: + register: public_ip + tags: + - bbb-get_public_ip + +- name: Get server public IP address + debug: msg="{{ public_ip.ansible_facts.ipify_public_ip }}" + register: public_ip + tags: + - bbb-get_public_ip + +- name: Print server public IP address + debug: msg="{{ public_ip }}" + tags: + - bbb-get_public_ip + + - name: Restart BigBlueButton command: bbb-conf --restart tags: From 798046c059163ab5f7018b2e3740537be1a972f3 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:17:29 -0500 Subject: [PATCH 07/37] Add NAT configuration tasks. --- defaults/main.yml | 1 + tasks/main.yml | 17 +++++++++++++++++ tasks/nat.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 tasks/nat.yml diff --git a/defaults/main.yml b/defaults/main.yml index b41e20f..a31d75e 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -4,3 +4,4 @@ bbb_server_name: "bbb.example.com" bbb_ubuntu_version: "16.04" bbb_install_demo: False bbb_install_check: False +bbb_configure_nat: False diff --git a/tasks/main.yml b/tasks/main.yml index 2ff3b83..7cc2e5d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -115,6 +115,23 @@ - bbb-get_public_ip +- name: Verify local IP vs public IP addresses + debug: msg="{{ server_ip }}" + register: internal_ip + when: server_ip != public_ip + tags: + - bbb-check_server_ip + +- name: Verify local IP vs public IP addresses + debug: msg="{{ public_ip }}" + register: server_ip + when: server_ip != public_ip + tags: + - bbb-check_server_ip + +# BigBlueButton NAT configuration +- include_tasks: nat.yml + when: bbb_configure_nat == True and internal_ip is defined - name: Restart BigBlueButton command: bbb-conf --restart tags: diff --git a/tasks/nat.yml b/tasks/nat.yml new file mode 100644 index 0000000..6293374 --- /dev/null +++ b/tasks/nat.yml @@ -0,0 +1,41 @@ +--- + - name: Update Freeswitch STUN address with server IP address + replace: + path: /opt/freeswitch/etc/freeswitch/vars.xml + regexp: 'stun:stun.freeswitch.org' + replace: '{{ server_ip }}' + backup: yes + tags: + - bbb_configure_nat + - name: Configure Freeswitch SIP profiles + replace: + path: /opt/freeswitch/conf/sip_profiles/external.xml + regexp: 'ext-rtp-ip\" value=\"\$\${local_ip_v4' + replace: 'ext-rtp-ip\" value=\"\$\${external_rtp_ip' + backup: yes + tags: + - bbb_configure_nat + - name: Configure Freeswitch SIP profiles + replace: + path: /opt/freeswitch/conf/sip_profiles/external.xml + regexp: 'ext-sip-ip\" value=\"\$\${local_ip_v4' + replace: 'ext-sip-ip\" value=\"\$\${external_sip_ip' + backup: yes + tags: + - bbb_configure_nat + - name: Configure Freeswitch SIP profiles + replace: + path: /opt/freeswitch/conf/sip_profiles/external.xml + regexp: ' Date: Tue, 1 May 2018 23:21:00 -0500 Subject: [PATCH 08/37] Add SSL configuration using Letsencrypt certificates. --- defaults/main.yml | 5 +++ meta/main.yml | 11 +++-- tasks/letsencrypt.yml | 24 +++++++++++ tasks/main.yml | 6 +++ tasks/ssl.yml | 97 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 tasks/letsencrypt.yml create mode 100644 tasks/ssl.yml diff --git a/defaults/main.yml b/defaults/main.yml index a31d75e..d0696e2 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,3 +5,8 @@ bbb_ubuntu_version: "16.04" bbb_install_demo: False bbb_install_check: False bbb_configure_nat: False +bbb_configure_ssl: False +bbb_ssl_webroot_path: /var/www/bigbluebutton-default +bbb_ssl_renewal_command_args: '--renew-hook "systemctl restart nginx"' +## Uncoment the following line to test on test network. +# bbb_ssl_server: "https://acme-staging.api.letsencrypt.org/directory" diff --git a/meta/main.yml b/meta/main.yml index 9f37a0e..42045f2 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -153,6 +153,11 @@ galaxy_info: # alphanumeric characters. Maximum 20 tags per role. dependencies: - # List your role dependencies here, one per line. - # Be sure to remove the '[]' above if you add dependencies - # to this list. + - role: thefinn93.letsencrypt + vars: + letsencrypt_webroot_path: "{{ bbb_ssl_webroot_path }}" + letsencrypt_email: "{{ bbb_ssl_email }}" + letsencrypt_cert_domains: + - "{{ bbb_server_name }}" + bbb_ssl_renewal_command_args: '--renew-hook "systemctl restart nginx"' + when: bbb_configure_ssl == True diff --git a/tasks/letsencrypt.yml b/tasks/letsencrypt.yml new file mode 100644 index 0000000..587a453 --- /dev/null +++ b/tasks/letsencrypt.yml @@ -0,0 +1,24 @@ +--- + - name: Create nginx SSL certificates directory + file: + state: directory + path: /etc/nginx/ssl + owner: root + group: root + tags: + - bbb_letsencript_ssl_dir + + - name: Create dhparam SSL file + command: openssl dhparam -dsaparam -out /etc/nginx/ssl/dhp-4096.pem 4096 creates=/etc/nginx/ssl/dhp-4096.pem + tags: + - bbb_create_dhpem_file + + - name: Link LetsEncrypt certificates to nginx SSL directory + file: + state: link + src: /etc/letsencrypt/live/{{ bbb_server_name }}/cert.pem + path: /etc/nginx/ssl/ + owner: root + group: root + tags: + - bbb_letsencript_ssl_dir diff --git a/tasks/main.yml b/tasks/main.yml index 7cc2e5d..1f43153 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -132,6 +132,12 @@ # BigBlueButton NAT configuration - include_tasks: nat.yml when: bbb_configure_nat == True and internal_ip is defined +# BigBlueButton SSL configuration +- include_tasks: letsencrypt.yml + when: bbb_configure_ssl == True +- include_tasks: ssl.yml + when: bbb_configure_ssl == True + - name: Restart BigBlueButton command: bbb-conf --restart tags: diff --git a/tasks/ssl.yml b/tasks/ssl.yml new file mode 100644 index 0000000..52d9866 --- /dev/null +++ b/tasks/ssl.yml @@ -0,0 +1,97 @@ +--- +- name: Install LetsEncrypt enabled nginx config + template: + src: templates/nginx/bbb-ssl.conf.j2 + dest: /etc/nginx/sites-available/bigbluebutton + backup: yes + tags: + - bbb_install_nginx_ssl_conf + +- name: Update http for https on nginx + replace: + path: /opt/freeswitch/conf/sip_profiles/external.xml + regexp: '' + replace: '' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on nginx + replace: + path: /etc/bigbluebutton/nginx/sip.nginx + regexp: 'http:' + replace: 'https:' + backup: yes + tags: + - bbb_enable_https + +- name: Update SIP port on nginx + replace: + path: /etc/bigbluebutton/nginx/sip.nginx + regexp: '5066' + replace: '7443' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on BigBlueButton webapp + replace: + path: /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties + regexp: 'bigbluebutton.web.serverURL=http:' + replace: 'bigbluebutton.web.serverURL=https:' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on red5 + replace: + path: /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties + regexp: 'jnlpUrl=http' + replace: 'jnlpUrl=https' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on red5 + replace: + path: /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties + regexp: 'jnlpFile=http' + replace: 'jnlpFile=https' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on BigBlueButton client config + replace: + path: /var/www/bigbluebutton/client/conf/config.xml + regexp: 'http://' + replace: 'https://' + backup: yes + tags: + - bbb_enable_https + +- name: Update http for https on BigBlueButton client config + replace: + path: /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml + regexp: 'playback_protocol: http$' + replace: 'playback_protocol: https' + backup: yes + tags: + - bbb_enable_https + +- name: Ansible check if /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp exists + stat: + path: /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp + register: demo + tags: + - bbb_enable_https + +- name: Update http for https on demo + replace: + path: /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp + regexp: 'String BigBlueButtonURL = \"http:' + replace: 'String BigBlueButtonURL = \"https:' + backup: yes + when: demo.stat.exists == True + tags: + - bbb_enable_https From 3da7bc274a66587cc1a8dc3f67085a0ca5f9ed85 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Tue, 1 May 2018 23:21:22 -0500 Subject: [PATCH 09/37] Updated README file with new features. --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index d4f99f6..ac11d69 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,54 @@ -[![Build Status](https://travis-ci.org/softwaremill/ansible-bigbluebutton.svg?branch=master)](https://travis-ci.org/softwaremill/ansible-bigbluebutton) +# Ansible BigBlueButton Installation Role -Bigbluebutton -============= +Ansible role to install [_BigBlueButton_](https://www.bigbluebutton.org) web conferencing platform with SSL support out of the box using [_LetsEncrypt_](https://letsencrypt.org/). -Ansible role for a simple bigbluebutton installation (following the documentation on http://docs.bigbluebutton.org/install/install.html) +The role follows _BigBlueButton_ official [installation instructions](http://docs.bigbluebutton.org/install/install.html). -Testing locally -=============== -Launch vagrant vm machine with: -`vagrant up` -Then run the tests with: -`vagrant ssh -c 'cd /ansible/roles/ansible-bigbluebutton && . tests/test.sh'` +Forked from [softwaremill/ansible-bigbluebutton](https://github.com/softwaremill/ansible-bigbluebutton), as it seems abandoned. Itr has the following additional features: -License -------- +## Features + * Installs latest stable version (currently _1.1_). + * Installation behind a firewall (NAT setup support) + * Automatic SSL configuration using _LetsEncrypt_ certificates using [thefinn93/ansible-letsencrypt](https://github.com/thefinn93/ansible-letsencrypt) role. + * Optionally installs the demo and check packages. -BSD +## Supported Platforms +As this role follows the official installation instructions, the supported OS version is the one specified there: Ubuntu (16.04 for the current bbb version). +Requires Ansible >= 2.4.0 + +## Usage + +To get up _BigBlueButton_ up and running the following variables can be configured: + + * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed (default: "bbb.example.com"). + * _bbb_configure_nat_: Configure NAT support for servers behind a firewall (Default: False). + * _bbb_configure_ssl_: Configure SSL support using _LetsEncrypt_ certificates (Default: False). + * _bbb_ssl_email_: Set _LetsEncrypt_ authorization email address. + * _bbb_install_demo_: Install the bbb-demo package, useful to easily test the new installation is working (Default: False). + * _bbb_install_check_: Install the bbb-check package, useful to debug the new installation if having issues (Default: False). + +To test out _BigBlueButton_ 2.0 beta you could change the repo URL to this one (it whould work): + * bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-200/' (Default: https://ubuntu.bigbluebutton.org/xenial-110/) + + +## Example Playbook + +``` +--- +- hosts: bbb + remote_user: ansible + become: True + become_user: root + become_method: sudo + gather_facts: True + roles: + - role: ansible-bigbluebutton + bbb_server_name: bbb.example.com + bbb_configure_nat: True + bbb_install_demo: True + bbb_install_check: True + bbb_configure_ssl: True + bbb_ssl_email: foo@bar.com + +``` From 0b9a17cbc70a6fccccda4c4f0e9152042bf795d5 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 01:41:43 -0500 Subject: [PATCH 10/37] Unused files. --- .travis.yml | 25 ------------------------- Vagrantfile | 27 --------------------------- 2 files changed, 52 deletions(-) delete mode 100644 .travis.yml delete mode 100644 Vagrantfile diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 000a08a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -language: python -python: "2.7" - -# Use the new container infrastructure -sudo: required - -dist: trusty - -# Install ansible -addons: - apt: - packages: - - python-pip - -install: - # Install ansible - - pip install ansible - - # Check ansible version - - ansible --version - -script: - - . tests/test.sh - diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 91019b3..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,27 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure(2) do |config| - config.vm.box = "ubuntu/trusty64" - - config.vm.network "private_network", ip: "10.10.10.10" - - config.vm.synced_folder ".", "/ansible/roles/ansible-bigbluebutton" - - config.vm.provider "virtualbox" do |vb| - vb.memory = "4096" - end - - config.vm.provision "shell", inline: <<-SHELL - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get install --assume-yes software-properties-common - apt-add-repository --yes ppa:ansible/ansible - apt-get update - apt-get --assume-yes install ansible - SHELL -end From 97890f5bd91cbf66465a99235c1cb4632dd700d3 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 01:42:05 -0500 Subject: [PATCH 11/37] Unused files. --- Makefile | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 Makefile diff --git a/Makefile b/Makefile deleted file mode 100644 index 4da6ff7..0000000 --- a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -localtest: - vagrant destroy -f - vagrant up - vagrant ssh -c 'cd /ansible/roles/ansible-bigbluebutton && . tests/test.sh' - vagrant destroy -f From 203fb050fa4cdae3c11825890b6a5b0e13211827 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 02:13:23 -0500 Subject: [PATCH 12/37] Do not use a default value for bbb_server_name and instead assert its value at the pleybook beginning. --- README.md | 2 +- defaults/main.yml | 1 - tasks/main.yml | 7 +++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ac11d69..14a4b71 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Requires Ansible >= 2.4.0 To get up _BigBlueButton_ up and running the following variables can be configured: - * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed (default: "bbb.example.com"). + * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed> This is the only mandatory value, the playbook will fail if this variable is not defined. * _bbb_configure_nat_: Configure NAT support for servers behind a firewall (Default: False). * _bbb_configure_ssl_: Configure SSL support using _LetsEncrypt_ certificates (Default: False). * _bbb_ssl_email_: Set _LetsEncrypt_ authorization email address. diff --git a/defaults/main.yml b/defaults/main.yml index d0696e2..69e9cdb 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,6 +1,5 @@ --- bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-110/' -bbb_server_name: "bbb.example.com" bbb_ubuntu_version: "16.04" bbb_install_demo: False bbb_install_check: False diff --git a/tasks/main.yml b/tasks/main.yml index 1f43153..c04fd10 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -4,6 +4,13 @@ msg: "OS not supported for BigBlueButton installation" when: ansible_distribution != "Ubuntu" or ansible_distribution_version != "{{ bbb_ubuntu_version }}" +- name: Check if bbb_server_name is defined + assert: + that: + - bbb_server_name != "" + tags: + - bbb-check_vars + - name: Enable https support for apt apt: name: apt-transport-https From a4d907819f39d57582d188b4c6c27214163edaf2 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 02:32:46 -0500 Subject: [PATCH 13/37] Assert bbb_ssl_email if bbb_ssl_configure_ssl is defined at the playbook beginning. --- tasks/ssl.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tasks/ssl.yml b/tasks/ssl.yml index 52d9866..bc27a9a 100644 --- a/tasks/ssl.yml +++ b/tasks/ssl.yml @@ -1,4 +1,11 @@ --- +- name: Check if bbb_ssl_email is defined + assert: + that: + - bbb_ssl_email != "" + tags: + - bbb-check_vars1 + - name: Install LetsEncrypt enabled nginx config template: src: templates/nginx/bbb-ssl.conf.j2 From ffbb167373a0e7a835c31e64a6eced974244023f Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 02:33:43 -0500 Subject: [PATCH 14/37] Fix typo. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 14a4b71..0e11106 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Requires Ansible >= 2.4.0 To get up _BigBlueButton_ up and running the following variables can be configured: - * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed> This is the only mandatory value, the playbook will fail if this variable is not defined. + * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed. This is the only mandatory value, the playbook will fail if this variable is not defined. * _bbb_configure_nat_: Configure NAT support for servers behind a firewall (Default: False). * _bbb_configure_ssl_: Configure SSL support using _LetsEncrypt_ certificates (Default: False). * _bbb_ssl_email_: Set _LetsEncrypt_ authorization email address. From 9419d225471af860df025063b43286b7953556fc Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 13:02:21 -0500 Subject: [PATCH 15/37] Cleanup meta/main.yml --- meta/main.yml | 142 ++------------------------------------------------ 1 file changed, 5 insertions(+), 137 deletions(-) diff --git a/meta/main.yml b/meta/main.yml index 42045f2..cc306cb 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,148 +1,16 @@ galaxy_info: - author: Jan Rotter + author: Juan Luis Baptiste description: Simple BigBlueButton installation (following the documentation on http://docs.bigbluebutton.org/install/install.html) - company: SoftwareMill Ltd. - - # If the issue tracker for your role is not on github, uncomment the - # next line and provide a value - # issue_tracker_url: http://example.com/issue/tracker - + license: MIT - - min_ansible_version: 2.0 - # - # Below are all platforms currently available. Just uncomment - # the ones that apply to your role. If you don't see your - # platform on this list, let us know and we'll get it added! - # + min_ansible_version: 2.4 + platforms: - #- name: EL - # versions: - # - all - # - 5 - # - 6 - # - 7 - #- name: GenericUNIX - # versions: - # - all - # - any - #- name: Solaris - # versions: - # - all - # - 10 - # - 11.0 - # - 11.1 - # - 11.2 - # - 11.3 - #- name: Fedora - # versions: - # - all - # - 16 - # - 17 - # - 18 - # - 19 - # - 20 - # - 21 - # - 22 - # - 23 - #- name: opensuse - # versions: - # - all - # - 12.1 - # - 12.2 - # - 12.3 - # - 13.1 - # - 13.2 - #- name: IOS - # versions: - # - all - # - any - #- name: SmartOS - # versions: - # - all - # - any - #- name: eos - # versions: - # - all - # - Any - #- name: Windows - # versions: - # - all - # - 2012R2 - #- name: Amazon - # versions: - # - all - # - 2013.03 - # - 2013.09 - #- name: GenericBSD - # versions: - # - all - # - any - #- name: Junos - # versions: - # - all - # - any - #- name: FreeBSD - # versions: - # - all - # - 10.0 - # - 10.1 - # - 10.2 - # - 8.0 - # - 8.1 - # - 8.2 - # - 8.3 - # - 8.4 - # - 9.0 - # - 9.1 - # - 9.1 - # - 9.2 - # - 9.3 - name: Ubuntu versions: - # - all - # - lucid - # - maverick - # - natty - # - oneiric - # - precise - # - quantal - # - raring - # - saucy - # - trusty - # - utopic - # - vivid - # - wily - xenial - #- name: SLES - # versions: - # - all - # - 10SP3 - # - 10SP4 - # - 11 - # - 11SP1 - # - 11SP2 - # - 11SP3 - #- name: GenericLinux - # versions: - # - all - # - any - #- name: NXOS - # versions: - # - all - # - any - #- name: Debian - # versions: - # - all - # - etch - # - jessie - # - lenny - # - sid - # - squeeze - # - stretch - # - wheezy - + galaxy_tags: [] # List tags for your role here, one per line. A tag is # a keyword that describes and categorizes the role. From b42414c2937187c32bef7ba1bd7a2d761635862b Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 15:24:29 -0500 Subject: [PATCH 16/37] Added missing nginx ssl config template. --- tasks/ssl.yml | 2 +- templates/bbb-ssl.conf.j2 | 62 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 templates/bbb-ssl.conf.j2 diff --git a/tasks/ssl.yml b/tasks/ssl.yml index bc27a9a..bbf055e 100644 --- a/tasks/ssl.yml +++ b/tasks/ssl.yml @@ -8,7 +8,7 @@ - name: Install LetsEncrypt enabled nginx config template: - src: templates/nginx/bbb-ssl.conf.j2 + src: templates/bbb-ssl.conf.j2 dest: /etc/nginx/sites-available/bigbluebutton backup: yes tags: diff --git a/templates/bbb-ssl.conf.j2 b/templates/bbb-ssl.conf.j2 new file mode 100644 index 0000000..ce5339f --- /dev/null +++ b/templates/bbb-ssl.conf.j2 @@ -0,0 +1,62 @@ +server { + listen 80; + listen [::]:80; + server_name {{ bbb_server_name }}; + listen 443 ssl; + listen [::]:443; + ssl_certificate /etc/letsencrypt/live/{{ bbb_server_name }}/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/{{ bbb_server_name }}/privkey.pem; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256"; + ssl_prefer_server_ciphers on; + ssl_dhparam /etc/nginx/ssl/dhp-4096.pem; + access_log /var/log/nginx/bigbluebutton.access.log; + # Handle RTMPT (RTMP Tunneling). Forwards requests + # to Red5 on port 5080 + location ~ (/open/|/close/|/idle/|/send/|/fcs/) { + proxy_pass http://127.0.0.1:5080; + proxy_redirect off; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + client_max_body_size 10m; + client_body_buffer_size 128k; + proxy_connect_timeout 90; + proxy_send_timeout 90; + proxy_read_timeout 90; + proxy_buffering off; + keepalive_requests 1000000000; + } + # Handle desktop sharing tunneling. Forwards + # requests to Red5 on port 5080. + location /deskshare { + proxy_pass http://127.0.0.1:5080; + proxy_redirect default; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + client_max_body_size 10m; + client_body_buffer_size 128k; + proxy_connect_timeout 90; + proxy_send_timeout 90; + proxy_read_timeout 90; + proxy_buffer_size 4k; + proxy_buffers 4 32k; + proxy_busy_buffers_size 64k; + proxy_temp_file_write_size 64k; + include fastcgi_params; + } + # BigBlueButton landing page. + location / { + root /var/www/bigbluebutton-default; + index index.html index.htm; + expires 1m; + } + # Include specific rules for record and playback + include /etc/bigbluebutton/nginx/*.nginx; + #error_page 404 /404.html; + # Redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /var/www/nginx-default; + } +} From 468a8281525478bc2cf3c68f687fb1731e3b14ec Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 15:25:03 -0500 Subject: [PATCH 17/37] Not needed to link certs as the config template points to the certs in the letsencrypt dir. --- tasks/letsencrypt.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tasks/letsencrypt.yml b/tasks/letsencrypt.yml index 587a453..f5b2090 100644 --- a/tasks/letsencrypt.yml +++ b/tasks/letsencrypt.yml @@ -12,13 +12,3 @@ command: openssl dhparam -dsaparam -out /etc/nginx/ssl/dhp-4096.pem 4096 creates=/etc/nginx/ssl/dhp-4096.pem tags: - bbb_create_dhpem_file - - - name: Link LetsEncrypt certificates to nginx SSL directory - file: - state: link - src: /etc/letsencrypt/live/{{ bbb_server_name }}/cert.pem - path: /etc/nginx/ssl/ - owner: root - group: root - tags: - - bbb_letsencript_ssl_dir From 08207a50caa843a39fae0560483b73fa4e93c61a Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 15:26:24 -0500 Subject: [PATCH 18/37] From old fork and not needed. --- tests/test.sh | 16 ---------------- tests/test.yml | 5 ----- 2 files changed, 21 deletions(-) delete mode 100644 tests/test.sh delete mode 100644 tests/test.yml diff --git a/tests/test.sh b/tests/test.sh deleted file mode 100644 index ccdbc1e..0000000 --- a/tests/test.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -set -e - -export ANSIBLE_ROLES_PATH='../' -INVENTORY='localhost,' -CONNECTION='local' - -ansible-playbook -i $INVENTORY tests/test.yml --syntax-check -ansible-playbook -i $INVENTORY tests/test.yml --connection=$CONNECTION --sudo -if ansible-playbook -i $INVENTORY tests/test.yml --connection=$CONNECTION --sudo \ - | grep --quiet 'changed=0.*failed=0'; then - echo 'Idempotency: PASS' && exit 0 -else - echo 'Idempotency: FAIL' && exit 1 -fi diff --git a/tests/test.yml b/tests/test.yml deleted file mode 100644 index d7cab4f..0000000 --- a/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - ansible-bigbluebutton/ \ No newline at end of file From 2f20b2a5047eac52b98999f8f596646f228e0b09 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 16:30:12 -0500 Subject: [PATCH 19/37] Remove scape backslash as it was breaking the demo jsp. --- tasks/ssl.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/ssl.yml b/tasks/ssl.yml index bbf055e..ffd9693 100644 --- a/tasks/ssl.yml +++ b/tasks/ssl.yml @@ -96,8 +96,8 @@ - name: Update http for https on demo replace: path: /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp - regexp: 'String BigBlueButtonURL = \"http:' - replace: 'String BigBlueButtonURL = \"https:' + regexp: 'String BigBlueButtonURL = "http:' + replace: 'String BigBlueButtonURL = "https:' backup: yes when: demo.stat.exists == True tags: From 6c5865bad97ad7f518b9ab2df58c0ea7bd65f633 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 18:56:17 -0500 Subject: [PATCH 20/37] Use set_fact instead of register module for variables. --- tasks/main.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index c04fd10..32ce9b0 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -95,14 +95,14 @@ - run_bbb-conf_setip - name: Get server local IP address - debug: msg="{{ ansible_default_ipv4.address }}" - register: server_ip + set_fact: + server_ip: "{{ ansible_default_ipv4.address }}" + tags: + - bbb-get_local_ip +- name: Print local IP address + debug: msg="{{ server_ip }}" tags: - bbb-get_local_ip -# - name: Print local IP address -# debug: msg="{{ server_ip }}" -# tags: -# - bbb-get_local_ip - name: Get server public IP address ipify_facts: @@ -111,8 +111,8 @@ - bbb-get_public_ip - name: Get server public IP address - debug: msg="{{ public_ip.ansible_facts.ipify_public_ip }}" - register: public_ip + set_fact: + public_ip: "{{ public_ip.ansible_facts.ipify_public_ip }}" tags: - bbb-get_public_ip From 81f71414a51cf0c3da8ced68281a9c05054d832d Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 19:54:29 -0500 Subject: [PATCH 21/37] Use set_fact instead of register module for variables. --- tasks/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 32ce9b0..59c90cc 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -123,15 +123,15 @@ - name: Verify local IP vs public IP addresses - debug: msg="{{ server_ip }}" - register: internal_ip + set_fact: + internal_ip: "{{ server_ip }}" when: server_ip != public_ip tags: - bbb-check_server_ip - name: Verify local IP vs public IP addresses - debug: msg="{{ public_ip }}" - register: server_ip + set_fact: + server_ip: "{{ public_ip }}" when: server_ip != public_ip tags: - bbb-check_server_ip From 2fecfce4053059977983fd716043c5cc515412db Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 19:55:06 -0500 Subject: [PATCH 22/37] Add a colon to regex to avoid breaking screensharing. --- tasks/ssl.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tasks/ssl.yml b/tasks/ssl.yml index ffd9693..b4fdd0a 100644 --- a/tasks/ssl.yml +++ b/tasks/ssl.yml @@ -53,8 +53,8 @@ - name: Update http for https on red5 replace: path: /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties - regexp: 'jnlpUrl=http' - replace: 'jnlpUrl=https' + regexp: 'jnlpUrl=http:' + replace: 'jnlpUrl=https:' backup: yes tags: - bbb_enable_https @@ -62,8 +62,8 @@ - name: Update http for https on red5 replace: path: /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties - regexp: 'jnlpFile=http' - replace: 'jnlpFile=https' + regexp: 'jnlpFile=http:' + replace: 'jnlpFile=https:' backup: yes tags: - bbb_enable_https From aa486b3308004456258525b573d9a5b5edd11175 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 20:13:37 -0500 Subject: [PATCH 23/37] Also update BwMon IP address on /var/www/bigbluebutton/client/conf/config.xml --- tasks/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index 59c90cc..d185c67 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -136,6 +136,15 @@ tags: - bbb-check_server_ip +- name: Update BwMon server IP address + replace: + path: /var/www/bigbluebutton/client/conf/config.xml + regexp: ' Date: Wed, 2 May 2018 20:16:04 -0500 Subject: [PATCH 24/37] Some cleanup. --- tasks/main.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index d185c67..00ebe2c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -99,10 +99,6 @@ server_ip: "{{ ansible_default_ipv4.address }}" tags: - bbb-get_local_ip -- name: Print local IP address - debug: msg="{{ server_ip }}" - tags: - - bbb-get_local_ip - name: Get server public IP address ipify_facts: @@ -116,11 +112,6 @@ tags: - bbb-get_public_ip -- name: Print server public IP address - debug: msg="{{ public_ip }}" - tags: - - bbb-get_public_ip - - name: Verify local IP vs public IP addresses set_fact: From bfd9a079e8b097088a55ce3f2507089b300a84dc Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Wed, 2 May 2018 21:20:47 -0500 Subject: [PATCH 25/37] Create a dummy nic for Freeswitch when NAT is enabled. --- tasks/nat.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tasks/nat.yml b/tasks/nat.yml index 6293374..6b686b1 100644 --- a/tasks/nat.yml +++ b/tasks/nat.yml @@ -39,3 +39,18 @@ backup: yes tags: - bbb_configure_nat + - name: Create dummy nic for FreeSWITCH + template: + src: templates/dmmy_nic.j2 + dest: /lib/systemd/system/dummy-nic.service + backup: yes + tags: + - bbb-create_dummy_nic + - name: Reload dummy nic + systemd: + state: restarted + daemon_reload: yes + enabled: yes + name: dummy-nic + tags: + - bbb-reload_dummy_nic From 84518caf2e61193d84e147687b99b997ae0a4f4f Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Sun, 29 Mar 2020 11:14:27 -0500 Subject: [PATCH 26/37] Updated bbb repo for version 2.2 --- defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 69e9cdb..fad6bb9 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,5 +1,5 @@ --- -bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-110/' +bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-220/' bbb_ubuntu_version: "16.04" bbb_install_demo: False bbb_install_check: False From 4778223e87580f1c41499b4daf7a3052af5a29df Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Sun, 29 Mar 2020 11:19:25 -0500 Subject: [PATCH 27/37] Updated README with latest version supported. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0e11106..72a2dac 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The role follows _BigBlueButton_ official [installation instructions](http://doc Forked from [softwaremill/ansible-bigbluebutton](https://github.com/softwaremill/ansible-bigbluebutton), as it seems abandoned. Itr has the following additional features: ## Features - * Installs latest stable version (currently _1.1_). + * Installs latest stable version (currently _2.2_). * Installation behind a firewall (NAT setup support) * Automatic SSL configuration using _LetsEncrypt_ certificates using [thefinn93/ansible-letsencrypt](https://github.com/thefinn93/ansible-letsencrypt) role. * Optionally installs the demo and check packages. @@ -28,8 +28,8 @@ To get up _BigBlueButton_ up and running the following variables can be configur * _bbb_install_demo_: Install the bbb-demo package, useful to easily test the new installation is working (Default: False). * _bbb_install_check_: Install the bbb-check package, useful to debug the new installation if having issues (Default: False). -To test out _BigBlueButton_ 2.0 beta you could change the repo URL to this one (it whould work): - * bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-200/' (Default: https://ubuntu.bigbluebutton.org/xenial-110/) +[comment]: <> To test out _BigBlueButton_ 2.0 beta you could change the repo URL to this one (it whould work): +[comment]: <> * bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-200/' (Default: https://ubuntu.bigbluebutton.org/xenial-110/) ## Example Playbook From 1766cb146220457ab0bfc4f705c3855ea8d502b6 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Mon, 4 May 2020 16:34:34 +0200 Subject: [PATCH 28/37] Add supplemental ppa repos --- tasks/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index 00ebe2c..a1239b1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -64,6 +64,15 @@ - multiverse_repositories - repositories +- name: Check supplemental PPA repos are enabled + apt_repository: repo={{ item }} state=present + with_items: + - 'ppa:bigbluebutton/support' + - 'ppa:rmescandon/yq' + tags: + - ppa-repositories + - repositories + - name: Check BigBlueButton repo is enabled apt_repository: repo={{ item }} state=present with_items: From b864ea575451ec3ec8eeee52905e858668c88e73 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Mon, 4 May 2020 17:16:13 +0200 Subject: [PATCH 29/37] Update path to bbb properties --- tasks/ssl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/ssl.yml b/tasks/ssl.yml index b4fdd0a..bbb3dcd 100644 --- a/tasks/ssl.yml +++ b/tasks/ssl.yml @@ -43,7 +43,7 @@ - name: Update http for https on BigBlueButton webapp replace: - path: /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties + path: "/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties" regexp: 'bigbluebutton.web.serverURL=http:' replace: 'bigbluebutton.web.serverURL=https:' backup: yes From 68ad04842e533546a79f0febe0f205e204671230 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Mon, 4 May 2020 17:40:21 +0200 Subject: [PATCH 30/37] Fix HTTPS connections via IPv6 --- templates/bbb-ssl.conf.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/bbb-ssl.conf.j2 b/templates/bbb-ssl.conf.j2 index ce5339f..6bea4c4 100644 --- a/templates/bbb-ssl.conf.j2 +++ b/templates/bbb-ssl.conf.j2 @@ -3,7 +3,7 @@ server { listen [::]:80; server_name {{ bbb_server_name }}; listen 443 ssl; - listen [::]:443; + listen [::]:443 ssl; ssl_certificate /etc/letsencrypt/live/{{ bbb_server_name }}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/{{ bbb_server_name }}/privkey.pem; ssl_session_cache shared:SSL:10m; From 630ed41e7bab4984df4d8ad8ca9d6f4e55b20f90 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Mon, 4 May 2020 18:44:41 +0200 Subject: [PATCH 31/37] Add HTML5 client and deps by default --- tasks/main.yml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tasks/main.yml b/tasks/main.yml index a1239b1..f57f5a1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -86,6 +86,47 @@ tags: - install_bbb +- name: Check MongoDB apt key is present + apt_key: + url: "https://www.mongodb.org/static/pgp/server-3.4.asc" + state: present + when: bbb_install_html5 == True + tags: + - mongodb-apt_key + +- name: Check MongoDB repo is enabled + apt_repository: repo="deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" state=present + when: bbb_install_html5 == True + tags: + - mongodb-repositories + - repositories + +- name: Check NodeJS apt key is present + apt_key: + url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" + state: present + when: bbb_install_html5 == True + tags: + - nodejs-apt_key + +- name: Check NodeJS repo is enabled + apt_repository: repo="deb https://deb.nodesource.com/node_8.x xenial main" state=present + when: bbb_install_html5 == True + tags: + - nodejs-repositories + - repositories +- name: Install bbb-html5 and dependencies + apt: + name: + - bbb-html5 + - mongodb-org + - curl + - nodejs + state: present + when: bbb_install_html5 == True + tags: + - install_bbb-html5 + - name: Install bbb-demo package apt: name=bbb-demo state=present when: bbb_install_demo == True From 30f8aaece24c624b7dde0aea67d62779ac5c7a7c Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Mon, 4 May 2020 18:50:42 +0200 Subject: [PATCH 32/37] Install optional playback packages --- defaults/main.yml | 4 ++++ tasks/main.yml | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/defaults/main.yml b/defaults/main.yml index fad6bb9..599c206 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,6 +1,10 @@ --- bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-220/' bbb_ubuntu_version: "16.04" +bbb_install_html5: True +bbb_install_playback_notes: True +bbb_install_playback_podcast: True +bbb_install_playback_screenshare: True bbb_install_demo: False bbb_install_check: False bbb_configure_nat: False diff --git a/tasks/main.yml b/tasks/main.yml index f57f5a1..a795c96 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -127,6 +127,24 @@ tags: - install_bbb-html5 +- name: Install notes playback package + apt: name=bbb-playback-notes state=present + when: bbb_install_playback_notes == True + tags: + - install_bbb-playback-notes + +- name: Install podcast playback package + apt: name=bbb-playback-podcast state=present + when: bbb_install_playback_podcast == True + tags: + - install_bbb-playback-podcast + +- name: Install screenshare playback package + apt: name=bbb-playback-screenshare state=present + when: bbb_install_playback_screenshare == True + tags: + - install_bbb-playback-screenshare + - name: Install bbb-demo package apt: name=bbb-demo state=present when: bbb_install_demo == True From cc1a22d1dbe5e65650b76470c5099fee74ab9ddb Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Tue, 5 May 2020 11:48:10 +0200 Subject: [PATCH 33/37] Document new Ansible variables --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 72a2dac..a977bfe 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,13 @@ To get up _BigBlueButton_ up and running the following variables can be configur * _bbb_configure_nat_: Configure NAT support for servers behind a firewall (Default: False). * _bbb_configure_ssl_: Configure SSL support using _LetsEncrypt_ certificates (Default: False). * _bbb_ssl_email_: Set _LetsEncrypt_ authorization email address. + * _bbb_install_html5_: Install the HTML5 client (Default: True). * _bbb_install_demo_: Install the bbb-demo package, useful to easily test the new installation is working (Default: False). * _bbb_install_check_: Install the bbb-check package, useful to debug the new installation if having issues (Default: False). + * _bbb_install_playback_notes_: Install the bbb-playback-notes package to play back shared notes from a recorded session (Default: True). + * _bbb_install_playback_podcast_: Install the bbb-playback-podcast package to play back audio from a recorded session (Default: True). + * _bbb_install_playback_screenshare_: Install the bbb-playback-screenshare package to play back shared screens from a recorded session (Default: True). + [comment]: <> To test out _BigBlueButton_ 2.0 beta you could change the repo URL to this one (it whould work): [comment]: <> * bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-200/' (Default: https://ubuntu.bigbluebutton.org/xenial-110/) From 6b0fc9b449e29dea879fab8fc745242a4168bf4a Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Tue, 5 May 2020 11:48:36 +0200 Subject: [PATCH 34/37] Remove obsolete comment in README file --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index a977bfe..129efd2 100644 --- a/README.md +++ b/README.md @@ -32,11 +32,6 @@ To get up _BigBlueButton_ up and running the following variables can be configur * _bbb_install_playback_podcast_: Install the bbb-playback-podcast package to play back audio from a recorded session (Default: True). * _bbb_install_playback_screenshare_: Install the bbb-playback-screenshare package to play back shared screens from a recorded session (Default: True). - -[comment]: <> To test out _BigBlueButton_ 2.0 beta you could change the repo URL to this one (it whould work): -[comment]: <> * bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-200/' (Default: https://ubuntu.bigbluebutton.org/xenial-110/) - - ## Example Playbook ``` From f7b09eb9ffd19aa50df8e602813b315324436636 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Tue, 5 May 2020 11:51:00 +0200 Subject: [PATCH 35/37] Avoid nested underscores in Markdown Improves readability in some editors. --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 129efd2..1e5b977 100644 --- a/README.md +++ b/README.md @@ -21,16 +21,16 @@ Requires Ansible >= 2.4.0 To get up _BigBlueButton_ up and running the following variables can be configured: - * _bbb_server_name_: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed. This is the only mandatory value, the playbook will fail if this variable is not defined. - * _bbb_configure_nat_: Configure NAT support for servers behind a firewall (Default: False). - * _bbb_configure_ssl_: Configure SSL support using _LetsEncrypt_ certificates (Default: False). - * _bbb_ssl_email_: Set _LetsEncrypt_ authorization email address. - * _bbb_install_html5_: Install the HTML5 client (Default: True). - * _bbb_install_demo_: Install the bbb-demo package, useful to easily test the new installation is working (Default: False). - * _bbb_install_check_: Install the bbb-check package, useful to debug the new installation if having issues (Default: False). - * _bbb_install_playback_notes_: Install the bbb-playback-notes package to play back shared notes from a recorded session (Default: True). - * _bbb_install_playback_podcast_: Install the bbb-playback-podcast package to play back audio from a recorded session (Default: True). - * _bbb_install_playback_screenshare_: Install the bbb-playback-screenshare package to play back shared screens from a recorded session (Default: True). + * `bbb_server_name`: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed. This is the only mandatory value, the playbook will fail if this variable is not defined. + * `bbb_configure_nat`: Configure NAT support for servers behind a firewall (Default: `False`). + * `bbb_configure_ssl`: Configure SSL support using _LetsEncrypt_ certificates (Default: `False`). + * `bbb_ssl_email`: Set _LetsEncrypt_ authorization email address. + * `bbb_install_html5`: Install the HTML5 client (Default: `True`). + * `bbb_install_demo`: Install the bbb-demo package, useful to easily test the new installation is working (Default: `False`). + * `bbb_install_check`: Install the bbb-check package, useful to debug the new installation if having issues (Default: `False`). + * `bbb_install_playback_notes`: Install the bbb-playback-notes package to play back shared notes from a recorded session (Default: `True`). + * `bbb_install_playback_podcast`: Install the bbb-playback-podcast package to play back audio from a recorded session (Default: `True`). + * `bbb_install_playback_screenshare`: Install the bbb-playback-screenshare package to play back shared screens from a recorded session (Default: `True`). ## Example Playbook From 077223d4c2ae1e63323e400b38a6e363e0529fe4 Mon Sep 17 00:00:00 2001 From: Daniel Kobras Date: Tue, 5 May 2020 11:52:32 +0200 Subject: [PATCH 36/37] Fix typo in README file --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e5b977..310b5b3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Requires Ansible >= 2.4.0 To get up _BigBlueButton_ up and running the following variables can be configured: - * `bbb_server_name`: Set the FQDN hosntame that points to the server where _BigBlueButton_ is going to be installed. This is the only mandatory value, the playbook will fail if this variable is not defined. + * `bbb_server_name`: Set the FQDN hostname that points to the server where _BigBlueButton_ is going to be installed. This is the only mandatory value, the playbook will fail if this variable is not defined. * `bbb_configure_nat`: Configure NAT support for servers behind a firewall (Default: `False`). * `bbb_configure_ssl`: Configure SSL support using _LetsEncrypt_ certificates (Default: `False`). * `bbb_ssl_email`: Set _LetsEncrypt_ authorization email address. From 08d0cfb56d44a9a8e012a0cac1a7379d6de1c5c5 Mon Sep 17 00:00:00 2001 From: Juan Luis Baptiste Date: Thu, 24 Jun 2021 11:00:41 -0500 Subject: [PATCH 37/37] Updated bbb version to 2.3 --- README.md | 2 +- defaults/main.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 310b5b3..0b0d16d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The role follows _BigBlueButton_ official [installation instructions](http://doc Forked from [softwaremill/ansible-bigbluebutton](https://github.com/softwaremill/ansible-bigbluebutton), as it seems abandoned. Itr has the following additional features: ## Features - * Installs latest stable version (currently _2.2_). + * Installs latest stable version (currently _2.3_). * Installation behind a firewall (NAT setup support) * Automatic SSL configuration using _LetsEncrypt_ certificates using [thefinn93/ansible-letsencrypt](https://github.com/thefinn93/ansible-letsencrypt) role. * Optionally installs the demo and check packages. diff --git a/defaults/main.yml b/defaults/main.yml index 599c206..4b65145 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,6 +1,6 @@ --- -bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/xenial-220/' -bbb_ubuntu_version: "16.04" +bbb_apt_repo_url: 'https://ubuntu.bigbluebutton.org/bionic-230/' +bbb_ubuntu_version: "18.04" bbb_install_html5: True bbb_install_playback_notes: True bbb_install_playback_podcast: True