- name: "Set 'nodejs_install: True' and 'nodejs_enabled: True'" set_fact: nodejs_install: True nodejs_enabled: True - name: NODEJS - run 'nodejs' role (attempt to install & enable Node.js) include_role: name: nodejs - name: FAIL (STOP THE INSTALL) IF 'nodejs_installed is undefined' fail: msg: "PBX install cannot proceed, as Node.js is not installed." when: nodejs_installed is undefined #- name: FAIL (STOP THE INSTALL) IF 'nodejs_version != "12.x"' # fail: # msg: "PBX install cannot proceed, as it currently requires Node.js 12.x, whereas nodejs_version is set to {{ nodejs_version }}. Please check the value of nodejs_version in /opt/iiab/iiab/vars/default_vars.yml, /etc/iiab/local_vars.yml, /opt/iiab/iiab/roles/nodejs, etc." # when: nodejs_version != "12.x" - name: "Set 'apache_install: True' and 'apache_enabled: True'" set_fact: apache_install: True apache_enabled: True - name: APACHE - run 'httpd' role include_role: name: httpd #- name: TODO: Check if asterisk and freepbx are already installed - debug: # Crazy spacing below is tuned for 80-column screens msg: >- ####################################################################WARNING: ONLY UBUNTU 18.04, DEBIAN 9 & RASPBIAN ARE SUPPORTED AS OF FEB 2019. Please assist Internet-in-a-Box communities worldwide if you can make Asterisk and FreePBX work on other OS's / distros, Thank You! http://FAQ.IIAB.IO ############################################################################### - name: Check if /etc/systemd/system/freepbx.service is already installed stat: path: /etc/systemd/system/freepbx.service register: freepbx_installed - debug: msg: >- FreePBX already installed. Reinstall shall be skipped when: freepbx_installed.stat.exists - name: Install Asterisk (debuntu) include_tasks: asterisk.yml when: internet_available and pbx_install and (pbx_installed is undefined) and is_debuntu and (not freepbx_installed.stat.exists) #when: internet_available and pbx_install and (not pbx_installed) and ((is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18) - name: Install FreePBX (debuntu) include_tasks: freepbx.yml when: internet_available and pbx_install and (pbx_installed is undefined) and is_debuntu and (not freepbx_installed.stat.exists) #when: internet_available and pbx_install and (not pbx_installed) and ((is_debian and ansible_distribution_major_version == "9") or is_ubuntu_18) # RECORD PBX AS INSTALLED - name: "Set 'pbx_installed: True'" set_fact: pbx_installed: True - name: "Add 'pbx_installed: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^pbx_installed' line: 'pbx_installed: True'