gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-grid5k] 47/141: fix promtail, add helper function script


From: gnunet
Subject: [taler-grid5k] 47/141: fix promtail, add helper function script
Date: Thu, 18 Nov 2021 14:49:48 +0100

This is an automated email from the git hooks/post-receive script.

marco-boss pushed a commit to branch master
in repository grid5k.

commit 1c889ac8f0085c1fd66ceef6c236297d085220e0
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Thu Oct 14 22:42:50 2021 +0200

    fix promtail, add helper function script
---
 configs/etc/monitor/promtail.yaml |  4 ++--
 experiment/scripts/exchange.sh    | 43 ++++++++++++++-------------------------
 experiment/scripts/helpers.sh     | 40 ++++++++++++++++++++++++++++++++++++
 experiment/scripts/monitor.sh     | 23 ++++-----------------
 experiment/scripts/proxy.sh       | 24 ++++++++--------------
 experiment/scripts/wallet.sh      | 18 +++++++---------
 experiment/setup.sh               |  5 ++---
 7 files changed, 79 insertions(+), 78 deletions(-)

diff --git a/configs/etc/monitor/promtail.yaml 
b/configs/etc/monitor/promtail.yaml
index 4cabeb1..1643765 100644
--- a/configs/etc/monitor/promtail.yaml
+++ b/configs/etc/monitor/promtail.yaml
@@ -6,12 +6,12 @@ positions:
   filename: /tmp/positions.yaml
 
 clients:
-  - url: http://localhost/loki/api/v1/push
+  - url: http://127.0.0.1/loki/api/v1/push
 
 scrape_configs:
 - job_name: taler
   syslog:
-    listen_address: 127.0.0.1:1514
+    listen_address: 0.0.0.0:1514
     labels:
       job: taler
   relabel_configs:
diff --git a/experiment/scripts/exchange.sh b/experiment/scripts/exchange.sh
index 45489ed..1fb6ae0 100755
--- a/experiment/scripts/exchange.sh
+++ b/experiment/scripts/exchange.sh
@@ -1,51 +1,38 @@
 #!/bin/bash
 set -eux
 
+source ~/scripts/helpers.sh
+
+# remove later
+apt install -y net-tools netcat
+
+restart_rsyslog
+
 sed -i 
"s\<DB_URL_HERE>\postgresql://${DB_USER}:${DB_PASSWORD}@${DATABASE_DOMAIN}/${DB_NAME}\g"
 \
        /etc/taler/secrets/exchange-db.secret.conf
 
 sed -i "s/<BANK_HOST_HERE>/${BANK_DOMAIN}/g" \
        /etc/taler/secrets/exchange-accountcredentials.secret.conf
 
-sed -i "s/<BANK_HOST_HERE>/${BANK_DOMAIN}/g" \
-       /etc/taler/conf.d/exchange-business.conf
-
-sed -i "s\<BASE_URL_HERE>\http://${EXCHANGE_DOMAIN}/\g"; \
-       /etc/taler/conf.d/exchange-business.conf
-
 MASTER_KEY=$(sudo -u taler-exchange-offline taler-exchange-offline setup)
 
-sed -i "s/<MASTER_KEY_HERE>/${MASTER_KEY}/g" \
+sed -i -e "s/<BANK_HOST_HERE>/${BANK_DOMAIN}/g" \
+       -e "s\<BASE_URL_HERE>\http://${EXCHANGE_DOMAIN}/\g"; \
+       -e "s/<MASTER_KEY_HERE>/${MASTER_KEY}/g" \
        /etc/taler/conf.d/exchange-business.conf
 
-until PGPASSWORD="${DB_PASSWORD}" psql \
-      -h "${DATABASE_DOMAIN}" \
-      -U "${DB_USER}" \
-      -d "${DB_NAME}" \
-      -c '\q';
-do
-  echo "Database not ready yet"
-  sleep 2
-done
-
+wait_for_db
+# Wait another second to make sure user has permissions
 sleep 1
 
 systemctl restart taler-exchange.target
 
-for i in {0..${NUM_EXCHANGE_PROCESSES}} ;
+for (( i=1; i < ${NUM_EXCHANGE_PROCESSES}; i++ ))
 do
-  systemctl restart taler-exchange-httpd@808${i}.socket 
taler-exchange-httpd@808${i}.service
+  systemctl restart taler-exchange-httpd@808"${i}".socket 
taler-exchange-httpd@808"${i}".service
 done
 
-until wget http://${EXCHANGE_DOMAIN}/management/keys \
-      --spider \
-      --timeout=5 \
-      --tries=1 \
-      --quiet;
-do
-  echo "Exchange not ready yet"
-  sleep 5
-done
+wait_for_keys "${EXCHANGE_DOMAIN}/management"
 
 taler-exchange-offline download > sig-req.json
 taler-exchange-offline sign < sig-req.json > sig-res.json
diff --git a/experiment/scripts/helpers.sh b/experiment/scripts/helpers.sh
new file mode 100644
index 0000000..6c82409
--- /dev/null
+++ b/experiment/scripts/helpers.sh
@@ -0,0 +1,40 @@
+#/!bin/bash
+set -eux
+
+function wait_for_db() {
+  until PGPASSWORD="${DB_PASSWORD}" psql \
+        -h "${DATABASE_DOMAIN}" \
+        -U "${DB_USER}" \
+        -d "${DB_NAME}" \
+        -c '\q';
+  do
+    echo "Database not ready yet"
+    sleep 2
+  done
+}
+
+# Arguments
+# 1: Domain to request /keys from
+function wait_for_keys() {
+  until wget http://${1}/keys \
+        --spider \
+        --timeout=5 \
+        --tries=1 \
+        --quiet;
+  do
+    echo "Exchange not ready yet"
+    sleep 5
+  done
+} 
+
+function restart_rsyslog() {
+  # rsyslg fails to apply the taler rule if remote is not reachable
+  while ! nc -z ${MONITOR_DOMAIN} 1514;
+  do
+    echo "Waiting for promtail"
+    sleep 2
+  done
+  
+  systemctl restart rsyslog
+}
+
diff --git a/experiment/scripts/monitor.sh b/experiment/scripts/monitor.sh
index 3c001af..54a29e4 100755
--- a/experiment/scripts/monitor.sh
+++ b/experiment/scripts/monitor.sh
@@ -1,6 +1,8 @@
 #!/bin/bash
 set -eux
 
