gnunet-svn
[Top][All Lists]
Advanced

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

[taler-grid5k] branch master updated (2554db5 -> d6cc557)


From: gnunet
Subject: [taler-grid5k] branch master updated (2554db5 -> d6cc557)
Date: Tue, 23 Nov 2021 19:22:17 +0100

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

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

    from 2554db5  Node setup complete - multiple projects because of allocation 
bug in jFed
     new 308d7cb  add direcory type to readme
     new 0f19e7a  add script to create plots
     new 28ebc2b  add plotting script and better documentation
     new 2e2201f  update readmes and plotter config
     new 5a0e2a5  fix env description
     new d0d510f  test with dns in grid
     new f3d4b94  update bind config
     new 2c9fe2b  update bind config
     new 298db35  dynamic dns zone
     new c9440e7  install bind
     new 18c8856  switch to in experiment dns for simplicity
     new b5ad7a3  move logs automatically to nfs
     new 768bb65  use global forwarders
     new b8cd859  add merchant to prometheus
     new 3aec4e2  add check for DNS_HOST
     new d6cc557  DNS included in experiment

The 16 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README                                             | 23 -------
 README.md                                          | 35 ++++++++++
 additional/.gitignore                              |  2 +
 additional/README.md                               | 10 +++
 additional/config.yaml                             | 20 ++++++
 additional/grafana/tbd                             |  0
 additional/plot.sh                                 | 38 ++++++++++
 configs/etc/bind/named.conf.local                  |  8 +++
 configs/etc/bind/named.conf.options                | 23 +++++++
 configs/etc/logrotate.d/taler                      |  4 +-
 configs/etc/monitor/node-exporters.yaml.tpl        |  4 ++
 configs/etc/rsyslog.d/taler.conf                   |  2 +-
 .../usr/lib/systemd/system/taler-logbackup.service |  3 +-
 .../usr/lib/systemd/system/taler-logbackup.timer   |  2 +-
 configs/var/lib/bind/perf.taler                    | 12 ++++
 docker/Dockerfile                                  |  1 +
 docker/README.md                                   | 21 ++++--
 docker/entrypoint.sh                               | 49 +++++++++----
 experiment/README                                  | 21 ------
 experiment/README.md                               | 61 +++++++++++++++++
 experiment/cleardns.sh                             | 33 ---------
 experiment/env                                     | 68 +++++++++++-------
 experiment/experiment-specification.yml            | 15 ++--
 experiment/infra.rspec                             | 13 +++-
 experiment/scripts/dns.sh                          | 12 ++++
 experiment/scripts/exchange.sh                     |  5 +-
 experiment/scripts/log-save.sh                     | 21 ------
 experiment/scripts/monitor.sh                      |  3 +-
 experiment/{ => scripts}/run.sh                    |  6 +-
 experiment/scripts/setup.sh                        | 80 ++++++++++++++++++++++
 experiment/{ => scripts}/taler-perf.sh             |  0
 experiment/setup.sh                                | 60 ----------------
 image/README.md                                    | 53 ++++++++++++++
 image/taler-debian11.yaml                          |  4 +-
 notes.txt                                          |  5 +-
 35 files changed, 491 insertions(+), 226 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md
 create mode 100644 additional/.gitignore
 create mode 100644 additional/README.md
 create mode 100644 additional/config.yaml
 create mode 100644 additional/grafana/tbd
 create mode 100755 additional/plot.sh
 create mode 100644 configs/etc/bind/named.conf.local
 create mode 100644 configs/etc/bind/named.conf.options
 create mode 100644 configs/var/lib/bind/perf.taler
 delete mode 100755 experiment/README
 create mode 100644 experiment/README.md
 delete mode 100644 experiment/cleardns.sh
 mode change 100755 => 100644 experiment/env
 mode change 100755 => 100644 experiment/experiment-specification.yml
 create mode 100644 experiment/scripts/dns.sh
 delete mode 100755 experiment/scripts/log-save.sh
 rename experiment/{ => scripts}/run.sh (96%)
 create mode 100644 experiment/scripts/setup.sh
 rename experiment/{ => scripts}/taler-perf.sh (100%)
 delete mode 100644 experiment/setup.sh
 create mode 100644 image/README.md

