-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updates to Support Community Versions
- Loading branch information
1 parent
599cbf0
commit c6f4afd
Showing
5 changed files
with
241 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
#!/bin/sh | ||
|
||
while [ $# -gt 0 ]; do | ||
if [[ $1 == *"--"* ]]; then | ||
param="${1/--/}" | ||
declare $param="$2" | ||
fi | ||
shift | ||
done | ||
|
||
if [ -z "$mongodb_version" ]; then | ||
export mongodb_version=7.0 | ||
fi | ||
|
||
if [ -z "$mongdb_setup" ]; then | ||
export mongdb_setup=pss | ||
fi | ||
|
||
if [ -z "$metrics_mode" ]; then | ||
export metrics_mode=push | ||
fi | ||
|
||
# Mongo user credtials for the replicat set cluster | ||
export user="dba" | ||
export pwd="test1234" | ||
|
||
# Install the dependencies | ||
source ~/.bash_profile || true; | ||
apt-get update | ||
apt-get -y install wget curl jq git gnupg2 lsb-release | ||
apt-get -y install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison make flex libipc-run-perl | ||
sleep 10 | ||
|
||
#wget https://raw.githubusercontent.com/Percona-QA/percona-qa/master/mongo_startup.sh | ||
#chmod +x mongo_startup.sh | ||
export SERVICE_RANDOM_NUMBER=$(echo $((1 + $RANDOM % 9999))) | ||
|
||
## Detect latest tarball link for specified mongodb_version: 7.0 | 6.0 | 5.0 | 4.4 | 4.2 at the moment | ||
modb_tarball=$(curl -s "https://www.mongodb.com/try/download/community" | \ | ||
grep -oP "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-${mongodb_version//./\\.}\.\d+\.tgz" | \ | ||
sort -V | tail -n 1) | ||
|
||
echo "Downloading ${mongodb_version} from ${modb_tarball}..." | ||
wget -O percona_server_mongodb.tar.gz ${modb_tarball} | ||
tar -xvf percona_server_mongodb.tar.gz | ||
|
||
export extracted_folder_name=$(ls | grep mongodb-linux) | ||
echo "Extracted folder name ${extracted_folder_name}" | ||
mv ${extracted_folder_name} modb_${mongodb_version} | ||
rm percona_server_mongodb.tar.gz* | ||
|
||
# For mongodb dependency in Debian | ||
wget http://http.us.debian.org/debian/pool/main/o/openldap/libldap-2.4-2_2.4.47+dfsg-3+deb10u7_amd64.deb | ||
apt install -y ./libldap-2.4-2_2.4.47+dfsg-3+deb10u7_amd64.deb | ||
|
||
if [ "$mongodb_setup" == "pss" ]; then | ||
mlaunch init --bind_ip 0.0.0.0 --binarypath "./modb_${mongodb_version}/bin" --replicaset --name rs1 --nodes 3 | ||
sleep 20 | ||
pmm-admin remove mongodb mongodb_rs1_1_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_1_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27017 | ||
sleep 2 | ||
pmm-admin remove mongodb mongodb_rs1_2_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_2_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27018 | ||
sleep 2 | ||
pmm-admin remove mongodb mongodb_rs1_3_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_3_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27019 | ||
sleep 20 | ||
fi | ||
|
||
if [ "$mongodb_setup" == "psa" ]; then | ||
mlaunch init --bind_ip 0.0.0.0 --binarypath "./modb_${mongodb_version}/bin" --replicaset --name rs1 --nodes 2 --arbiter | ||
sleep 20 | ||
pmm-admin remove mongodb mongodb_rs1_1_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_1_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27017 | ||
sleep 2 | ||
pmm-admin remove mongodb mongodb_rs1_2_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_2_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27018 | ||
sleep 2 | ||
pmm-admin remove mongodb mongodb_rs1_3_${SERVICE_RANDOM_NUMBER} || true; pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node --metrics-mode=$metrics_mode mongodb_rs1_3_${SERVICE_RANDOM_NUMBER} --debug 127.0.0.1:27019 | ||
sleep 20 | ||
fi | ||
|
||
if [ "$mongodb_setup" == "sharded" ]; then | ||
mlaunch init --bind_ip 0.0.0.0 --binarypath "./modb_${mongodb_version}/bin" --replicaset --sharded rs1 rs2 --config 3 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --environment=mongos_shraded_node mongos_shraded_node_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27017 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=config --environment=mongodb_config_node mongodb_config_1_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27024 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=config --environment=mongodb_config_node mongodb_config_2_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27025 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=config --environment=mongodb_config_node mongodb_config_3_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27026 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node mongodb_rs1_1_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27018 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node mongodb_rs1_2_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27019 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs1 --environment=mongodb_rs_node mongodb_rs1_3_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27020 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs2 --environment=mongodb_rs_node mongodb_rs2_1_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27021 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs2 --environment=mongodb_rs_node mongodb_rs2_2_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27022 | ||
sleep 2 | ||
pmm-admin add mongodb --enable-all-collectors --cluster mongodb_node_cluster --replication-set=rs2 --environment=mongodb_rs_node mongodb_rs2_3_${SERVICE_RANDOM_NUMBER} --metrics-mode=$metrics_mode --debug 127.0.0.1:27023 | ||
sleep 20 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
--- | ||
|
||
- hosts: all | ||
become: true | ||
become_method: sudo | ||
vars: | ||
modb_version: "{{ lookup('vars', 'extra_modb_version', default=lookup('env','MODB_VERSION') | default('4.4', true) ) }}" | ||
modb_tarball: "{{ lookup('vars', 'extra_modb_tarball', default=lookup('env','MODB_TARBALL') | default('', true) ) }}" | ||
modb_setup: "{{ lookup('vars', 'extra_modb_setup', default=lookup('env','MODB_SETUP') | default('pss', true) ) }}" | ||
modb_container: "{{ lookup('vars', 'extra_modb_container', default=lookup('env','MODB_CONTAINER') | default('MODB', true) ) }}" | ||
pmm_server_ip: "{{ lookup('vars', 'extra_pmm_server_ip', default=lookup('env','PMM_SERVER_IP') | default('127.0.0.1', true) ) }}" | ||
client_version: "{{ lookup('vars', 'extra_client_version', default=lookup('env','CLIENT_VERSION') | default('dev-latest', true) ) }}" | ||
admin_password: "{{ lookup('vars', 'extra_admin_password', default=lookup('env','ADMIN_PASSWORD') | default('admin', true) ) }}" | ||
pmm_qa_branch: "{{ lookup('vars', 'extra_pmm_qa_branch', default=lookup('env','PMM_QA_GIT_BRANCH') | default('main', true) ) }}" | ||
|
||
tasks: | ||
- name: cleanup container for client and DB setup | ||
shell: > | ||
docker ps -a --filter "name={{ modb_container }}" | grep -q . && docker stop {{ modb_container }} && docker rm -fv {{ modb_container }} | ||
ignore_errors: true | ||
tags: | ||
- cleanup | ||
|
||
- name: Create pmm-qa network if not exist | ||
shell: docker network create pmm-qa | ||
ignore_errors: true | ||
|
||
- name: Prepare Container for modb | ||
shell: > | ||
docker run -d --name={{ modb_container }} | ||
-p 27017:27017 | ||
phusion/baseimage:focal-1.2.0 | ||
- name: Copy all required Artifacts to the docker modb_container | ||
shell: "{{ item }}" | ||
with_items: | ||
- docker cp ./mlaunch_modb_setup.sh {{ modb_container }}:/ | ||
- docker cp ./pmm3-client-setup.sh {{ modb_container }}:/ | ||
- docker exec {{ modb_container }} apt-get update | ||
- docker exec {{ modb_container }} apt-get -y install wget curl git gnupg2 lsb-release jq python3 pip | ||
|
||
- name: Install required software's to the docker modb_container | ||
shell: "{{ item }}" | ||
with_items: | ||
- docker exec {{ modb_container }} python3 -m pip install --upgrade pip | ||
- docker exec {{ modb_container }} pip3 install 'mtools[all]' | ||
|
||
- name: Install pmm2-client on the modb_container | ||
shell: "{{ item }}" | ||
with_items: | ||
- docker network connect pmm-qa {{ modb_container }} | ||
- 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 | ||
|
||
- name: Setup modb for monitoring | ||
shell: "{{ item }}" | ||
with_items: | ||
- 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 | ||
|
||
- name: Setup Load Running Docker Container | ||
shell: "{{ item }}" | ||
with_items: | ||
- rm -rf ~/modb_{{ modb_version }} || true; mkdir -p ~/modb_{{ modb_version }} | ||
- wget -P ~/modb_{{ modb_version }}/ "https://raw.githubusercontent.com/Percona-Lab/qa-integration/pmm3-mongo-mlaunch/pmm_qa/Dockerfile" | ||
- wget -P ~/modb_{{ modb_version }}/ "https://raw.githubusercontent.com/Percona-Lab/qa-integration/pmm3-mongo-mlaunch/pmm_qa/mongodb_query.php" | ||
- docker build --tag php-db ~/modb_{{ modb_version }}/ > ~/docker-build_mongodb_load_{{ modb_version }}_{{ modb_setup }}.log || true | ||
- docker rm mongodb_load_{{ modb_version }}_{{ modb_setup }} || true | ||
- 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 | ||
|
||
- name: Run load on Replica Set Master(PSS) | ||
shell: "{{ item }}" | ||
with_items: | ||
- 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 | ||
when: modb_setup == "pss" | ||
|
||
- name: Run load on Replica Set Master(PSA) | ||
shell: "{{ item }}" | ||
with_items: | ||
- 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 | ||
when: modb_setup == "psa" | ||
|
||
- name: Run load on Sharded Clusters Master | ||
shell: "{{ item }}" | ||
with_items: | ||
- 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 | ||
when: modb_setup == "sharded" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters