2019-01-17 10:32:58 +00:00
|
|
|
- name: FreePBX - Install dependencies
|
|
|
|
include: freepbx_dependencies.yml
|
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
- name: FreePBX - Download {{ freepbx_url }}/{{ freepbx_src_file }} to {{ downloads_dir }}
|
2019-01-17 10:32:58 +00:00
|
|
|
get_url:
|
|
|
|
url: "{{ freepbx_url }}/{{ freepbx_src_file }}"
|
2021-08-04 13:49:54 +00:00
|
|
|
dest: "{{ downloads_dir }}" # e.g. /opt/iiab/downloads/freepbx-16.0-latest.tgz
|
2019-01-17 10:32:58 +00:00
|
|
|
timeout: "{{ download_timeout }}"
|
2020-10-16 20:46:19 +00:00
|
|
|
when: internet_available
|
2019-01-17 10:32:58 +00:00
|
|
|
|
2019-01-18 08:03:01 +00:00
|
|
|
- name: FreePBX - Check for {{ downloads_dir }}/{{ freepbx_src_file }}
|
2019-01-17 10:32:58 +00:00
|
|
|
stat:
|
|
|
|
path: "{{ downloads_dir }}/{{ freepbx_src_file }}"
|
2019-01-19 14:43:04 +00:00
|
|
|
register: freepbx_src
|
2019-01-17 10:32:58 +00:00
|
|
|
|
2019-01-18 08:03:01 +00:00
|
|
|
- name: FreePBX - FAIL (force Ansible to exit) IF {{ downloads_dir }}/{{ freepbx_src_file }} doesn't exist
|
2019-01-17 10:32:58 +00:00
|
|
|
fail:
|
2021-08-04 13:49:54 +00:00
|
|
|
msg: "{{ downloads_dir }}/{{ freepbx_src_file }} is REQUIRED to install FreePBX."
|
2019-01-17 10:32:58 +00:00
|
|
|
when: not freepbx_src.stat.exists
|
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
- name: FreePBX - Create source dir {{ freepbx_src_dir }}
|
2021-08-03 04:40:38 +00:00
|
|
|
file:
|
2021-08-04 09:34:19 +00:00
|
|
|
path: "{{ freepbx_src_dir }}" # /opt/iiab/freepbx
|
2019-01-17 10:32:58 +00:00
|
|
|
state: directory
|
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
- name: FreePBX - Extract to source dir (root:root)
|
2021-08-03 04:40:38 +00:00
|
|
|
unarchive:
|
2019-01-17 10:32:58 +00:00
|
|
|
src: "{{ downloads_dir }}/{{ freepbx_src_file }}"
|
|
|
|
dest: "{{ freepbx_src_dir }}"
|
|
|
|
owner: root
|
|
|
|
group: root
|
|
|
|
extra_opts: [--strip-components=1]
|
2019-01-19 04:38:47 +00:00
|
|
|
creates: "{{ freepbx_src_dir }}/install"
|
2019-01-17 10:32:58 +00:00
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
# 2021-08-04: FreePBX 16 no longer needs this FreePBX 15 patch
|
|
|
|
# - name: FreePBX - Patch FreePBX source - IIAB Bug 1685
|
|
|
|
# patch:
|
|
|
|
# src: roles/pbx/templates/71-freepbx-framework.patch
|
|
|
|
# dest: "{{ freepbx_src_dir }}/amp_conf/htdocs/admin/libraries/BMO/Framework.class.php"
|
|
|
|
|
|
|
|
# 2021-08-04: FreePBX 16 no longer needs this FreePBX 15 patch
|
|
|
|
# - name: FreePBX - Patch FreePBX source - wants [] not {}
|
|
|
|
# patch:
|
|
|
|
# src: roles/pbx/templates/pbx.patch
|
|
|
|
# dest: "{{ freepbx_src_dir }}/amp_conf/htdocs/admin/libraries/Composer/vendor/neitanod/forceutf8/src/ForceUTF8/Encoding.php"
|
2019-05-22 03:23:41 +00:00
|
|
|
|
2020-08-24 19:03:29 +00:00
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Disable & Stop 'asterisk' systemd service
|
2019-01-17 10:32:58 +00:00
|
|
|
systemd:
|
|
|
|
daemon_reload: yes
|
|
|
|
name: asterisk
|
|
|
|
enabled: no
|
|
|
|
state: stopped
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Add MySQL user ({{ asterisk_db_user }})
|
2019-01-20 05:41:28 +00:00
|
|
|
mysql_user:
|
|
|
|
name: "{{ asterisk_db_user }}"
|
|
|
|
password: "{{ asterisk_db_password }}"
|
|
|
|
priv: "{{ asterisk_db_dbname }}.*:ALL/{{ asterisk_db_cdrdbname }}.*:ALL"
|
2021-08-04 09:06:12 +00:00
|
|
|
# login_host: "{{ asterisk_db_host }}"
|
|
|
|
# login_user: root
|
|
|
|
# login_password: "{{ mysql_root_password }}"
|
2019-01-20 05:41:28 +00:00
|
|
|
host: "{{ (asterisk_db_host == 'localhost') | ternary('localhost', ansible_default_ipv4.address) }}"
|
|
|
|
state: present
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Add MySQL db ({{ asterisk_db_dbname }})
|
2019-01-20 05:41:28 +00:00
|
|
|
mysql_db:
|
|
|
|
name: "{{ asterisk_db_dbname }}"
|
|
|
|
encoding: utf8
|
|
|
|
collation: utf8_general_ci
|
2021-08-04 09:06:12 +00:00
|
|
|
# login_host: "{{ asterisk_db_host }}"
|
|
|
|
# login_user: root
|
|
|
|
# login_password: "{{ mysql_root_password }}"
|
2019-01-20 05:41:28 +00:00
|
|
|
state: present
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Add cdr MySQL db ({{ asterisk_db_cdrdbname }})
|
2019-01-20 05:41:28 +00:00
|
|
|
mysql_db:
|
|
|
|
name: "{{ asterisk_db_cdrdbname }}"
|
|
|
|
encoding: utf8
|
|
|
|
collation: utf8_general_ci
|
|
|
|
login_host: "{{ asterisk_db_host }}"
|
|
|
|
state: present
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Prevent /etc/asterisk/freepbx_chown.conf take over of /var/lib/php/sessions
|
2019-01-20 08:09:52 +00:00
|
|
|
blockinfile:
|
|
|
|
content: |
|
|
|
|
[blacklist]
|
|
|
|
directory = /var/lib/php/sessions
|
|
|
|
marker: "; {mark} ANSIBLE MANAGED BLOCK"
|
|
|
|
dest: /etc/asterisk/freepbx_chown.conf
|
|
|
|
owner: asterisk
|
|
|
|
group: asterisk
|
|
|
|
create: yes
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Create new php sessions dir /var/lib/php/asterisk_sessions/
|
2021-08-03 04:40:38 +00:00
|
|
|
file:
|
|
|
|
path: /var/lib/php/asterisk_sessions/
|
2019-01-20 12:45:22 +00:00
|
|
|
state: directory
|
|
|
|
|
2021-08-04 09:34:19 +00:00
|
|
|
- name: FreePBX - Set ownership for new php sessions dir (asterisk:asterisk)
|
2021-08-03 04:40:38 +00:00
|
|
|
file:
|
|
|
|
dest: /var/lib/php/asterisk_sessions/
|
|
|
|
owner: asterisk
|
2019-01-20 12:45:22 +00:00
|
|
|
group: asterisk
|
|
|
|
recurse: yes
|
2021-08-03 04:40:38 +00:00
|
|
|
|
2020-08-24 05:25:56 +00:00
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
- name: FreePBX - 2-stage install (just run once) - CAN TAKE 12 MIN OR LONGER!
|
|
|
|
command: "{{ item }}"
|
2019-01-17 10:32:58 +00:00
|
|
|
args:
|
2019-01-17 11:55:03 +00:00
|
|
|
chdir: "{{ freepbx_src_dir }}"
|
2019-01-18 08:03:01 +00:00
|
|
|
creates: "{{ freepbx_install_dir }}"
|
2021-08-04 13:49:54 +00:00
|
|
|
with_items:
|
|
|
|
- ./start_asterisk start
|
|
|
|
- ./install -n --webroot {{ freepbx_install_dir }} --dbuser {{ asterisk_db_user }} --dbpass {{ asterisk_db_password }} --dbname {{ asterisk_db_dbname }} --cdrdbname {{ asterisk_db_cdrdbname }}
|
2019-01-17 10:32:58 +00:00
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
# 2021-08-04: FreePBX 16 no longer needs this FreePBX 15 patch
|
2021-08-04 09:08:10 +00:00
|
|
|
# - name: FreePBX - Patch FreePBX source - disable get_magic_quotes_gpc()
|
|
|
|
# patch:
|
|
|
|
# src: roles/pbx/templates/pbx2.patch
|
|
|
|
# dest: "{{ freepbx_install_dir }}/admin/libraries/view.functions.php"
|
2020-08-24 19:19:04 +00:00
|
|
|
|
2021-08-03 04:40:38 +00:00
|
|
|
- name: FreePBX - Install /etc/odbc.ini from template (root:root, 0644 by default)
|
2019-01-17 11:55:03 +00:00
|
|
|
template:
|
2019-01-18 07:25:34 +00:00
|
|
|
src: odbc.ini.j2
|
|
|
|
dest: /etc/odbc.ini
|
2019-01-18 08:03:01 +00:00
|
|
|
|
2021-08-04 13:49:54 +00:00
|
|
|
- name: FreePBX - Install /etc/systemd/system/freepbx.service systemd unit file from template (root:root, 0644 by default)
|
|
|
|
template:
|
|
|
|
src: freepbx.service.j2
|
|
|
|
dest: /etc/systemd/system/freepbx.service
|
|
|
|
|
|
|
|
|
2021-08-03 04:40:38 +00:00
|
|
|
- name: FreePBX - Install /etc/apache2/sites-available/freepbx.conf from template ({{ apache_user }}:{{ apache_user }}, 0644 by default)
|
2019-01-18 08:03:01 +00:00
|
|
|
template:
|
|
|
|
src: freepbx.conf.j2
|
|
|
|
dest: /etc/apache2/sites-available/freepbx.conf
|
2021-08-04 13:49:54 +00:00
|
|
|
owner: "{{ apache_user }}" # www-data
|
2020-08-24 05:04:22 +00:00
|
|
|
group: "{{ apache_user }}"
|
2019-01-18 08:03:01 +00:00
|
|
|
|
2021-08-03 04:40:38 +00:00
|
|
|
- name: FreePBX - Add directive "Listen {{ pbx_http_port }}" to /etc/apache2/ports.conf
|
2019-06-20 04:30:55 +00:00
|
|
|
lineinfile:
|
|
|
|
path: /etc/apache2/ports.conf
|
2019-06-23 04:29:33 +00:00
|
|
|
line: "Listen {{ pbx_http_port }}"
|
2021-08-04 09:08:10 +00:00
|
|
|
# insertafter: Listen 80
|