+source ~/scripts/helper.sh
+
 AUTH_HEADER="Authorization: Bearer ${GRAFANA_API_KEY}"
 GRAFANA_API="https://$(host ${DNS_HOST} | sed -n 1p | awk '{print 
$4}'):3000/api"
 
@@ -38,27 +40,10 @@ sed -i 
"s\<DB_URL_HERE>\postgresql://postgres@${DATABASE_DOMAIN}:5432\g" \
 sed -i "s\<PROXY_URL_HERE>\http://${PROXY_DOMAIN}/stub_status\g"; \
        /etc/default/prometheus-nginx-exporter
 
-until PGPASSWORD="${DB_PASSWORD}" psql \
-      -h "${DATABASE_DOMAIN}" \
-      -U "${DB_USER}" \
-      -d "${DB_NAME}" \
-      -c '\q';
-do
-  echo "Database not ready yet"
-  sleep 2
-done
+wait_for_db
 
 # Proxy takes longer to start
-
-until wget http://${PROXY_DOMAIN}/keys \
-      --spider \
-      --timeout=5 \
-      --tries=1 \
-      --quiet;
-do
-  echo "Exchange not ready yet"
-  sleep 5
-done
+wait_for_keys "${PROXY_DOMAIN}"
 
 systemctl restart prometheus-postgres-exporter \
                  prometheus-nginx-exporter
diff --git a/experiment/scripts/proxy.sh b/experiment/scripts/proxy.sh
index eec9bc8..7254aa4 100755
--- a/experiment/scripts/proxy.sh
+++ b/experiment/scripts/proxy.sh
@@ -1,24 +1,18 @@
 #!/bin/bash
 set -eux
 
-sed "s\<EXCHANGE_URL_HERE>\http://${EXCHANGE_DOMAIN}\g"; \
-       /etc/nginx/sites-available/proxy > /etc/nginx/sites-enabled/proxy
+sed $"/<SERVERS_HERE>/a \ \ server ${EXCHANGE_DOMAIN}:80;" \
+    /etc/nginx/sites-available/proxy > /etc/nginx/sites-enabled/proxy
 
-for i in {0..${NUM_EXCHANGE_PROCESSES}} ;
+# We want n processes, one is already enabled on port 80
+for (( i=1; i < ${NUM_EXCHANGE_PROCESSES}; i++ ))
 do
-  sed -i "\<SERVERS_HERE>\server ${EXCHANGE_DOMAIN}:808${i};"
+  sed -i $"/<SERVERS_HERE>/a \ \ server ${EXCHANGE_DOMAIN}:808${i};" \
+        /etc/nginx/sites-enabled/proxy
 done
 
-sed -i "\<SERVERS_HERE>\server ${EXCHANGE_DOMAIN}:80;"
-
-# Nginx does not start until the destination server is reachable - wait here 
+# Nginx does not start until the destination server is reachable - wait here
 # nginx: [emerg] host not found in upstream "exch.perf.taler" ...
-until wget http://${EXCHANGE_DOMAIN}/keys \
-       --spider \
-       -q;
-do
-  echo "Exchange not ready yet"
-  sleep 5
-done
+wait_for_keys "${EXCHANGE_DOMAIN}"
 
-systemctl restart nginx 
+systemctl restart nginx
diff --git a/experiment/scripts/wallet.sh b/experiment/scripts/wallet.sh
index f4370ec..ea452df 100755
--- a/experiment/scripts/wallet.sh
+++ b/experiment/scripts/wallet.sh
@@ -1,15 +1,11 @@
 #!/bin/bash
 set -eux
 
-until wget http://${PROXY_DOMAIN}/keys \
-      --spider \
-      --timeout=5 \
-      --tries=1 \
-      --quiet;
-do
-  echo "Exchange not ready yet"
-  sleep 5
-done
-
-taler-wallet-cli advanced withdraw-manually --exchange http://${PROXY_DOMAIN}/ 
--amount KUDOS:10
+source ~/scripts/helpers.sh
+
+wait_for_keys "${PROXY_DOMAIN}"
+
+taler-wallet-cli advanced withdraw-manually \
+       --exchange "http://${PROXY_DOMAIN}/"; \
+       --amount KUDOS:10
 
diff --git a/experiment/setup.sh b/experiment/setup.sh
index 758798f..bb3e4d8 100644
--- a/experiment/setup.sh
+++ b/experiment/setup.sh
@@ -22,9 +22,6 @@ cp -r "${G5K_HOME}"/configs/* /
 sed -i "s/<MONITOR_DOMAIN_HERE>/${MONITOR_DOMAIN}/g" \
        /etc/rsyslog.d/taler.conf
 
-# Apply our logging rules
-systemctl restart rsyslog
-
 # Add the dyndns key which will be used by the dns update
 cat << EOF > /root/ddns.key 
 key "ddns-key.perf.taler" {
@@ -40,4 +37,6 @@ if ! grep -Fxq "nameserver ${NS_IP}" /etc/resolv.conf ; then
 nameserver ${NS_IP}" /etc/resolv.conf
 fi
 
+systemctl daemon-reload
+
 exit 0

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]