1+ ---
2+
3+ - hosts : all
4+ become : true
5+ become_method : sudo
6+ vars :
7+ modb_version : " {{ lookup('vars', 'extra_modb_version', default=lookup('env','MODB_VERSION') | default('4.4', true) ) }}"
8+ modb_tarball : " {{ lookup('vars', 'extra_modb_tarball', default=lookup('env','MODB_TARBALL') | default('', true) ) }}"
9+ modb_setup : " {{ lookup('vars', 'extra_modb_setup', default=lookup('env','MODB_SETUP') | default('pss', true) ) }}"
10+ modb_container : " {{ lookup('vars', 'extra_modb_container', default=lookup('env','MODB_CONTAINER') | default('MODB', true) ) }}"
11+ pmm_server_ip : " {{ lookup('vars', 'extra_pmm_server_ip', default=lookup('env','PMM_SERVER_IP') | default('127.0.0.1', true) ) }}"
12+ client_version : " {{ lookup('vars', 'extra_client_version', default=lookup('env','CLIENT_VERSION') | default('dev-latest', true) ) }}"
13+ admin_password : " {{ lookup('vars', 'extra_admin_password', default=lookup('env','ADMIN_PASSWORD') | default('admin', true) ) }}"
14+ pmm_qa_branch : " {{ lookup('vars', 'extra_pmm_qa_branch', default=lookup('env','PMM_QA_GIT_BRANCH') | default('v3', true) ) }}"
15+
16+ tasks :
17+ - name : cleanup container for client and DB setup
18+ shell : >
19+ docker ps -a --filter "name={{ modb_container }}" | grep -q . && docker stop {{ modb_container }} && docker rm -fv {{ modb_container }}
20+ ignore_errors : true
21+ tags :
22+ - cleanup
23+
24+ - name : Create pmm-qa network if not exist
25+ shell : docker network create pmm-qa
26+ ignore_errors : true
27+
28+ - name : Prepare Container for modb
29+ shell : >
30+ docker run -d --name={{ modb_container }}
31+ -p 27017:27017
32+ phusion/baseimage:focal-1.2.0
33+
34+ - name : Copy all required Artifacts to the docker modb_container
35+ shell : " {{ item }}"
36+ with_items :
37+ - docker cp ./mlaunch_modb_setup.sh {{ modb_container }}:/
38+ - docker cp ./pmm3-client-setup.sh {{ modb_container }}:/
39+ - docker exec {{ modb_container }} apt-get update
40+ - docker exec {{ modb_container }} apt-get -y install wget curl git gnupg2 lsb-release jq python3 pip
41+
42+ - name : Install required software's to the docker modb_container
43+ shell : " {{ item }}"
44+ with_items :
45+ - docker exec {{ modb_container }} python3 -m pip install --upgrade pip
46+ - docker exec {{ modb_container }} pip3 install 'mtools[all]'
47+
48+ - name : Install pmm2-client on the modb_container
49+ shell : " {{ item }}"
50+ with_items :
51+ - docker network connect pmm-qa {{ modb_container }}
52+ - docker exec {{ modb_container }} bash -x ./pmm3-client-setup.sh --pmm_server_ip {{ pmm_server_ip }} --client_version {{ client_version }} --admin_password {{ admin_password }} --use_metrics_mode no
53+
54+ - name : Setup modb for monitoring
55+ shell : " {{ item }}"
56+ with_items :
57+ - docker exec {{ modb_container }} bash -x ./mlaunch_modb_setup.sh --mongodb_version {{ modb_version }} --mongodb_setup {{ modb_setup }} > setup_modb_{{ modb_version }}_{{ modb_setup }}.log
58+
59+ - name : Setup Load Running Docker Container
60+ shell : " {{ item }}"
61+ with_items :
62+ - rm -rf ~/modb_{{ modb_version }} || true; mkdir -p ~/modb_{{ modb_version }}
63+ - wget -P ~/modb_{{ modb_version }}/ "https://raw.githubusercontent.com/Percona-Lab/qa-integration/{{pmm_qa_branch}}/pmm_qa/Dockerfile"
64+ - wget -P ~/modb_{{ modb_version }}/ "https://raw.githubusercontent.com/Percona-Lab/qa-integration/{{pmm_qa_branch}}/pmm_qa/mongodb_query.php"
65+ - docker build --tag php-db ~/modb_{{ modb_version }}/ > ~/docker-build_mongodb_load_{{ modb_version }}_{{ modb_setup }}.log || true
66+ - docker rm mongodb_load_{{ modb_version }}_{{ modb_setup }} || true
67+ - docker run --rm --name mongodb_load_{{ modb_version }}_{{ modb_setup }} --network=pmm-qa -v $(pwd):/usr/src/myapp -w /usr/src/myapp php-db composer require mongodb/mongodb || true
68+
69+ - name : Run load on Replica Set Master(PSS)
70+ shell : " {{ item }}"
71+ with_items :
72+ - docker run --name mongodb_load_{{ modb_version }}_{{ modb_setup }} -d -e MONGODB_HOST={{ modb_container }} -e MONGODB_PORT=27017 -e TEST_TARGET_QPS=10 -e TEST_COLLECTION=10 -e TEST_DB=30 --network=pmm-qa -v $(pwd):/usr/src/myapp -w /usr/src/myapp php-db php mongodb_query.php >> setup_modb_{{ modb_version }}_{{ modb_setup }}.log
73+ when : modb_setup == "pss"
74+
75+ - name : Run load on Replica Set Master(PSA)
76+ shell : " {{ item }}"
77+ with_items :
78+ - docker run --name mongodb_load_{{ modb_version }}_{{ modb_setup }} -d -e MONGODB_HOST={{ modb_container }} -e MONGODB_PORT=27017 -e TEST_TARGET_QPS=10 -e TEST_COLLECTION=10 -e TEST_DB=30 --network=pmm-qa -v $(pwd):/usr/src/myapp -w /usr/src/myapp php-db php mongodb_query.php >> setup_modb_{{ modb_version }}_{{ modb_setup }}.log
79+ when : modb_setup == "psa"
80+
81+ - name : Run load on Sharded Clusters Master
82+ shell : " {{ item }}"
83+ with_items :
84+ - docker run --name mongodb_load_{{ modb_version }}_{{ modb_setup }} -d -e MONGODB_HOST={{ modb_container }} -e MONGODB_PORT=27017 -e TEST_TARGET_QPS=10 -e TEST_COLLECTION=10 -e TEST_DB=30 --network=pmm-qa -v $(pwd):/usr/src/myapp -w /usr/src/myapp php-db php mongodb_query.php >> setup_modb_{{ modb_version }}_{{ modb_setup }}.log
85+ when : modb_setup == "sharded"
0 commit comments