Make use of roles in the it_tests ansible playbook

This commit is contained in:
ionutboangiu
2023-05-15 20:28:05 +03:00
committed by Dan Christian Bogos
parent f523cb444a
commit f45d33a70b
7 changed files with 12 additions and 324 deletions

View File

@@ -1,19 +0,0 @@
# Ansible for CGRateS integration tests
Steps for running this ansible:
1. Configure a debian based virtual machine so you can connect to it without needing the password
2. Edit your ansible host file with the IP and the user of the machine like so:
```
[all]
local ansible_host=192.168.56.203 ansible_ssh_user=trial97
[all:vars]
user=trial97
```
3. Run the ansible:
```
ansible-playbook main.yaml
```
4. Done!

View File

@@ -1,13 +0,0 @@
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User={{ kafka_user }}
ExecStart=/bin/sh -c '/home/{{ kafka_user }}/kafka/bin/kafka-server-start.sh /home/{{ kafka_user }}/kafka/config/server.properties > /home/{{ kafka_user }}/kafka/kafka.log 2>&1'
ExecStop=/home/{{ kafka_user }}/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

View File

@@ -1,81 +0,0 @@
---
- name: Ensure group "kafka" exists
become: yes
group:
name: "{{ kafka_user }}"
state: present
- name: Add the user 'kafka'
become: yes
user:
name: "{{ kafka_user }}"
# password: "{{ kafka_user_password }}"
groups: "sudo,{{ kafka_user }}"
- name: Install the java
become: yes
apt:
name: default-jdk
- name: Ensure download folder
become: yes
file:
state: directory
mode: 'u=rwx,go=rx'
owner: "{{ kafka_user }}"
group: "{{ kafka_user }}"
path: "{{ kafka_download_folder }}"
- name: Fetch kafka binary package
become: yes
get_url:
dest: "{{ kafka_download_folder }}/{{ kafka_base_name }}.tgz"
url: "{{ kafka_url }}"
- name: Uncompress the kafka tar
become: yes
unarchive:
copy: no
creates: "/home/{{ kafka_user }}/{{ kafka_base_name }}"
dest: "{{ kafka_install_folder }}"
src: "{{ kafka_download_folder }}/{{ kafka_base_name }}.tgz"
mode: 'u=rwx,go=rx'
owner: "{{ kafka_user }}"
group: "{{ kafka_user }}"
- name: Link kafka to the right version
become: yes
file:
path: "{{ kafka_install_folder }}/kafka"
src: "{{ kafka_install_folder }}/{{ kafka_base_name }}"
owner: "{{ kafka_user }}"
group: "{{ kafka_user }}"
state: link
- name: Add Zookeeper SystemD script
become: yes
template:
dest: /etc/systemd/system/zookeeper.service
mode: u+rw,g+rw,o+r
src: zookeeper.service.j2
- name: Add Kafka SystemD script
become: yes
template:
dest: /etc/systemd/system/kafka.service
mode: u+rw,g+rw,o+r
src: kafka.service.j2
- name: Ensure Kafka is enabled for SystemD
become: yes
systemd:
daemon_reload: yes
name: kafka
enabled: yes
- name: Ensure Kafka is running
become: yes
service:
enabled: yes
name: kafka
state: started

View File

