Revise cgrates setup ansible role

- allows skipping symlink creation
- symlink binary destinations can be configured
- renamed git_version -> cgrates_branch. This also makes sure
  cgrates_branch variable is being set directly from the role
  and there's no need to configure it in the playbook.
- fixed some linter warnings and slightly improved formatting
This commit is contained in:
ionutboangiu
2024-11-21 17:48:49 +02:00
committed by Dan Christian Bogos
parent d5aa567e98
commit a68880a774
4 changed files with 55 additions and 51 deletions

View File

@@ -55,7 +55,7 @@ jobs:
- name: Run Ansible Playbook
run: |
ansible-playbook data/ansible/integration_tests/main.yaml -i localhost, -c local -e "ansible_user=$(whoami) cgrates_dir=$GITHUB_WORKSPACE clone_repository=false install_go=false"
ansible-playbook data/ansible/integration_tests/main.yaml -i localhost, -c local -e "ansible_user=$(whoami) cgrates_dir=$GITHUB_WORKSPACE cgrates_clone_repo=false install_go=false"
# - name: Set up tmate session for debugging
# uses: mxschmitt/action-tmate@v3

View File

@@ -75,7 +75,6 @@
# - role: ../../roles/cgrates
# vars:
# # To avoid tasks/dependencies we don't need.
# cgrates_migrator_cfg_path:
# cgrates_dbs:
# cgrates_dependencies:
# - git

View File

@@ -1,16 +1,19 @@
---
golang_gopath: '/home/{{ ansible_user }}/go'
clone_repository: true
cgrates_dir: '{{ golang_gopath }}/src/github.com/cgrates/cgrates'
golang_gopath: "/home/{{ ansible_user }}/go"
golang_install_dir: /usr/local/go
git_version: master
cgrates_migrator_cfg_path: /usr/share/cgrates/conf/samples/tutmysql # leave empty to do nothing
cgrates_clone_repo: true
cgrates_dir: "{{ golang_gopath }}/src/github.com/cgrates/cgrates"
cgrates_branch: master
# Leave empty to skip creating symlinks
cgrates_data_path: "/usr/share/cgrates"
cgrates_bin_path: "/usr/bin"
cgrates_dbs:
- mysql
- postgres
- mongo
# CGRateS dependencies
cgrates_dependencies:
- git
- redis-server

View File

@@ -2,68 +2,70 @@
- name: Install CGRateS dependencies
become: true
ansible.builtin.package:
name: '{{ cgrates_dependencies }}'
name: "{{ cgrates_dependencies }}"
state: present
update_cache: yes
update_cache: true
- name: Create cgrates directory
ansible.builtin.file:
state: directory
mode: u=rwx,go=rx
owner: '{{ ansible_user }}'
dest: '{{ cgrates_dir }}'
when: clone_repository | bool
owner: "{{ ansible_user }}"
dest: "{{ cgrates_dir }}"
when: cgrates_clone_repo | bool
- name: Git clone cgrates
ansible.builtin.git:
repo: https://github.com/cgrates/cgrates.git
dest: '{{ cgrates_dir }}'
update: yes
force: yes
version: '{{ git_version }}'
when: clone_repository | bool
dest: "{{ cgrates_dir }}"
update: true
force: true
version: "{{ cgrates_branch }}"
when: cgrates_clone_repo | bool
- name: Build cgrates
ansible.builtin.shell:
cmd: bash -lc "sh {{ cgrates_dir }}/build.sh"
args:
chdir: '{{ cgrates_dir }}'
become_user: '{{ ansible_user }}'
- name: Install cgrates binaries
ansible.builtin.command:
cmd: bash -c './build.sh'
chdir: "{{ cgrates_dir }}"
environment:
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
- name: Create symbolic links
- name: Create cgrates data folder symlink
ansible.builtin.file:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
src: "{{ cgrates_dir }}/data"
dest: "{{ cgrates_data_path }}"
state: link
become: true
when: cgrates_data_path | length > 0
- name: Create cgrates binary symlinks
ansible.builtin.file:
src: "{{ golang_gopath }}/bin/{{ item }}"
dest: "{{ cgrates_bin_path }}/{{ item }}"
state: link
become: true
when: cgrates_bin_path | length > 0
loop:
- { src: '{{ cgrates_dir }}/data', dest: /usr/share/cgrates }
- { src: '{{ golang_gopath }}/bin/cgr-engine', dest: /usr/bin/cgr-engine }
- { src: '{{ golang_gopath }}/bin/cgr-loader', dest: /usr/bin/cgr-loader }
- {
src: '{{ golang_gopath }}/bin/cgr-migrator',
dest: /usr/bin/cgr-migrator,
}
- {
src: '{{ golang_gopath }}/bin/cgr-console',
dest: /usr/bin/cgr-console,
}
- { src: '{{ golang_gopath }}/bin/cgr-tester', dest: /usr/bin/cgr-tester }
- cgr-engine
- cgr-loader
- cgr-migrator
- cgr-console
- cgr-tester
- name: Run post install scripts
become: true
ansible.builtin.command:
cmd: '{{ item.cmd }}'
chdir: '{{ cgrates_dir }}/data/storage/{{ item.db }}'
cmd: "{{ item.cmd }}"
chdir: "{{ cgrates_dir }}/data/storage/{{ item.db }}"
when: item.db in cgrates_dbs
loop:
- { db: mysql, cmd: sh setup_ers_db.sh root CGRateS.org localhost }
- { db: mysql, cmd: sh setup_cgr_db.sh root CGRateS.org localhost }
- { db: postgres, cmd: sh create_db_with_users.sh }
- { db: postgres, cmd: sh create_ers_db.sh }
- { db: mongo, cmd: sh setup_cgr_db.sh }
- name: Set versions
ansible.builtin.command:
cmd: 'cgr-migrator -exec=*set_versions -config_path={{ cgrates_migrator_cfg_path }}'
when: cgrates_migrator_cfg_path != ""
- db: mysql
cmd: sh setup_ers_db.sh root CGRateS.org localhost
- db: mysql
cmd: sh setup_cgr_db.sh root CGRateS.org localhost
- db: postgres
cmd: sh create_db_with_users.sh
- db: postgres
cmd: sh create_ers_db.sh
- db: mongo
cmd: sh setup_cgr_db.sh