diff --git a/roles/6-generic-apps/tasks/main.yml b/roles/6-generic-apps/tasks/main.yml index a9b9f1b7b..ddab6734e 100644 --- a/roles/6-generic-apps/tasks/main.yml +++ b/roles/6-generic-apps/tasks/main.yml @@ -61,11 +61,6 @@ name: nextcloud when: nextcloud_install -- name: PBX - include_role: - name: pbx - when: pbx_install - - name: WORDPRESS include_role: name: wordpress diff --git a/roles/9-local-addons/tasks/main.yml b/roles/9-local-addons/tasks/main.yml index ebe579500..54420a743 100644 --- a/roles/9-local-addons/tasks/main.yml +++ b/roles/9-local-addons/tasks/main.yml @@ -3,32 +3,39 @@ - name: ...IS BEGINNING ==================================== meta: noop -- name: INTERNETARCHIVE - include_role: - name: internetarchive - when: internetarchive_install - # Is porting to Python 3 complete, and if so does this belong elsewhere? - name: CAPTIVE PORTAL include_role: name: captiveportal when: captiveportal_install +- name: INTERNETARCHIVE + include_role: + name: internetarchive + when: internetarchive_install + - name: MINETEST include_role: name: minetest when: minetest_install -# KEEP AT THE END as this installs dependencies from Debian's 'testing' branch! +- name: CALIBRE-WEB + include_role: + name: calibre-web + when: calibreweb_install + +# KEEP NEAR THE VERY END as this installs dependencies from Debian's 'testing' branch! - name: CALIBRE include_role: name: calibre when: calibre_install -- name: CALIBRE-WEB +# Pulls in a large number of devel packages, via asterisk.yml -> 'install_prereq install' +# https://github.com/asterisk/asterisk/blob/master/contrib/scripts/install_prereq#L21-L35 +- name: PBX - Asterisk & FreePBX include_role: - name: calibre-web - when: calibreweb_install + name: pbx + when: pbx_install - name: "2021-06-27 TEMPORARY CODE TO INSTALL 'php-pear' UNTIL ADMIN CONSOLE DECLARES ITS OWN DEPENDENCY FOR: https://github.com/iiab/iiab-admin-console/blob/master/roles/cmdsrv/tasks/main.yml#L19" package: diff --git a/roles/pbx/tasks/asterisk.yml b/roles/pbx/tasks/asterisk.yml index beb37e1d1..0cd3fcf1b 100644 --- a/roles/pbx/tasks/asterisk.yml +++ b/roles/pbx/tasks/asterisk.yml @@ -1,5 +1,6 @@ -- name: Asterisk - Install dependencies - include: asterisk_dependencies.yml +# 2021-08-03: Not nec on Debian 11, and hopefully other OS's likewise +#- name: Asterisk - Install dependencies +# include: asterisk_dependencies.yml - name: Asterisk - Download software to /opt/iiab/downloads get_url: @@ -32,13 +33,10 @@ extra_opts: [--strip-components=1] creates: "{{ asterisk_src_dir }}/Makefile" -- name: Asterisk - Download mp3 decoder library into source tree - command: ./contrib/scripts/get_mp3_source.sh - args: - chdir: "{{ asterisk_src_dir }}" - creates: addons/mp3/mpg123.h - -# 2021-08-03: Experiment w/o aptitude +# 2021-08-03: Asterisk's install_prereq script (stanza just below) installs +# 'aptitude' regardless, within handle_debian() here: +# https://github.com/asterisk/asterisk/blob/master/contrib/scripts/install_prereq#L262-L271 +# #- name: Asterisk - Install aptitude (otherwise install_prereq fails?) # package: # name: aptitude @@ -49,6 +47,13 @@ args: chdir: "{{ asterisk_src_dir }}" +# 2021-08-03: Requires subversion (installed just above) +- name: Asterisk - Download mp3 decoder library into source tree + command: ./contrib/scripts/get_mp3_source.sh + args: + chdir: "{{ asterisk_src_dir }}" + creates: addons/mp3/mpg123.h + - name: Asterisk - Run the configure script command: ./configure --with-jansson-bundled args: diff --git a/roles/pbx/tasks/asterisk_dependencies.yml b/roles/pbx/tasks/asterisk_dependencies.yml.unused similarity index 100% rename from roles/pbx/tasks/asterisk_dependencies.yml rename to roles/pbx/tasks/asterisk_dependencies.yml.unused diff --git a/roles/pbx/tasks/enable-or-disable.yml b/roles/pbx/tasks/enable-or-disable.yml new file mode 100644 index 000000000..53d83fd9f --- /dev/null +++ b/roles/pbx/tasks/enable-or-disable.yml @@ -0,0 +1,44 @@ +- name: Enable & (Re)start 'asterisk' systemd service (if pbx_enabled) + systemd: + daemon_reload: yes + name: asterisk + enabled: yes + state: restarted + when: pbx_enabled + +- name: Disable & Stop 'asterisk' systemd service (if not pbx_enabled) + systemd: + daemon_reload: yes + name: asterisk + enabled: no + state: stopped + when: not pbx_enabled + + +- name: Enable & (Re)start 'freepbx' systemd service (if pbx_enabled) + systemd: + name: freepbx + enabled: yes + state: restarted + when: pbx_enabled + +- name: Disable & Stop 'freepbx' systemd service (if not pbx_enabled) + systemd: + name: freepbx + enabled: no + state: stopped + when: not pbx_enabled + + +- name: Enable http://box:{{ pbx_http_port }}/freepbx via Apache, if pbx_enabled # http://box:83/freepbx + command: a2ensite freepbx.conf + when: pbx_enabled + +- name: Disable http://box:{{ pbx_http_port }}/freepbx via Apache, if not pbx_enabled + command: a2dissite freepbx.conf + when: not pbx_enabled + +- name: Restart Apache service ({{ apache_service }}) + systemd: + name: "{{ apache_service }}" # httpd or apache2 + state: restarted diff --git a/roles/pbx/tasks/freepbx_enable.yml b/roles/pbx/tasks/freepbx_enable.yml deleted file mode 100644 index 2f3f1976b..000000000 --- a/roles/pbx/tasks/freepbx_enable.yml +++ /dev/null @@ -1,28 +0,0 @@ -- name: FreePBX - Enable & (Re)start 'freepbx' systemd service (if pbx_enabled) - systemd: - daemon_reload: yes - name: freepbx - enabled: yes - state: restarted - when: pbx_enabled - -- name: FreePBX - Disable & Stop 'freepbx' systemd service (if not pbx_enabled) - systemd: - daemon_reload: yes - name: freepbx - enabled: no - state: stopped - when: not pbx_enabled - -- name: FreePBX - Enable http://box:{{ pbx_http_port }} via Apache, if pbx_enabled # http://box:83 - command: a2ensite freepbx.conf - when: pbx_enabled - -- name: FreePBX - Disable http://box:{{ pbx_http_port }} via Apache, if not pbx_enabled # http://box:83 - command: a2dissite freepbx.conf - when: not pbx_enabled - -- name: FreePBX - Restart Apache service ({{ apache_service }}) - systemd: - name: "{{ apache_service }}" # httpd or apache2 - state: restarted diff --git a/roles/pbx/tasks/install.yml b/roles/pbx/tasks/install.yml index e96b6ccd4..50e2ccf4f 100644 --- a/roles/pbx/tasks/install.yml +++ b/roles/pbx/tasks/install.yml @@ -37,7 +37,7 @@ name: httpd -# 2021-07-27: taken care of by main.yml +# 2021-07-27: Taken care of by main.yml #- name: TODO: Check if asterisk and freepbx are already installed # #- name: Check if /etc/systemd/system/freepbx.service is already installed @@ -50,10 +50,11 @@ # FreePBX already installed. Reinstall shall be skipped # when: freepbx_installed.stat.exists -- name: Install 'make' package - package: - name: make - state: present +# 2021-08-03: Taken care of by asterisk.yml's scripts/install_prereq +#- name: Install 'make' package +# package: +# name: make +# state: present - name: Install Asterisk include_tasks: asterisk.yml diff --git a/roles/pbx/tasks/main.yml b/roles/pbx/tasks/main.yml index fc7d29442..7a0ddfca9 100644 --- a/roles/pbx/tasks/main.yml +++ b/roles/pbx/tasks/main.yml @@ -23,14 +23,14 @@ include_tasks: install.yml when: pbx_installed is undefined -- name: Enable FreePBX (debuntu) - include_tasks: freepbx_enable.yml - when: pbx_installed is defined + +- include_tasks: enable-or-disable.yml - name: Asterisk - Install chan_dongle include: chan_dongle.yml when: asterisk_chan_dongle + - name: Add 'pbx' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini