---
# Set du hostname BBB
# Prérequis : le DNS doit être positionné sur le nouveau nom de domaine
- name: vérification de la présence du hostname dans les variables
  fail:
    msg: |
      la variable `bbbHostname` est obligatoire pour
      utiliser le role bbb-set-hostname.
      Veuillez la rajouter dans l'inventaire
  when:
    - bbbHostname is not defined

# Config BBB
- name: Récup du hostname actuellement configuré
  fetch:
    src: /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
    dest: /tmp/
    flat: true

- name: Récup du hostname actuellement configuré
  set_fact:
    oldHostname: "{{ lookup('ini', 'bigbluebutton.web.serverURL type=properties file=/tmp/bigbluebutton.properties') | urlsplit('hostname') }}"

- name: execution de la commande bigbluebutton qui set le nouveau nom de domaine
  command: "bbb-conf --setip {{ bbbHostname }}"
  when: oldHostname != bbbHostname

# Config Greenlight
- name: Maj du server name greenlight de la conf bigbluebutton
  replace:
    path: /root/greenlight/.env
    regexp: '(.*){{ oldHostname }}(.*)'
    replace: '\1{{ bbbHostname }}\2'

- name: redémarrage de greenlight
  shell: "cd /root/greenlight; docker-compose down; docker-compose up -d"
  when: oldHostname != bbbHostname

# Config Let's encrypt
- name: Check si le certificat SSL est présent
  stat:
    path: /etc/letsencrypt/live/{{ bbbHostname }}/fullchain.pem
  register: ssl_file

- name: Active la conf nginx nécessaire pour créer un certificat Let's Encrypt
  template:
    src: nginxSSLcheck.conf
    dest: /etc/nginx/sites-enabled/
    mode: '0644'
  when: not ssl_file.stat.exists

- name: Force le redémarrage de Nginx pour prendre en compte la nouvelle conf
  systemd:
    state: restarted
    name: nginx
  when: not ssl_file.stat.exists

- name: Certif LE
  command: certbot --webroot -w /var/www/bigbluebutton-default/ -d {{ bbbHostname }} certonly
  when: not ssl_file.stat.exists

- name: Suppression de la conf temporaire LE
  file:
    path: /etc/nginx/sites-enabled/nginxSSLcheck.conf
    state: absent
  notify: reload nginx

- name: Maj du server name nginx de la conf bigbluebutton
  replace:
    path: /etc/nginx/sites-enabled/bigbluebutton
    regexp: '(.*){{ oldHostname }}(.*)'
    replace: '\1{{ bbbHostname }}\2'
  notify: reload nginx
