From 9b3120db2f04d2bd95c74fa1a48b59dfe88ca7e6 Mon Sep 17 00:00:00 2001 From: aniketgohelimp Date: Wed, 5 Jun 2024 13:49:14 +0530 Subject: [PATCH] updated script file --- .env | 18 --- rootfs/{proxysql.conf => etc/proxysql.cnf} | 0 rootfs/etc/s6-overlay/s6-rc.d/templating/run | 150 +++++++------------ rootfs/proxysql copy.conf | 68 --------- run | 57 ------- 5 files changed, 54 insertions(+), 239 deletions(-) delete mode 100644 .env rename rootfs/{proxysql.conf => etc/proxysql.cnf} (100%) delete mode 100644 rootfs/proxysql copy.conf delete mode 100755 run diff --git a/.env b/.env deleted file mode 100644 index 0fd5ce2..0000000 --- a/.env +++ /dev/null @@ -1,18 +0,0 @@ -ADMIN_USERNAME=admin -ADMIN_PASSWORD=adminpass -SERVER_VERSION=9.0.3 -ADMINPORT=123123 -DBPORT=123123 -MONITOR_USERNAME=123123 -MONITOR_PASSWORD=123123 - - -PROXYSQL_SERVERS=123123 -PROXYSQL_SERVERS=123123 -MYSQL_SERVERS=lcoalhost;1230,lcoalhost;1234,lcoalhost;1332 -MYSQL_USERS=123123 - - -MYSQL_GALERA_HOSTGROUPS=123123 -MYSQL_REPLICATION_HOSTGROUPS=123123 -MYSQL_QUERY_RULES=^SELECT .* FOR UPDATE$;1;1;1,^SELECT;1;0;1,^CREATE;11;1;0 \ No newline at end of file diff --git a/rootfs/proxysql.conf b/rootfs/etc/proxysql.cnf similarity index 100% rename from rootfs/proxysql.conf rename to rootfs/etc/proxysql.cnf diff --git a/rootfs/etc/s6-overlay/s6-rc.d/templating/run b/rootfs/etc/s6-overlay/s6-rc.d/templating/run index 2cb7690..1ee9b97 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/templating/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/templating/run @@ -1,65 +1,72 @@ #!/command/with-contenv bash -# FILENAME=./rootfs/proxysql.conf -# COUNT=($(grep -o "ENV\.[A-Z_]*" $FILENAME )) -# COUNT=($(grep -o "ENV\.[A-Z_]*" /proxysql.conf )) -# cp /proxysql.conf /proxysql.conf.tpl -# NEWFILENAME=/proxysql.conf.tpl -# touch /proxysql.conf.tpl -# for ENV in ${COUNT[@]}; do -# # echo $ENV; -# key=$(echo $ENV | sed "s/ENV.//g") -# val=$(echo ${!key}) -# sed -i "s/$ENV/$val/g" "$NEWFILENAME" -# done - -### ADMIN related thing -env_name=(ADMIN_USERNAME ADMIN_PASSWORD) + if [ -n "$ADMIN_USERNAME" ] && [ -n "$ADMIN_PASSWORD" ]; then -sed -i "s/cluster_username=/cluster_username=\"$ADMIN_USERNAME\"/g" /proxysql.conf -sed -i "s/cluster_password=/cluster_password=\"$ADMIN_PASSWORD\"/g" /proxysql.conf -sed -i "s/admin_credentials=/admin_credentials=\"$ADMIN_USERNAME:$ADMIN_PASSWORD\"/g" /proxysql.conf -sed -i "s/stats_credentials=/stats_credentials=\"$ADMIN_USERNAME:$ADMIN_PASSWORD\"/g" /proxysql.conf +sed -i "s/cluster_username=/cluster_username=\"$ADMIN_USERNAME\"/g" /etc/proxysql.cnf +sed -i "s/cluster_password=/cluster_password=\"$ADMIN_PASSWORD\"/g" /etc/proxysql.cnf +sed -i "s/admin_credentials=/admin_credentials=\"$ADMIN_USERNAME:$ADMIN_PASSWORD\"/g" /etc/proxysql.cnf +sed -i "s/stats_credentials=/stats_credentials=\"$ADMIN_USERNAME:$ADMIN_PASSWORD\"/g" /etc/proxysql.cnf else -sed -i "s/cluster_username=/cluster_username=\"admin\"/g" /proxysql.conf -sed -i "s/cluster_password=/cluster_password=\"admin\"/g" /proxysql.conf -sed -i "s/admin_credentials=/admin_credentials=\"admin:admin\"/g" /proxysql.conf -sed -i "s/stats_credentials=/stats_credentials=\"admin:admin\"/g" /proxysql.conf +sed -i "s/cluster_username=/cluster_username=\"admin\"/g" /etc/proxysql.cnf +sed -i "s/cluster_password=/cluster_password=\"admin\"/g" /etc/proxysql.cnf +sed -i "s/admin_credentials=/admin_credentials=\"admin:admin\"/g" /etc/proxysql.cnf +sed -i "s/stats_credentials=/stats_credentials=\"admin:admin\"/g" /etc/proxysql.cnf +fi + +if [ -n "$WEBPORT" ] ; then +sed -i "s/WEBPORT/$WEBPORT/g" /etc/proxysql.cnf +else +sed -i "s/WEBPORT/6080/g" /etc/proxysql.cnf fi if [ -n "$SERVER_VERSION" ]; then -sed -i "s/server_version=/server_version=\"$SERVER_VERSION\"/g" /proxysql.conf +sed -i "s/server_version=/server_version=\"$SERVER_VERSION\"/g" /etc/proxysql.cnf +else +sed -i "s/server_version=/server_version=\"5.0.7\"/g" /etc/proxysql.cnf fi if [ -n "$ADMINPORT" ]; then -sed -i "s/ADMINPORT/$ADMINPORT/g" /proxysql.conf +sed -i "s/ADMINPORT/$ADMINPORT/g" /etc/proxysql.cnf else -sed -i "s/ADMINPORT/6032/g" /proxysql.conf +sed -i "s/ADMINPORT/6032/g" /etc/proxysql.cnf fi if [ -n "$DBPORT" ]; then -sed -i "s/DBPORT/$DBPORT/g" /proxysql.conf +sed -i "s/DBPORT/$DBPORT/g" /etc/proxysql.cnf else -sed -i "s/DBPORT/3306/g" /proxysql.conf -## remainging proxysql_server +sed -i "s/DBPORT/3306/g" /etc/proxysql.cnf + fi if [ -n "$MONITOR_USERNAME" ] && [ -n "$MONITOR_PASSWORD" ]; then -sed -i "s/monitor_username=/monitor_username=\"$MONITOR_USERNAME\"/g" /proxysql.conf -sed -i "s/monitor_password=/monitor_password=\"$MONITOR_PASSWORD\"/g" /proxysql.conf +sed -i "s/monitor_username=/monitor_username=\"$MONITOR_USERNAME\"/g" /etc/proxysql.cnf +sed -i "s/monitor_password=/monitor_password=\"$MONITOR_PASSWORD\"/g" /etc/proxysql.cnf else -sed -i "s/monitor_username=/monitor_username=\"monitor\"/g" /proxysql.conf -sed -i "s/monitor_password=/monitor_password=\"monitor\"/g" /proxysql.conf +sed -i "s/monitor_username=/monitor_username=\"monitor\"/g" /etc/proxysql.cnf +sed -i "s/monitor_password=/monitor_password=\"monitor\"/g" /etc/proxysql.cnf fi - -# if [ -n "$PROXYSQL_SERVER" ]; then -# PROXYSQL_SERVERS_TEMPLATE="proxysql_servers: -# ( -# { hostname:"PROXYSQL_SERVER", port:$ADMINPORT, weight:0, comment:"Discovery" }, -# ) -# " -# cat $PROXYSQL_SERVERS_TEMPLATE >> /proxysql.conf -# fi +if [ -n "$ADMINPORT" ]; then +PROXYSQL_SERVERS_TEMPLATE='proxysql_servers: +( + { hostname:"PROXYSQL_SERVER", port:ADMINPORT, weight:0, comment:"Discovery" }, +) +' +else +PROXYSQL_SERVERS_TEMPLATE='proxysql_servers: +( + { hostname:"PROXYSQL_SERVER", port:6032, weight:0, comment:"Discovery" }, +) +' +fi +if [ -n "$PROXYSQL_SERVER" ]; then +PROXYSQL_SERVERS_TEMPLATE=$(echo $PROXYSQL_SERVERS_TEMPLATE | sed "s/PROXYSQL_SERVER/$PROXYSQL_SERVER/g") +PROXYSQL_SERVERS_TEMPLATE=$(echo $PROXYSQL_SERVERS_TEMPLATE | sed "s/ADMINPORT/$ADMINPORT/g") +echo $PROXYSQL_SERVERS_TEMPLATE >> /etc/proxysql.cnf +else +PROXYSQL_SERVERS_TEMPLATE=$(echo $PROXYSQL_SERVERS_TEMPLATE | sed "s/PROXYSQL_SERVER/0.0.0.0/g") +PROXYSQL_SERVERS_TEMPLATE=$(echo $PROXYSQL_SERVERS_TEMPLATE | sed "s/ADMINPORT/$ADMINPORT/g") +echo $PROXYSQL_SERVERS_TEMPLATE >> /etc/proxysql.cnf +fi if [ -n "$MYSQL_SERVERS" ]; then MYSQL_SERVERS_TEMPLATE="mysql_servers: @@ -83,7 +90,6 @@ IFS=$OIFS count=$(expr $(echo ${#values[@]}) / $(echo ${#key_values[@]}) ) for ((i = 0 ; i < ${#values[@]} ; i+=$count )); do block=$MYSQL_SERVERS_TEMPLATE_BLOCK -echo $count if [ $count == 2 ]; then block=$(echo $block | sed "s/address:[^,]*/address:\"${values[i]}\"/g") block=$(echo $block | sed "s/port:[^,]*/port:${values[i+1]}/g") @@ -123,11 +129,9 @@ MYSQL_SERVERS_BLOCK+=$(echo "\n") done MYSQL_SERVERS_TEMPLATE=$(echo $MYSQL_SERVERS_TEMPLATE | sed "s/MYSQL_SERVERS_TEMPLATE_BLOCK/$MYSQL_SERVERS_BLOCK /g") -echo $MYSQL_SERVERS_TEMPLATE >> /proxysql.conf +echo $MYSQL_SERVERS_TEMPLATE >> /etc/proxysql.cnf fi -# MYSQL_SERVERS="DEMO;8989;1;1;1;1;1,DEMO1;8988;1;1;1;1;1" - if [ -n "$MYSQL_QUERY_RULES" ]; then MYSQL_QUERY_RULES_TEMPLATE="mysql_query_rules: ( @@ -147,14 +151,13 @@ IFS=';' values+=($x) done IFS=$OIFS -# echo ${#values[@]} ${#key_values[@]} + count=$(expr $(echo ${#values[@]}) / $(echo ${#key_values[@]}) ) -# echo $count + j=1 for ((i = 0 ; i < ${#values[@]} ; i+=$count )); do block=$MYSQL_QUERY_RULES_TEMPLATE_BLOCK -echo $count -# echo ${values[i]} ${values[i+1]} ${values[i+2]} + if [ $count == 2 ]; then block=$(echo $block | sed "s/rule_id:[^,]*/rule_id:$j/g") block=$(echo $block | sed "s/match_pattern:[^,]*/match_pattern:\"${values[i]}\"/g") @@ -176,51 +179,6 @@ j=$(expr $j + 1) done MYSQL_QUERY_RULES_TEMPLATE=$(echo $MYSQL_QUERY_RULES_TEMPLATE | sed "s/MYSQL_QUERY_RULES_TEMPLATE_BLOCK/$MYSQL_QUERY_RULES_BLOCK /g") -echo $MYSQL_QUERY_RULES_TEMPLATE >> /proxysql.conf +echo $MYSQL_QUERY_RULES_TEMPLATE >> /etc/proxysql.cnf fi -# if [ -n "$MYSQL_QUERY_RULES" ]; then -# echo $MYSQL_SERVERS_TEMPLATE -# fi - - -# IN="bla@some.com;john@home.com" - -# OIFS=$IFS -# IFS=';' -# mails2=$IN -# for x in $mails2 -# do -# echo "> [$x]" -# done - -# IFS=$OIFS - -############################################################ -# PROXYSQL_SERVERS_TEMPLATE="proxysql_servers: -# ( -# PROXYSQL_SERVERS_TEMPLATE_MAIN -# ) -# " - -# PROXYSQL_SERVERS_TEMPLATE1="{ hostname:"", port:ADMINPORT, weight:0, comment:"Discovery" }, " - - -# PROXYSQL_SERVERS="DEMO;8989,DEMO1;8988,DEMO2;8987" -# # PROXYSQL_SERVERS="DEMO;8989" -# if [ -n "$PROXYSQL_SERVERS" ]; then -# key_values=() -# values=() -# OIFS=$IFS -# IFS=',' -# key_values+=($PROXYSQL_SERVERS) -# for x in ${key_values[@]}; -# do -# IFS=';' -# values+=($x) -# done -# IFS=$OIFS -# COUNT_PROXYSQL_SERVERS=$(echo ${#key_values[@]}) - -# echo $COUNT_PROXYSQL_SERVERS $COUNT_PROXYSQL_SERVERS_VALUES -# fi diff --git a/rootfs/proxysql copy.conf b/rootfs/proxysql copy.conf deleted file mode 100644 index 207eb5f..0000000 --- a/rootfs/proxysql copy.conf +++ /dev/null @@ -1,68 +0,0 @@ -datadir="/var/lib/proxysql" -admin_variables= -{ - admin_credentials="admin:admin" - stats_credentials="admin:admin" - mysql_ifaces="0.0.0.0:6032" - refresh_interval=2000 - web_enabled=true - cluster_username="admin" - cluster_password="admin" - cluster_check_interval_ms=30000 - cluster_check_status_frequency=100 -} -mysql_variables= -{ - threads=4 - max_connections=2048 - default_query_delay=0 - default_query_timeout=36000000 - have_compress=true - poll_timeout=2000 - interfaces="0.0.0.0:6033;/tmp/proxysql.sock" - default_schema="information_schema" - stacksize=1048576 - server_version="8.0.3" - connect_timeout_server=10000 - monitor_history=60000 - monitor_connect_interval=200000 - monitor_ping_interval=200000 - ping_interval_server_msec=10000 - ping_timeout_server=200 - query_retries_on_failure=3 - commands_stats=true - sessions_sort=true -} - - -proxysql_servers: -( - { hostname:"0.0.0.0", port:6032, weight:0, comment:"Discovery" }, -) - -mysql_servers: -( - { address:"0.0.0.0", port:3306, hostgroup:1, max_connections:100, weight:100 }, -) -mysql_users: -( - { username:"root", password:"root", default_hostgroup:1, active:1 }, -) - - -### extra -# mysql_galera_hostgroups = -# ( -# ENV.MYSQL_GALERA_HOSTGROUPS -# { writer_hostgroup={{ .writerHostgroup }}, backup_writer_hostgroup={{ .backupWriterHostgroup }}, reader_hostgroup={{ .readerHostgroup }}, offline_hostgroup={{ .offlineHostgroup }}, active={{ .active }}, max_writers={{ .maxWriters }}, writer_is_also_reader={{ .writerIsAlsoReader }}, max_transactions_behind={{ .maxTransactionsBehind }}, comment="{{ .comment }}" }, -# ) -# mysql_replication_hostgroups = -# ( -# ENV.MYSQL_REPLICATION_HOSTGROUPS -# { writer_hostgroup={{ .writerHostgroup }}, reader_hostgroup={{ .readerHostgroup }}, comment="{{ .comment }}" }, -# ) -# mysql_query_rules = -# ( -# ENV.MYSQL_QUERY_RULES -# { rule_id={{ .id }}, active={{ .active }}, match_pattern="{{ .pattern }}", destination_hostgroup={{ .destinationHostgroup }}, apply={{ .apply }}, comment="{{ .comment }}" }, -# ) \ No newline at end of file diff --git a/run b/run deleted file mode 100755 index 17020d3..0000000 --- a/run +++ /dev/null @@ -1,57 +0,0 @@ -# !/command/with-contenv bash - -# FILENAME=./rootfs/proxysql.conf -# COUNT=($(grep -o "ENV\.[A-Z_]*" $FILENAME )) -# COUNT=($(grep -o "ENV\.[A-Z_]*" /proxysql.conf )) -# cp /proxysql.conf /proxysql.conf.tpl -# NEWFILENAME=/proxysql.conf.tpl -# touch /proxysql.conf.tpl -# for ENV in ${COUNT[@]}; do -# # echo $ENV; -# key=$(echo $ENV | sed "s/ENV.//g") -# val=$(echo ${!key}) -# sed -i "s/$ENV/$val/g" "$NEWFILENAME" -# done - - -template_mysql_servers='{ - address=, - port=, - hostgroup=10, - max_connections=100, - }' -mysql_servers(){ - echo $template_mysql_servers -} -key=(mysql_servers mysql_users mysql_galera_hostgroups mysql_replication_hostgroups mysql_query_rules) -# for n in ${key[@]}; do -# done - -mysql_servers - - - - - - -# key=(baseUrl appDomain authUrl formBuilderPath appId imageBasePath profilePath cdssBaseUrl videoConsultUrl agora nursing iconPath iconType customer hatiAi mcuNonmcu) - -# #------- function for removing slash -# function sed_for_slash() { -# a=$1 -# output=$(echo $a | sed 's/\//\\\//g') -# echo $output -# } - -# # ------ for checking env name with value - -# keyname=() -# value=() -# for element in ${key[@]}; do -# name=$(echo $element | tr '[:lower:]' '[:upper:]') -# if [ -n "${!name}" ]; then -# val=$(echo ${!name}) -# keyname+=($element) -# value+=($val) -# fi -# done