From b41fe01cd5e4f3298c1380eb6d853622ddd3503a Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Aug 2021 17:09:58 -0400 Subject: [PATCH 1/6] Asterisk deps + enable; PBX 6 -> 9 --- roles/6-generic-apps/tasks/main.yml | 5 --- roles/9-local-addons/tasks/main.yml | 15 ++++++--- roles/pbx/tasks/asterisk.yml | 23 ++++++++------ roles/pbx/tasks/enable-or-disable.yml | 44 +++++++++++++++++++++++++++ roles/pbx/tasks/freepbx_enable.yml | 28 ----------------- roles/pbx/tasks/main.yml | 6 ++-- 6 files changed, 71 insertions(+), 50 deletions(-) create mode 100644 roles/pbx/tasks/enable-or-disable.yml delete mode 100644 roles/pbx/tasks/freepbx_enable.yml 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..e481bbfe2 100644 --- a/roles/9-local-addons/tasks/main.yml +++ b/roles/9-local-addons/tasks/main.yml @@ -3,22 +3,27 @@ - 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 +- name: PBX - Asterisk & FreePBX + include_role: + name: pbx + when: pbx_install + # KEEP AT THE END as this installs dependencies from Debian's 'testing' branch! - name: CALIBRE include_role: 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/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/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 From b7afb530d00d2b80c1ec771866880a0df9c281a6 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Aug 2021 17:18:06 -0400 Subject: [PATCH 2/6] pbx/tasks/asterisk_dependencies.yml.unused --- roles/pbx/tasks/asterisk_dependencies.yml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 roles/pbx/tasks/asterisk_dependencies.yml diff --git a/roles/pbx/tasks/asterisk_dependencies.yml b/roles/pbx/tasks/asterisk_dependencies.yml deleted file mode 100644 index 0738ddfe4..000000000 --- a/roles/pbx/tasks/asterisk_dependencies.yml +++ /dev/null @@ -1,16 +0,0 @@ -- name: Asterisk - Install dependencies - package: - name: - - git - - curl - - wget - - libnewt-dev - - libssl-dev - - libncurses5-dev - - subversion - - libsqlite3-dev - - build-essential - - libjansson-dev - - libxml2-dev - - uuid-dev - state: latest From 6477909d9b1c56fe5203580e35d3c5910b55d80b Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Aug 2021 17:18:42 -0400 Subject: [PATCH 3/6] pbx/tasks/asterisk_dependencies.yml.unused --- roles/pbx/tasks/asterisk_dependencies.yml.unused | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 roles/pbx/tasks/asterisk_dependencies.yml.unused diff --git a/roles/pbx/tasks/asterisk_dependencies.yml.unused b/roles/pbx/tasks/asterisk_dependencies.yml.unused new file mode 100644 index 000000000..0738ddfe4 --- /dev/null +++ b/roles/pbx/tasks/asterisk_dependencies.yml.unused @@ -0,0 +1,16 @@ +- name: Asterisk - Install dependencies + package: + name: + - git + - curl + - wget + - libnewt-dev + - libssl-dev + - libncurses5-dev + - subversion + - libsqlite3-dev + - build-essential + - libjansson-dev + - libxml2-dev + - uuid-dev + state: latest From e39aacbbab94bf2d7ffe89a4726ab66f269ff691 Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 3 Aug 2021 17:40:51 -0400 Subject: [PATCH 4/6] pbx/tasks/install.yml: Comment out install of 'make' --- roles/pbx/tasks/install.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/pbx/tasks/install.yml b/roles/pbx/tasks/install.yml index e96b6ccd4..d66bb7b1d 100644 --- a/roles/pbx/tasks/install.yml +++ b/roles/pbx/tasks/install.yml @@ -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 From 081cdc7b9f641afbe535871778d9445f5feaa66b Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 3 Aug 2021 17:42:56 -0400 Subject: [PATCH 5/6] Cleaner pbx/tasks/install.yml --- roles/pbx/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/pbx/tasks/install.yml b/roles/pbx/tasks/install.yml index d66bb7b1d..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 From b6316b66fbceda51ddf951981115c1d916b8ae42 Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 3 Aug 2021 18:23:49 -0400 Subject: [PATCH 6/6] Re-order Stage 9 per @jvonau suggestion in #2902 --- roles/9-local-addons/tasks/main.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/roles/9-local-addons/tasks/main.yml b/roles/9-local-addons/tasks/main.yml index e481bbfe2..54420a743 100644 --- a/roles/9-local-addons/tasks/main.yml +++ b/roles/9-local-addons/tasks/main.yml @@ -19,21 +19,23 @@ name: minetest when: minetest_install -- name: PBX - Asterisk & FreePBX +- name: CALIBRE-WEB include_role: - name: pbx - when: pbx_install + name: calibre-web + when: calibreweb_install -# KEEP AT THE END as this installs dependencies from Debian's 'testing' branch! +# 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: