Implement opensips ansible role

This commit is contained in:
ionutboangiu
2024-05-01 16:41:44 +03:00
committed by Dan Christian Bogos
parent b690f11db7
commit 16c61eeb9d
2 changed files with 107 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
---
opensips_version: '3.4'
opensips_release_type: 'releases' # 'releases' or 'nightly'
opensips_service_enabled: false
opensips_service_state: 'stopped'
opensips_cfg_path: '' # path to a custom cfg file to replace the default one (do nothing if empty)
opensips_dict_path: '' # add file found at specified path to /etc/opensips
opensips_modules:
- opensips-cgrates-module
# - opensips-auth-modules
# - opensips-diameter-module
# - opensips-json-module
# - opensips-mysql-module
opensips_cfg_replacements: []
# - { before: 'regex_pattern1', after: 'replacement1' }
# - { before: 'regex_pattern2', after: 'replacement2' }
opensips_dependencies: []
# - mariadb-server

View File

@@ -0,0 +1,89 @@
---
- name: Install dependencies
become: true
apt:
name: '{{ opensips_dependencies }}'
state: present
update_cache: yes
- name: Import OpenSIPS GPG key
become: true
ansible.builtin.get_url:
url: https://apt.opensips.org/opensips-org.gpg
dest: /usr/share/keyrings/opensips-org.gpg
mode: '0644'
- name: Configure OpenSIPS APT repository
become: true
ansible.builtin.copy:
content: "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org {{ ansible_distribution_release }} {{ opensips_version }}-{{ opensips_release_type }}\n"
dest: /etc/apt/sources.list.d/opensips.list
owner: root
group: root
mode: '0644'
- name: Configure OpenSIPS CLI APT repository
become: true
ansible.builtin.copy:
content: "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org {{ ansible_distribution_release }} cli-nightly\n"
dest: /etc/apt/sources.list.d/opensips-cli.list
owner: root
group: root
mode: '0644'
- name: Update APT cache
become: true
ansible.builtin.apt:
update_cache: yes
- name: Install OpenSIPS and OpenSIPS CLI
become: true
ansible.builtin.apt:
name:
- opensips
- opensips-cli
state: present
- name: Install additional OpenSIPS modules
become: true
ansible.builtin.apt:
name: '{{ opensips_modules }}'
state: present
- name: Replace default OpenSIPS configuration if custom path provided
become: true
ansible.builtin.copy:
src: '{{ opensips_cfg_path }}'
dest: '/etc/opensips/opensips.cfg'
owner: root
group: root
remote_src: yes
mode: '0644'
when: opensips_cfg_path != ""
- name: Copy OpenSIPS dictionary file from specified path (if any)
become: true
ansible.builtin.copy:
src: '{{ opensips_dict_path }}'
dest: '/etc/opensips/dictionary.opensips'
owner: root
group: root
remote_src: yes
mode: '0644'
when: opensips_dict_path != ""
- name: Replace lines in OpenSIPS config with specified rules
become: true
ansible.builtin.lineinfile:
path: /etc/opensips/opensips.cfg
regexp: '{{ item.before }}'
line: '{{ item.after }}'
backrefs: true
loop: '{{ opensips_cfg_replacements }}'
- name: Ensure OpenSIPS service is in the desired state
become: true
ansible.builtin.systemd:
name: opensips
enabled: '{{ opensips_service_enabled }}'
state: '{{ opensips_service_state }}'