@@ -1,145 +1,22 @@
---
- hosts: local
vars:
###############################################################
###################### Kafka Vars #############################
###############################################################
kafka_apache_mirror: https://archive.apache.org/dist/
kafka_user: kafka
kafka_version_kafka: 2.1.0
kafka_version_scala: 2.11
kafka_base_name: "kafka_{{ kafka_version_scala }}-{{ kafka_version_kafka }}"
kafka_url: "{{ kafka_apache_mirror }}/kafka/{{ kafka_version_kafka }}/{{ kafka_base_name }}.tgz"
kafka_download_folder: "/home/{{ kafka_user }}/Downloads"
kafka_install_folder: "/home/{{ kafka_user }}"
# kafka_user_password: "123456y"
###############################################################
# CGRateS location
cgrates_dir: "/home/{{ user }}/go/src/github.com/cgrates/cgrates"
###############################################################
remote_user: root
tasks:
- name: Install RabbitMQ
import_role:
name: ../roles/install_rabbitmq
###########################################################################################################################
- name: Install Kafka
import_role:
name: ../roles/install_kafka
###########################################################################################################################
# install dependencies
- name: Install build-essential
become: yes
apt:
name: build-essential
state: present
- name: Install MongoDB
import_role:
name: ../roles/install_mongodb
- name: Install the git
become: yes
apt:
name: git
- name: Install the redis
become: yes
apt:
name: redis-server
- name: Install the mysql
become: yes
apt:
name: mariadb-server
- name: Install the postgresql
become: yes
apt:
name: postgresql
- name: Install the postgresql-contrib
become: yes
apt:
name: postgresql-contrib
###########################################################################################################################
- name: Install mongo
include: mongo.yaml
- name: Install kafka
include: kafka.yaml
- name: Install rabbitmq
include: rabbitmq.yaml
###########################################################################################################################
###########################################################################################################################
- name: Install Go
import_role:
name: ../roles/install_go
###########################################################################################################################
###########################################################################################################################
# install cgrates
- name: create cgrates directory
file:
state: directory
mode: 'u=rwx,go=rx'
owner: "{{ user }}"
group: "{{ user }}"
dest: '{{ cgrates_dir }}'
become_user: "{{ user }}"
- name: git clone cgrates
git:
repo: https://github.com/cgrates/cgrates.git
dest: '{{ cgrates_dir }}'
become: yes
become_user: "{{ user }}"
- name: build cgrates
command: 'sh {{ cgrates_dir }}/build.sh'
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
args:
chdir: '{{ cgrates_dir }}'
- name: symbol link
become: yes
file:
src: "{{ cgrates_dir }}/data"
dest: "/usr/share/cgrates"
state: link
###########################################################################################################################
###########################################################################################################################
# post install
- name: post install mysql
become: yes
command: 'sh {{ cgrates_dir }}/data/storage/mysql/setup_cgr_db.sh root CGRateS.org localhost'
args:
chdir: '{{ cgrates_dir }}/data/storage/mysql/'
- name: post install for ers mysql
become: yes
command: 'sh {{ cgrates_dir }}/data/storage/mysql/setup_ers_db.sh root CGRateS.org localhost'
args:
chdir: '{{ cgrates_dir }}/data/storage/mysql/'
- name: post install postgres2
become: yes
command: 'sh {{ cgrates_dir }}/data/storage/postgres/create_db_with_users.sh'
args:
chdir: '{{ cgrates_dir }}/data/storage/postgres/'
- name: post install for ers postgres
become: yes
command: 'sh {{ cgrates_dir }}/data/storage/postgres/create_ers_db.sh'
args:
chdir: '{{ cgrates_dir }}/data/storage/postgres/'
- name: post install mongo
become: yes
command: 'sh {{ cgrates_dir }}/data/storage/mongo/setup_cgr_db.sh'
args:
chdir: '{{ cgrates_dir }}/data/storage/mongo/'
- name: set versions
command: 'cgr-migrator -exec=*set_versions -config_path=/usr/share/cgrates/conf/samples/tutmysql'
environment:
PATH: "{{ lookup('env','PATH') }}:/home/{{ user }}/go/bin:/usr/local/go/bin:{{ ansible_env.PATH }}"
- name: Install and configure CGRateS
import_role:
name: ../roles/install_cgrates

View File

@@ -1,27 +0,0 @@
---
- name: Add an apt key for MongoDB
become: yes
apt_key:
url: https://www.mongodb.org/static/pgp/server-4.4.asc
state: present
- name: Add apt repository for MongoDB
become: yes
apt_repository:
repo: "deb http://repo.mongodb.org/apt/debian {{ ansible_distribution_release }}/mongodb-org/4.4 main"
filename: mongodb-org-4.4
update_cache: yes
- name: Install MongoDB
become: yes
apt:
name: "mongodb-org"
state: present
- name: Enable mongod service and ensure it is not masked
become: yes
systemd:
name: mongod
state: started
enabled: yes
masked: no

View File

@@ -1,36 +0,0 @@
---
- name: Add an apt key by id for rabbitmq
become: yes
apt_key:
url: "{{ item }}"
state: present
with_items:
- https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
- https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
- https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key
- name: Install the apt-transport-https
become: yes
apt:
name: apt-transport-https
- name: Add apt repository for erlang
become: yes
apt_repository:
repo: "deb https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian {{ ansible_distribution_release }} main"
filename: rabbitmq_erlang
update_cache: no
- name: Add apt repository for rabbitmq
become: yes
apt_repository:
repo: "deb https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian {{ ansible_distribution_release }} main"
filename: rabbitmq_main
update_cache: yes
- name: Install RabbitMQ
become: yes
apt:
name: "rabbitmq-server"
state: present

View File

@@ -1,13 +0,0 @@
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User={{ kafka_user }}
ExecStart=/home/{{ kafka_user }}/kafka/bin/zookeeper-server-start.sh /home/{{ kafka_user }}/kafka/config/zookeeper.properties
ExecStop=/home/{{ kafka_user }}/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target