diff --git a/README b/README
deleted file mode 100644
index 17f45f5..0000000
--- a/README
+++ /dev/null
@@ -1,23 +0,0 @@
-Use
-
-$ kameleon build taler-debian11 
-
-to build the image.
-
-Note: Maybe the user needs to be adjusted in g5k_tar_path  
-i.e. http://public.lyon.grid5000.fr/~<G5K_USER>/taler-debian11.tar.zst
-
-Afterwards:
-
-$ cd build/taler-debian11
-$ scp taler-debian11.dsc taler-debian11.tar.zst \
-      <G5K_USER>@access.grid5000.fr:lyon/public/
-
-Then we can use
-
-   http://public.lyon.grid5000.fr/~<G5K_USER>/taler-debian11.dsc
-
-for the disk image in jfed.  
-
-jFed example configurations are in the jfed/ directory.
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bf0d198
--- /dev/null
+++ b/README.md
@@ -0,0 +1,35 @@
+# Taler experiments for Grid5000
+
+## Directory Strucutre
+
+In most directories you will find another README
+which describes how the parts in there can be used.
+
+### Experiments
+
+Contains all configurations and scripts needed
+for the experiment to run in the grid. They are setup to 
+work with (jFed)[https://jfed.ilabt.imec.be/].
+
+### Image
+
+Contains the Grid5000 Environment configuration. 
+This needs to be built and copied to the grid before
+any experiments can take place.
+
+### Docker
+
+Some automated way to create the image and directly copy it 
+to the grid. 
+No need to install the required build tools on your machine.
+
+### Additional
+
+Scripts and configurations which can be used to e.g. persist
+data of experiments.
+
+### Configs
+
+Contains the configurations for the applications in the environment.
+They will be copied and adjusted once an experiment is started.
+
diff --git a/additional/.gitignore b/additional/.gitignore
new file mode 100644
index 0000000..2af3b6f
--- /dev/null
+++ b/additional/.gitignore
@@ -0,0 +1,2 @@
+plotter
+*.tar.gz
diff --git a/additional/README.md b/additional/README.md
new file mode 100644
index 0000000..28278cf
--- /dev/null
+++ b/additional/README.md
@@ -0,0 +1,10 @@
+# Additional Resources for Experiments
+
+## plot.sh
+
+Create png plots from the grafana experiment dashboards using [Grafana 
Dashboard Plotter](https://github.com/bossm8/grafana-dashboard-plotter).
+
+## grafana
+
+**TBD**
+Will contain grafana dashboards once finished
diff --git a/additional/config.yaml b/additional/config.yaml
new file mode 100644
index 0000000..8a13227
--- /dev/null
+++ b/additional/config.yaml
@@ -0,0 +1,20 @@
+grafana:
+  admin_api_key: ${ADMIN_API_KEY}
+  base_url: ${BASE_URL}
+  default_time_range: 14400 # 4 hours
+  tls_verify: false
+
+dashboards:
+  - uid: 83vvgKKnk # Transacions
+  - uid: 2FTtdeOnk # Database
+    variables: ['db', 'instance']
+  - uid: MsjffzSZz # Proxy
+  - uid: WcfSXqDnk # Request Statistics
+    variables: ['endpoint']
+  - uid: rYdddlPWk # Nodes
+    variables: ['node']
+    ignore: 'wallet*|monitor*|bank*|merch*'
+
+prometheus:
+  node_exporter_job_name: nodes
+
diff --git a/additional/grafana/tbd b/additional/grafana/tbd
new file mode 100644
index 0000000..e69de29
diff --git a/additional/plot.sh b/additional/plot.sh
new file mode 100755
index 0000000..068ff91
--- /dev/null
+++ b/additional/plot.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Create plots from the grafana dashboard
+set -eu
+
+PLOTTER_DIR=plotter
+
+source ../experiment/.env
+
+if [ ! -d ${PLOTTER_DIR} ]; then
+  git clone https://github.com/bossm8/grafana-dashboard-plotter.git 
${PLOTTER_DIR}
+fi
+
+cd ${PLOTTER_DIR} && git pull 
+
+if [ ! -d venv ]; then
+  python3 -m venv venv
+fi
+
+source venv/bin/activate
+pip install -r requirements.txt > /dev/null
+
+sed -e "s|\${ADMIN_API_KEY}|${GRAFANA_API_KEY}|g" \
+    -e "s|\${BASE_URL}|${GRAFANA_HOST}|g" \
+    ../config.yaml > config.yaml
+
+set +u
+
+TO=${TO:-$(date +%s)}
+
+if [ -z "${FROM}" ]; then
+  python3 plots.py --to=${TO}
+else
+  python3 plots.py --from=${FROM} --to=${TO}
+fi
+
+tar -czvf ../plots-${TO}.tar.gz plots
+
+rm -rf plots 
diff --git a/configs/etc/bind/named.conf.local 
b/configs/etc/bind/named.conf.local
new file mode 100644
index 0000000..283acd6
--- /dev/null
+++ b/configs/etc/bind/named.conf.local
@@ -0,0 +1,8 @@
+zone "<DNS_ZONE_HERE>" {
+  type master;
+  file "/var/lib/bind/perf.taler";
+  allow-update {
+    172.16.0.0/12;
+    127.0.0.0/8;
+  };
+};
diff --git a/configs/etc/bind/named.conf.options 
b/configs/etc/bind/named.conf.options
new file mode 100644
index 0000000..cae6567
--- /dev/null
+++ b/configs/etc/bind/named.conf.options
@@ -0,0 +1,23 @@
+acl grid5000 {
+  172.16.0.0/12;
+  127.0.0.0/8;
+};
+
+options {
+  directory "/var/cache/bind";
+
+  allow-query { grid5000; };
+  allow-update { grid5000; };
+   
+  dnssec-enable yes;
+  dnssec-validation yes;
+
+  rrset-order { order random; };
+
+  listen-on-v6 { any; };
+
+  forwarders {
+    <GRID_DNS_HERE>
+  };
+};
+
diff --git a/configs/etc/logrotate.d/taler b/configs/etc/logrotate.d/taler
index bc8e16c..d45447a 100644
--- a/configs/etc/logrotate.d/taler
+++ b/configs/etc/logrotate.d/taler
@@ -1,7 +1,7 @@
-/tmp/taler/*log {
+<LOG_DIR_HERE>/*log {
   daily
   missingok
-  rotate 5
+  rotate 100
   notifempty
   create
   maxsize 1000M
diff --git a/configs/etc/monitor/node-exporters.yaml.tpl 
b/configs/etc/monitor/node-exporters.yaml.tpl
index 99b79ed..09cbcaa 100644
--- a/configs/etc/monitor/node-exporters.yaml.tpl
+++ b/configs/etc/monitor/node-exporters.yaml.tpl
@@ -24,3 +24,7 @@
         component: 'monitor'
       targets:
       - 'monitor.perf.taler:9100'
+    - labels:
+        component: 'merchant'
+      targets:
+      - 'merch.perf.taler:9100'
diff --git a/configs/etc/rsyslog.d/taler.conf b/configs/etc/rsyslog.d/taler.conf
index 34bcc72..cbc8e7a 100644
--- a/configs/etc/rsyslog.d/taler.conf
+++ b/configs/etc/rsyslog.d/taler.conf
@@ -3,7 +3,7 @@ module(load="omprog")
 module(load="mmutf8fix")
 
 # Set the filename for the log backup
-$template FileName,"/tmp/taler/%programname%.log"
+$template FileName,"<LOG_DIR_HERE>/%programname%.log"
 
 if ($programname startswith 'taler' or $syslogtag startswith 'taler') then {
   action(type="mmutf8fix" replacementChar="?")
diff --git a/configs/usr/lib/systemd/system/taler-logbackup.service 
b/configs/usr/lib/systemd/system/taler-logbackup.service
index ed81bc6..45001c2 100644
--- a/configs/usr/lib/systemd/system/taler-logbackup.service
+++ b/configs/usr/lib/systemd/system/taler-logbackup.service
@@ -3,9 +3,8 @@ Description=Compresses and moves taler logs to the grid5000 nfs
 Wants=taler-logbackup.timer
 
 [Service]
-EnvironmentFile=/etc/environment
 Type=oneshot
-ExecStart=/root/scripts/log-save.sh 
+ExecStart=/usr/sbin/logrotate /etc/logrotate.d/taler
 
 [Install]
 WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/taler-logbackup.timer 
b/configs/usr/lib/systemd/system/taler-logbackup.timer
index a602e2b..fe33a6a 100644
--- a/configs/usr/lib/systemd/system/taler-logbackup.timer
+++ b/configs/usr/lib/systemd/system/taler-logbackup.timer
@@ -4,7 +4,7 @@ Requires=taler-logbackup.service
 
 [Timer]
 Unit=taler-logbackup.service
-OnCalendar=*:0/10
+OnCalendar=*:0/15
 
 [Install]
 WantedBy=timers.target
diff --git a/configs/var/lib/bind/perf.taler b/configs/var/lib/bind/perf.taler
new file mode 100644
index 0000000..81ea22d
--- /dev/null
+++ b/configs/var/lib/bind/perf.taler
@@ -0,0 +1,12 @@
+$ORIGIN .
+$TTL 3600      ; 1 hour
+<DNS_ZONE_HERE>.               IN SOA  ns1.<DNS_ZONE_HERE>. 
admin.<DNS_ZONE_HERE>. (
+                               202112574  ; serial
+                               604800     ; refresh (1 week)
+                               86400      ; retry (1 day)
+                               2419200    ; expire (4 weeks)
+                               604800     ; minimum (1 week)
+                               )
+                       NS      ns1.<DNS_ZONE_HERE>.
+$ORIGIN <DNS_ZONE_HERE>.
+ns1                    A       127.0.0.1
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 360c400..8805d3e 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -25,6 +25,7 @@ RUN apt update && \
         libidn2-dev \
         libunistring-dev \
         libmicrohttpd-dev \
+        libextractor-dev \
         libsqlite3-dev \
         libqrencode-dev \
         pkg-config \
diff --git a/docker/README.md b/docker/README.md
index bcccae7..0e7b579 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -30,6 +30,9 @@ docker run -it --rm \
            taler:build <ARGUMENTS>
 ```
 
+**NOTE** about the port 5900, this one can be used for vncviewer to see whats 
happening inside the image which 
+will be created. Run `vncviewver :0`.
+
 ### docker-compose
 
 Assuming an env file `.env` with the following contents:
@@ -51,23 +54,27 @@ Or place the password (also arguments) in .env too but make 
sure its protected.
 
 #### Environment Variables
 
-**GRID5K_USER`**: the user which `GRID5K_CERT` belongs to
+**GRID5K_USER**: the user which `GRID5K_CERT` belongs to
 **GRID5K_CERT**: the certificate which is used to login to the Grid5000 nodes 
(docker-compose only)
 **GRID5K_CERT_PASSWD**: the password to decrypt `GRID5K_CERT`
-**GRID5K_DEST**: comma separated list of where to copy the image to in the 
grid (lille,lyon)
+**GRID5K_DEST**: comma separated list of where to copy the image to in the 
grid (default: lille,lyon)
 **ARGUMENTS**: args to pass to entrypoint, one of 
   -c|--clean (run make clean) 
   -r|--rebuild (rebuild the image - automatically set if -c is used) 
   -n|--no-copy (do not copy the generated image to Grid5000 - make sure output 
volume is mounted)
+  -v|--verbose (enable verbose logging)
  As per default, running the docker command again will not clean or rebuild 
the image
 
 ##### Additional
 
-**GNUNET_COMMIT_SHA**: Which commit to use of gnunet (master)
-**EXCHANGE_COMMIT_SHA**: Which commit to use of taler-exchange (master)
-**MERCHANT_COMMIT_SHA**: Which commit to use of taler-merchant (master)
-**WALLET_COMMIT_SHA**: Which commit to use of wallet-core (master)
-**GRID5K_COMMIT_SHA**: Which commit to use of this repo (master)
+**GNUNET_COMMIT_SHA**: Which commit to use of gnunet 
+**EXCHANGE_COMMIT_SHA**: Which commit to use of taler-exchange 
+**MERCHANT_COMMIT_SHA**: Which commit to use of taler-merchant 
+**WALLET_COMMIT_SHA**: Which commit to use of wallet-core 
+**GRID5K_COMMIT_SHA**: Which commit to use of this repo 
+
+These are listed explicitely in the docker-compose.yml and not via 
environments.
+All of them default to master if they are not present in the compose or via 
environment.
 
 #### VNC
 
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index a99ef00..2862722 100644
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -19,6 +19,11 @@ while [[ $# -gt 0 ]]; do
       echo "INFO will not copy image to Grid5000"
       shift
       ;;
+    -v|--verbose)
+      VERBOSE=true
+      echo "INFO verbose output enabled"
+      shift
+      ;;
     *)
       shift
       ;;
@@ -29,10 +34,33 @@ TALER_HOME=/taler
 
 function prepare() {
   cd "${TALER_HOME}/$1"
-  git checkout master > /dev/null && git pull > /dev/null 2>&1
+  git checkout master > /dev/null && (git pull > /dev/null 2>&1 || true)
   git checkout "$2" > /dev/null && (git pull > /dev/null 2>&1 || true)
 }
 
+function _make() {
+  echo "INFO running bootstrap and configure"
+  if ! ./bootstrap > bootstrap.log 2>&1; then
+    echo "ERROR bootstrap failed"
+    cat bootstrap.log
+    exit 1
+  fi
+  if [ -f contrib/gana.sh ]; then
+    ./contrib/gana.sh > gana.log 2>&1
+  fi
+  if ! (./configure --enable-logging=verbose --prefix=/usr > configure.log 
2>&1 || \
+       ./configure > configure.log 2>&1); then
+    echo "ERROR configure failed"
+    cat configure.log
+    exit 1
+  fi
+  if [ "$VERBOSE" = true ]; then
+    cat bootstrap.log || true
+    cat gana.log || true
+    cat configure.log || true
+  fi
+}
+
 function build() {
   prepare "$1" "$2"
   if [ "$CLEAN" = true ]; then
@@ -40,18 +68,7 @@ function build() {
     make clean > /dev/null 2>&1 || true
   fi
   if ! make > /dev/null 2>&1; then
-    echo "INFO running bootstrap and configure"
-    if ! ./bootstrap > bootstrap.log 2>&1; then
-      echo "ERROR bootstrap failed"
-      cat bootstrap.log
-      exit 1
-    fi
-    if ! (./configure --enable-logging=verbose --prefix=/usr > configure.log 
2>&1 || \
-         ./configure > configure.log 2>&1); then
-       echo "ERROR configure failed"
-       cat configure.log
-       exit 1
-    fi
+    _make
   fi
   if [ ! -z "$3" ]; then
     echo "INFO running custom command '$3'"
@@ -63,6 +80,9 @@ function build() {
     cat dist.log
     exit 1
   fi
+  if [ "$VERBOSE" = true ]; then
+    cat dist.log || true
+  fi
 }
 
 function install() {
@@ -77,6 +97,9 @@ function install() {
     fi
     ldconfig
   fi
+  if [ "$VERBOSE" = true ]; then
+    cat install.log || true
+  fi
 }
 
 if [ "$COPY" != false ];
diff --git a/experiment/README b/experiment/README
deleted file mode 100755
index 5caae65..0000000
--- a/experiment/README
+++ /dev/null
@@ -1,21 +0,0 @@
-All files needed to run the experiment can be found inside the jfed/ directory:
-  * experiment-specitication.yml: espec to run the experiment
-  * taler-perf.rspec: boots nodes based on the omnibus image into grid5000
-  * env: template file to add enviroment variables needed for the experiment
-  
-Steps:
-  * cp env .env
-  * edit .env and define the specified variables
-  * DNS_HMAC_SHA256 can be generated with tsig-keygen from bind9 package (use 
the secret only)
-  * Start jFed Experimenter GUI 
-  * Load infra.rspec and click Run
-  * Specify the experiment name and time
-  * Wait until infra.rspec is allocated successfully
-  * Configure .env and set the hosts (maybe this can be fixed once we can use 
one rspec only)
-  * Click (Re)Run ESpec for the infra job job
-  * Load wallets.rspec into jFed and click Run
-  * Click (Re)Run ESpec for the wallets job
-  * Run `talet-perf update prometheus` on any deployed node
-
-To add more wallet processes run `taler-perf start wallets <NUM>` on any node
-
diff --git a/experiment/README.md b/experiment/README.md
new file mode 100644
index 0000000..599beb3
--- /dev/null
+++ b/experiment/README.md
@@ -0,0 +1,61 @@
+# Experiment Setup
+
+## Files
+
+* experiment-specitication.yml: [ESpec](https://jfed.ilabt.imec.be/espec/) for 
jFed 
+* infra.rspec: Contains all nodes for the Taler infrastructure
+* wallets.rspec: Contains a set of nodes for wallets
+* env: template file to add enviroment variables needed for the experiment
+* scripts: Bash scripts which will be run in the experiment
+  
+## Run an Experiment
+
+To successfully run an experiment the following steps must be made:
+
+**NOTE** An external Grafana instance with Taler Performance Dashboards is 
needed
+         Dashboards can be found in `additional` (TBD)
+         Install instructions can be found on 
[grafana.com](https://grafana.com/docs/grafana/latest/installation/)
+         Once installed, two datasources must be added - Prometheus and Loki, 
they will be updated from the experiment
+
+* Copy the environment default configuration `env` to `.env`
+* Read through `.env` and define the missing variables
+* Start jFed Experimenter GUI 
+* Load infra.rspec and click Run
+* Specify the experiment name and time
+* Wait until infra.rspec is allocated successfully
+* Configure `.env` and set the hosts - the allocated nodes can be found in the 
tab `RSpec Viewer`
+  (this can be fixed once we can use one rspec only)
+* Wait until the nodes are ready
+* Click (Re)Run ESpec for the infra job (use the type Directory and select 
this directory (experiment))
+* Load wallets.rspec into jFed and click Run
+* Click (Re)Run ESpec for the wallets job (type directory)
+* Run `talet-perf update prometheus` on any deployed node to make prometheus 
aware of the freshly added wallets
+
+**NOTE** If for some reason the espec needs to be rerun, all uploaded files 
need to be deleted currently.
+         This can be achieved on all nodes by pressing `Multi Command` and 
specifying the command:
+         `rm -rf scripts .env`
+
+## Actions in running Experiment
+
+To add more exchange processes run `taler-perf stop ecxchange <NUM>` on any 
node
+To add more wallet processes run `taler-perf start wallet <NUM>` on any node
+
+They can also be stopped in the same way: `taler-perf stop <KIND> <NUM>`
+To stop the wallet processes which are logging, specify `taler-perf stop 
wallet logging`, they will not 
+be stopped otherwise.
+
+### Grafana Dashboard Plotting
+ 
+To persists the dashboards as png plots, there is a script in `../additional` 
which creates png
+plots based on a configuration. Please refer to the README located in the 
specified directory.
+
+### Application Logs
+
+The logs of the taler applications will be moved periodically to 
`/home/<G5K_USER>/taler-logs`. 
+They can then be retrieved using scp to the respective site they where running 
on
+(e.g. nancy/taler-logs for grvingt and others).
+Make sure to take them away before restarting an experiment, since they will 
be deleted in a new experiment.
+
+## Notes
+
+Hopefully the bind dns gets useless once the experiment can be run in one 
espec.
diff --git a/experiment/cleardns.sh b/experiment/cleardns.sh
deleted file mode 100644
index 3d52bec..0000000
--- a/experiment/cleardns.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-# Clears the DNS server for the new experiment
-set -eux
-
-source .env
-source ~/scripts/helpers.sh
-
-function del_ddn() {
-  nsupdate -k /root/ddns.key -v << EOF
-server ${DNS_HOST}
-zone ${DNS_ZONE}
-update delete ${1}
-send
-EOF
-}
-
-dig -t AXFR ${DNS_ZONE} ${DNS_HOST}
-
-# Delete all old dns entries of the previous experitment
-while IFS='=' read -r NAME VALUE; do
-  if [[ "${NAME}" == *"_DOMAIN" ]] && [[ "${VALUE}" == *".${DNS_ZONE}" ]]; 
then 
-    if [[ "${VALUE}" == "wallet"* ]]; then 
-      for WALLET in $(get_wallet_domains); do
-        del_ddn "wallet.${WALLET}.${DNS_ZONE}"
-      done
-    else
-      del_ddn "${VALUE}"
-    fi
-  fi
-done < .env
-
-dig -t AXFR ${DNS_ZONE} ${DNS_HOST}
-
diff --git a/experiment/env b/experiment/env
old mode 100755
new mode 100644
index e0512d8..f08ffdc
--- a/experiment/env
+++ b/experiment/env
@@ -1,54 +1,76 @@
-    BANK_HOSTS=nova-*.*
-DATABASE_HOSTS=gros-*.*
-EXCHANGE_HOSTS=grcinq-*.*
-MERCHANT_HOSTS=grvingt-*.*
- MONITOR_HOSTS=econome-*.*
-   PROXY_HOSTS=grappe-*.*
-  WALLET_HOSTS=uvb-*.*
-
-DNS_HOST=taler.net
+# Place hosts which are allocated by jFed here
+# They can be found in the tab 'RSpec Viewer' once the 
+# nodes are allocated.
+# Once the allocation bug is fixed these configurations
+# will be removed.
+# The DNS_HOST must be set completely, others can contain
+# a wildcard after the node name to match the site automatically.
+# Wallet hosts can be specified as a wildcard only since
+# all other hosts are matched before.
+    BANK_HOSTS=dahu-x.*
+DATABASE_HOSTS=dahu-y.*
+      DNS_HOST=dahu-12.grenoble.grid5000.fr
+EXCHANGE_HOSTS=dahu-z.*
+MERCHANT_HOSTS=grvingt-x.*
+ MONITOR_HOSTS=econome-y.*
+   PROXY_HOSTS=dahu-u.*
+  WALLET_HOSTS=*
+
 DNS_ZONE=perf.taler
 
+# These values specify the domain names for
+# the nodes, they most certain do not need to be adjusted.
+# DO NOT change wallet domain, since this is currently needed
+# for cleardns.sh
     BANK_DOMAIN=bank.perf.taler
 DATABASE_DOMAIN=db.perf.taler
 EXCHANGE_DOMAIN=exch.perf.taler
 MERCHANT_DOMAIN=merch.perf.taler
  MONITOR_DOMAIN=monitor.perf.taler
    PROXY_DOMAIN=proxy.perf.taler
+  WALLET_DOMAIN=wallet.*.perf.taler
 
-# Wallet domain is also needed for cleardns.sh
-WALLET_DOMAIN=wallet.x.perf.taler
-
+# Arguments to pass to taler-exchange-* binaries at startup.
 EXCHANGE_ARGS="-L INFO"
 
+# Datasource names registered in the grafana instance
 PROMETHEUS_DATASOURCE_NAME=Prometheus
 LOKI_DATASOURCE_NAME=Loki
 
+# Grid5000 Proxy ports where the datasources are reachable for grafana.
+# These values most certain do not need to be adjusted, unless their
+# config in ../configs/etc/* is changed.
+# Doc: https://www.grid5000.fr/w/HTTP/HTTPs_access
 PROMETHEUS_G5K_PROXY_PORT=http8080
 LOKI_G5K_PROXY_PORT=http
 
+# Exchange database configuration
 DB_NAME=taler-exchange
 DB_USER=taler
 DB_PASSWORD=
 
-NUM_WALLET_HOSTS=3
-
-# Initial number of wallets to start in parallel per host
-# This is a bulk size
-# running ./root/scripts/wallet.sh again will start another bulk
-# default = 10
-# Start another bunch with ./wallet.sh <NUN>
+# Initial number of wallets to start in parallel per host.
+# This is a bulk size with default = 10
+# Start another bunch with `taler-perf start wallet <N>`
 NUM_WALLET_PROCESSES=10
 
-# Initial number of exchange processes to run
+# Initial number of exchange processes to run.
 # default = 10
-# Start another bunch with ./exchange.sh <NUM> AND ./proxy.sh <NUM>
+# Start another bunch with `taler-perf start exchange <N>`
 NUM_EXCHANGE_PROCESSES=1
+
+# Number of wirewatch processes to run
+# This setting is static, default = 1
 NUM_WIREWATTCH_PROCESSES=1
 
 # If prometheus node exporter should be enabled
+# Most certainly this is true, since otherwise no overview
+# of services and running wallets can be generated in grafana.
 ENABLE_EXPORTERS=true
 
-DYNDNS_KEY=
-GRAFANA_HOST=
+# Host where grafana is reachable including scheme and port.
+GRAFANA_HOST=https://147.87.255.221:3000
+# API key for grafana
+# Needs admin level since datasources need to be updated.
+# This can be generated by a grafana admin in 'Configuration->API keys->Add 
API key'
 GRAFANA_API_KEY=
diff --git a/experiment/experiment-specification.yml 
b/experiment/experiment-specification.yml
old mode 100755
new mode 100644
index 11f8e3f..6881aea
--- a/experiment/experiment-specification.yml
+++ b/experiment/experiment-specification.yml
@@ -3,17 +3,16 @@ rspec:
   - bundled: infra.rspec
 upload: 
   - bundled: .env
+    permission: "664"
   - bundled: scripts
-    permission: "774"
-  - bundled: taler-perf.sh
-    permission: "700"
+    path: ~/scripts
+    permission: "775"
   # Contains information about allocated nodes
   - meta: experiment-info.json
 execute:
   # Setup DNS and Environment config
-  - bundled: setup.sh
-  # Clear the DNS-Zone
-  - bundled: cleardns.sh
-    nodes: [Exchange]
+  - path: ~/scripts/setup.sh
+  - path: ~/scripts/dns.sh
+    nodes: [DNS]
   # Execute node specific code
-  - bundled: run.sh
+  - path: ~/scripts/run.sh
diff --git a/experiment/infra.rspec b/experiment/infra.rspec
index 01c2d7c..b6a8e6d 100644
--- a/experiment/infra.rspec
+++ b/experiment/infra.rspec
@@ -1,11 +1,11 @@
 <?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3"; type="request" 
generated_by="jFed RSpec Editor" generated="2021-11-18T11:33:37.904+01:00" 
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"; 
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"; 
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"; 
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"; 
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1"; xmlns: 
[...]
+<rspec xmlns="http://www.geni.net/resources/rspec/3"; type="request" 
generated_by="jFed RSpec Editor" generated="2021-11-22T19:20:29.068+01:00" 
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"; 
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"; 
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"; 
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"; 
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1"; xmlns: 
[...]
   <node client_id="DB" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
     <sliver_type name="raw-pc">
       <disk_image 
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
     </sliver_type>
     <hardware_type name="grvingt-nancy"/>
-    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="156.0" 
y="70.5"/>
+    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="156.0" y="70"/>
   </node>
   <node client_id="Exchange" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
     <sliver_type name="raw-pc">
@@ -19,7 +19,7 @@
       <disk_image 
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
     </sliver_type>
     <hardware_type name="grvingt-nancy"/>
-    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="422.0" 
y="72.5"/>
+    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="422.0" y="70"/>
   </node>
   <node client_id="Proxy" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
     <sliver_type name="raw-pc">
@@ -40,4 +40,11 @@
     </sliver_type>
     <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="554.5" 
y="156.5"/>
   </node>
+  <node client_id="DNS" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
+    <sliver_type name="raw-pc">
+      <disk_image 
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
+    </sliver_type>
+    <hardware_type name="grvingt-nancy"/>
+    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="638.0" y="70"/>
+  </node>
 </rspec>
\ No newline at end of file
diff --git a/experiment/scripts/dns.sh b/experiment/scripts/dns.sh
new file mode 100644
index 0000000..06c01ff
--- /dev/null
+++ b/experiment/scripts/dns.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -eux
+
+# Stop dnsmasq just to be save
+systemctl stop dnsmasq
+systemctl restart named
+
+# Make sure the dns is ready
+sleep 5
+
+exit 0
+
diff --git a/experiment/scripts/exchange.sh b/experiment/scripts/exchange.sh
index 6a7656a..c27399c 100755
--- a/experiment/scripts/exchange.sh
+++ b/experiment/scripts/exchange.sh
@@ -39,7 +39,8 @@ then
   taler-exchange-offline upload < acct-res.json
   taler-exchange-offline upload < fee-res.json
 
-  let "NUM_WIREWATCH_PROCESSES-=1"
+  # || true is needed since when 1-1 is run let returns an error
+  let "NUM_WIREWATCH_PROCESSES-=1" || true
   for i in $(seq ${NUM_WIREWATCH_PROCESSES}); 
   do
     systemctl restart taler-exchange-wirewatch@${i}.service
@@ -53,7 +54,7 @@ RUNNING=$(ps -aux | grep "[taler]-exchange-httpd" | wc -l)
 
 for i in $(seq ${NUM_PROCESSES});
 do
-  let "i+=${RUNNING}-1"
+  let "i+=${RUNNING}-1" || true
   let "i+=10000"
   systemctl restart taler-exchange-httpd@"${i}".socket 
taler-exchange-httpd@"${i}".service
 done
diff --git a/experiment/scripts/log-save.sh b/experiment/scripts/log-save.sh
deleted file mode 100755
index bbdfe74..0000000
--- a/experiment/scripts/log-save.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-# Runs logrotate on the logs written to LOG_DIR
-# Assumes rsyslog to be configured to log files there
-
-LOG_DIR=/tmp/taler
-
-EXPORT_DIR=/home/${G5K_USER}/taler-logs
-
-if [ ! -d "${EXPORT_DIR}" ]; then
-  mkdir "${EXPORT_DIR}"
-fi
-
-logrotate /etc/logrotate.d/taler
-
-TS=$(date +%s)
-
-if [ -d "${LOG_DIR}" ]; then
-  for FILE in $(find ${LOG_DIR} -iname "*.gz"); do
-    mv ${FILE} ${EXPORT_DIR}/$(basename -- ${FILE%.gz}.${TS}.gz)
-  done
-fi
diff --git a/experiment/scripts/monitor.sh b/experiment/scripts/monitor.sh
index 0b15817..f003a32 100755
--- a/experiment/scripts/monitor.sh
+++ b/experiment/scripts/monitor.sh
@@ -2,11 +2,12 @@
 set -ex
 
 source ~/scripts/helpers.sh
+source ~/.env
 
 if [[ "$1" == "init" ]];
 then
   AUTH_HEADER="Authorization: Bearer ${GRAFANA_API_KEY}"
-  GRAFANA_API="https://$(host ${GRAFANA_HOST} | sed -n 1p | awk '{print 
$4}'):3000/api"
+  GRAFANA_API="${GRAFANA_HOST}/api"
   
   if ! curl -k -f -H "${AUTH_HEADER}" \
     "${GRAFANA_API}/datasources" \
diff --git a/experiment/run.sh b/experiment/scripts/run.sh
similarity index 96%
rename from experiment/run.sh
rename to experiment/scripts/run.sh
index 85414fe..2f08fb6 100644
--- a/experiment/run.sh
+++ b/experiment/scripts/run.sh
@@ -3,12 +3,12 @@
 set -euax
 
 # They start the scripts with /bin/bash -c
-source .env
+source ~/.env
 
 # Set a dynamic domain name in our own dns
 # argument: the domain to be added
 function set_ddn() {
-  nsupdate -k /root/ddns.key -v << EOF
+  nsupdate -v << EOF
 server ${DNS_HOST}
 zone ${DNS_ZONE}
 update add $1 3600 A $(hostname -I)
@@ -74,6 +74,8 @@ case "${HOSTNAME}" in
     enable_logbackup
     exec ~/scripts/proxy.sh init
     ;;
+  ${DNS_HOST})
+    ;;
   ${WALLET_HOSTS}) 
     set_host wallet
     set_ddn "wallet.$(hostname | cut -d '.' -f1).${DNS_ZONE}"
diff --git a/experiment/scripts/setup.sh b/experiment/scripts/setup.sh
new file mode 100644
index 0000000..1021cb8
--- /dev/null
+++ b/experiment/scripts/setup.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+# Setup nodes for the experiment
+set -eua
+
+echo "G5K_USER=$(cat ~/experiment-info.json | jq -r '.user.name')" >> ~/.env
+
+source ~/.env
+# Add the environment config for following shells
+cat ~/.env | grep -v API_KEY | tee -a /etc/environment
+
+set -x
+
+if [[ "${DNS_HOST}" != *-*.*.grid5000.fr ]]; then
+  echo "DNS_HOST must be set completely!"
+fi
+
+LOG_DIR=/home/${G5K_USER}/taler-logs
+
+if [ -d ${LOG_DIR} ]; then
+  rm -rf ${LOG_DIR}/*
+elif [ -d /home/${G5K_USER} ]; then 
+  mkdir ${LOG_DIR}
+else
+  LOG_DIR=/tmp/taler && mkdir ${LOG_DIR}
+fi
+
+G5K_HOME=/root/taler/grid5k
+
+NS_IP=$(host ${DNS_HOST} | sed -n 1p | awk '{print $4}')
+
+# Temporarily checkout to the feature branch
+cd "${G5K_HOME}" && git checkout node-setup && git pull && cd
+
+# Remove default nginx config
+rm /etc/nginx/sites-enabled/default > /dev/null 2>&1 || true
+
+# Override default configurations with the one from this Git.
+cp -r "${G5K_HOME}"/configs/* /
+
+# Send all logs about taler to promtail on the monitoring node
+sed -i -e "s/<MONITOR_DOMAIN_HERE>/${MONITOR_DOMAIN}/g" \
+       -e "s|<LOG_DIR_HERE>|${LOG_DIR}|g" \
+       /etc/rsyslog.d/taler.conf
+
+sed -i "s|<LOG_DIR_HERE>|${LOG_DIR}|g" \
+        /etc/logrotate.d/taler
+
+sed -i "s/<ARGUMENTS_HERE>/${EXCHANGE_ARGS}/g" \
+        /etc/default/taler-exchange
+
+if ! grep -Fxq "server=${NS_IP}" /etc/dnsmasq.conf ; then
+  echo "server=${NS_IP}" >> /etc/dnsmasq.conf 
+fi
+
+if ! grep -Fxq "nameserver 127.0.0.1" /etc/resolv.conf ; then
+  mv /etc/resolv.conf /etc/resolv.conf.bak
+  echo "nameserver 127.0.0.1" > /etc/resolv.conf
+fi
+
+BIND_SERVERS=$(grep nameserver /etc/resolv.conf.bak | awk '{print $2}' ORS='; 
')
+sed -i "s/<DNS_ZONE_HERE>/${DNS_ZONE}/g" \
+        /etc/bind/named.conf.local
+sed -i "s/<GRID_DNS_HERE>/${BIND_SERVERS}/g" \
+        /etc/bind/named.conf.options
+sed -i "s/<DNS_ZONE_HERE>/${DNS_ZONE}/g" \
+        /var/lib/bind/perf.taler
+
+systemctl daemon-reload
+
+if [[ "${HOSTNAME}" != "${DNS_HOST}" ]]; then
+  systemctl restart dnsmasq
+fi
+
+if [ -f ~/scripts/taler-perf.sh ]; then
+  mv ~/scripts/taler-perf.sh /usr/local/bin/taler-perf
+fi
+
+exec ~/scripts/createusers.sh
+
+exit 0
diff --git a/experiment/taler-perf.sh b/experiment/scripts/taler-perf.sh
similarity index 100%
rename from experiment/taler-perf.sh
rename to experiment/scripts/taler-perf.sh
diff --git a/experiment/setup.sh b/experiment/setup.sh
deleted file mode 100644
index 4655a9e..0000000
--- a/experiment/setup.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-# Setup nodes for the experiment
-set -euax
-
-source .env
-# Add the environment config for following shells
-cat .env | tee -a /etc/environment
-echo "G5K_USER=$(cat experiment-info.json | jq -r '.user.name')" >> 
/etc/environment
-
-G5K_HOME=/root/taler/grid5k
-
-NS_IP=$(host ${DNS_HOST} | sed -n 1p | awk '{print $4}')
-
-# Temporarily checkout to the feature branch
-cd "${G5K_HOME}" && git checkout node-setup && git pull && cd
-
-# Remove default nginx config
-rm /etc/nginx/sites-enabled/default > /dev/null 2>&1 || true
-
-# Override default configurations with the one from this Git.
-cp -r "${G5K_HOME}"/configs/* /
-
-# Send all logs about taler to promtail on the monitoring node
-sed -i "s/<MONITOR_DOMAIN_HERE>/${MONITOR_DOMAIN}/g" \
-       /etc/rsyslog.d/taler.conf
-
-sed -i "s/<ARGUMENTS_HERE>/${EXCHANGE_ARGS}/g" \
-        /etc/default/taler-exchange
-
-# Add the dyndns key which will be used by the dns update
-cat << EOF > /root/ddns.key 
-key "ddns-key.perf.taler" {
-  algorithm hmac-sha256;
-  secret "${DYNDNS_KEY}";
-};
-EOF
-
-if ! grep -Fxq "server=/${DNS_ZONE}/${NS_IP}" /etc/dnsmasq.conf ; then
-  echo "server=/${DNS_ZONE}/${NS_IP}" >> /etc/dnsmasq.conf 
-  # Read grid5k DNS servers from resolv.conf and add them to dnsmasq
-  grep nameserver /etc/resolv.conf | \
-    awk '{print "server="$2}' \
-    >> /etc/dnsmasq.conf
-fi
-
-if ! grep -Fxq "nameserver 127.0.0.1" /etc/resolv.conf ; then
-  mv /etc/resolv.conf /etc/resolv.conf.bak
-  echo "nameserver 127.0.0.1" > /etc/resolv.conf
-fi
-
-systemctl daemon-reload
-systemctl restart dnsmasq
-
-if [ -f ~/taler-perf.sh ]; then
-  mv ~/taler-perf.sh /usr/local/bin/taler-perf
-fi
-
-exec ~/scripts/createusers.sh
-
-exit 0
diff --git a/image/README.md b/image/README.md
new file mode 100644
index 0000000..6cc5523
--- /dev/null
+++ b/image/README.md
@@ -0,0 +1,53 @@
+# Grid5000 Environment creation
+
+Official documentation can be found on these links:
+
+* [Grid5000 
Environment](https://www.grid5000.fr/w/Environments_creation_using_Kameleon_and_Puppet)
+* [Grid5000 Kadeploy](https://www.grid5000.fr/w/Advanced_Kadeploy)
+* [Kameleon Documentation](http://kameleon.imag.fr/grid5000_tutorial.html)
+
+## Manual Build
+
+### Prerequisites
+
+To build the image, the following repositories need to be added as dist 
archives in 
+`grid5000/steps/data`
+
+* [gnunet](https://git.gnunet.org/gnunet.git): gnunet.tar.gz
+* [taler-exchange](https://git.taler.net/exchange.git): exchange.tar.gz
+* [taler-merchant](https://git.taler.net/merchant.git): merchant.tar.gz
+* [taler-wallet-core](https://git.taler.net/wallet-core.git): wallet.tar.gz
+
+Replace `<G5K_USER> `and `<G5K_HOST>` in `taler-debian11.yaml` in the 
following line:
+`g5k_tar_path: 
"http://public.<G5K_HOST>.grid5000.fr/~<G5K_USER>/taler-debian11.tar.zst"`
+
+**G5K_USER**: Your Grid5000 username.
+**G5K_HOST**: The host where the image will be copied to in the last step.
+
+Alternatively they can be replaced after the build in 
`build/taler-debian11/taler-debian11.dsc`
+
+### Build
+`kameleon build taler-debian11`
+
+**NOTE** Make sure that all dependencies listed in Grid5000 Environments are 
installed
+
+### Deploy
+
+Copy the image to a Grid5000 node:
+
+```bash
+cd build/taler-debian11
+scp taler-debian11.* <G5K_USER>@access.grid5000.fr:<G5K_NODE>/public/
+```
+
+**NOTE** G5K_USER and G5K_HOST should match the ones in taler-debian11.yaml
+
+## Usage
+
+Place `http://public.lyon.grid5000.fr/~<G5K_USER>/taler-debian11.dsc` in the 
nodes disk image field
+in jFed.
+
+## Automated Build
+
+The image build can be done automatically by using the docker image in 
`../docker`.
+Please refer to the README in there for instructions.
diff --git a/image/taler-debian11.yaml b/image/taler-debian11.yaml
index e7d424c..dec6fb8 100644
--- a/image/taler-debian11.yaml
+++ b/image/taler-debian11.yaml
@@ -40,9 +40,9 @@ global:
   ## Environment visibility
   # g5k_visibility: "shared"
   taler_build_packages: "recutils autoconf uncrustify autopoint libtool 
python3-pip libgcrypt20-dev libjansson-dev libcurl4-gnutls-dev libsodium-dev 
libidn2-dev libunistring-dev libmicrohttpd-dev libsqlite3-dev libqrencode-dev 
valgrind libpq-dev texinfo gdb make npm zip python3-distutils pkg-config"
-  taler_packages: "nginx postgresql-13 postgresql-contrib curl jq bc sudo git 
zile dnsutils prometheus-postgres-exporter prometheus-nginx-exporter net-tools 
netcat parallel nodejs tshark dnsmasq"
+  taler_packages: "nginx postgresql-13 postgresql-contrib curl jq bc sudo git 
zile dnsutils prometheus-postgres-exporter prometheus-nginx-exporter net-tools 
netcat parallel nodejs tshark dnsmasq bind9"
   taler_packages_no_recommends: "prometheus prometheus-node-exporter"
-  taler_disable_services: "nginx postgresql prometheus 
prometheus-postgres-exporter prometheus-nginx-exporter prometheus-node-exporter"
+  taler_disable_services: "nginx postgresql prometheus 
prometheus-postgres-exporter prometheus-nginx-exporter prometheus-node-exporter 
named"
   taler_loki_version: "v2.4.0"
   gnunet_tar: gnunet.tar.gz
   exchange_tar: exchange.tar.gz
diff --git a/notes.txt b/notes.txt
index d4200b4..d98530f 100644
--- a/notes.txt
+++ b/notes.txt
@@ -18,5 +18,8 @@
     The proxy server could not handle the request<p>Reason: <strong>Error 
reading from remote server</strong></p></p>
 * SSH login from rpesc viewer not possible
 * SSH login often fails - must provide password for cert and user (user 
password is not the one I speciefied, neither the default for the root user of 
the image) - or connection closed ... - BUG in allocation code according to 
email
-* espec - possibility to rerun and override previously uploaded files
+* espec documentation incomplete and contains unknown key, exaple: 
execute.local dir.sudo
+* espec dir creation does not work - hangs at Dir "null" Creations at ...
+* espec - possibility to rerun and override previously uploaded files 
(directory type)
+* espec - states 'permissions' as keyword where it is really 'permission' only
 * ansible not working with debian 11 - install script fails - but even when 
installed manually it hangs in preparing ansible dir

-- 
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]