From dcb7c8743244b4010db159d7d8d794278a792b17 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 7 Jun 2017 11:27:22 +0200 Subject: tools: Update access script to use proxy The proxy command was not added to the file generated with ssh info. This adds it, and changes the access script to use it if it is there. --- rumba/model.py | 9 ++++++--- tools/rumba-access | 20 +++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/rumba/model.py b/rumba/model.py index 941cba8..d1b9988 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -523,8 +523,11 @@ class Experiment: def dump_ssh_info(self): f = open('ssh_info', 'w') for node in self.nodes: - f.write("%s %s %s %s\n" % (node.name, self.testbed.username, - node.ssh_config.hostname, node.ssh_config.port)) + f.write("%s;%s;%s;%s;%s\n" % (node.name, + self.testbed.username, + node.ssh_config.hostname, + node.ssh_config.port, + node.ssh_config.proxycommand)) f.close() # Examine the nodes and DIFs, compute the registration and enrollment @@ -642,7 +645,7 @@ class Server: def get_new_clients(self, interval): """ Returns a list of clients of size appropriate to the server's rate. - + The list's size should be a sample from Poisson(arrival_rate) over interval seconds. Hence, the average size should be interval * arrival_rate. diff --git a/tools/rumba-access b/tools/rumba-access index 06b0a02..4c77d2b 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash FILE=ssh_info @@ -8,24 +8,34 @@ if [ "$MACHINE_ID" == "" ]; then exit 255 fi -USER=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $2}') +USER=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $2}') if [ "$USER" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi -HOST=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $3}') +HOST=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $3}') if [ "$HOST" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi -SSH_PORT=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $4}') +SSH_PORT=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $4}') if [ "$SSH_PORT" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi +PROXY_CMD=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $5}') +if [ "$PROXY_CMD" == "" ]; then + echo "Error: Node ${MACHINE_ID} unknown" + exit 255 +fi + echo "Accessing Rumba node ${MACHINE_ID}" # -o IdentityFile=buildroot/irati_rsa -ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} +if [[ $PROXY_CMD = "None" ]]; then + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} +else + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} +fi -- cgit v1.2.3 From a530847d9a47dceb121eac00d42f456239f643a6 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 7 Jun 2017 11:31:24 +0200 Subject: Update README.md to use access script This changes the README so that users will use the rumba-access script. --- README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cbe1015..7d416f6 100644 --- a/README.md +++ b/README.md @@ -128,15 +128,12 @@ folder. $ eval `ssh-agent` $ ssh-add /home/morty/cert.pem +## Accessing nodes after swap-in + To access a node once the experiment swapped in, use the following - command (in the same terminal where ssh-agent was run): + command (in the same terminal where ssh-agent was run in case of jFed): - $ ssh -A -oProxyCommand="ssh -i $CERTPATH - -o StrictHostKeyChecking=no $USER@bastion.test.iminds.be - nc $NODENAME.$EXP.wall2-ilabt-iminds-be.wall2.ilabt.iminds.be 22" - $USER@$NODENAME.$EXP.wall2-ilabt-iminds-be.wall2.ilabt.iminds.be + $ $RUMBA/tools/rumba-access $NODE_NAME - where $CERTPATH is the absolute path of the certificate (e.g. - /home/morty/cert.pem), $USER is the jFed username (e.g. "ricksanchez"), - $NODENAME is the name of the node you want to access (e.g. "a"), - and $EXP is the name of the experiment (e.g. "rochefort10"). + Where $RUMBA is the location to the rumba repository and $NODE_NAME + is the name of the node to access. \ No newline at end of file -- cgit v1.2.3 From 4dced04d238234c98a7c8221c1a7c9cfb84bf88b Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 7 Jun 2017 11:52:22 +0200 Subject: rumba: Install rumba-access on setup This will install rumba-access on setup so that it can be used anywhere. --- README.md | 5 ++--- setup.py | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7d416f6..25d79fd 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,6 @@ folder. To access a node once the experiment swapped in, use the following command (in the same terminal where ssh-agent was run in case of jFed): - $ $RUMBA/tools/rumba-access $NODE_NAME + $ rumba-access $NODE_NAME - Where $RUMBA is the location to the rumba repository and $NODE_NAME - is the name of the node to access. \ No newline at end of file + Where $NODE_NAME is the name of the node to access. \ No newline at end of file diff --git a/setup.py b/setup.py index 316b6da..85760f2 100755 --- a/setup.py +++ b/setup.py @@ -20,5 +20,6 @@ setup( description="Rumba measurement framework for RINA", long_description=long_description, packages=["rumba", "rumba.testbeds", "rumba.prototypes"], - install_requires=["paramiko", "wheel", "wget"] + install_requires=["paramiko", "wheel", "wget"], + scripts = ['tools/rumba-access'] ) -- cgit v1.2.3 From 70434950970ac53fde6aa6823eb73d7f3da67904 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Thu, 8 Jun 2017 22:06:36 +0200 Subject: prototypes: irati: remove obsolete code --- rumba/prototypes/irati.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/rumba/prototypes/irati.py b/rumba/prototypes/irati.py index 3669320..462933b 100644 --- a/rumba/prototypes/irati.py +++ b/rumba/prototypes/irati.py @@ -85,12 +85,6 @@ class Experiment(mod.Experiment): ssh.execute_proxy_commands(self.testbed, node.ssh_config, cmds, time_out=None) - def setup(self): - for node in self.nodes: - ssh.execute_command(self.testbed, node.ssh_config, - "sudo nohup ipcm &> ipcm.log &", - time_out=None) - def bootstrap_network(self): """Creates the network by enrolling and configuring the nodes""" for node in self.nodes: @@ -104,8 +98,6 @@ class Experiment(mod.Experiment): def bootstrap_prototype(self): logger.info("setting up") - self.setup() - logger.info("software initialized on all nodes") self.conf_files = self.write_conf() logger.info("configuration files generated for all nodes") self.bootstrap_network() -- cgit v1.2.3 From a427bde346383f8b414e3f49680d40cd1e94d321 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Thu, 8 Jun 2017 22:19:05 +0200 Subject: tools: rumba-access: rearrange script --- tools/rumba-access | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/rumba-access b/tools/rumba-access index 4c77d2b..e4ab468 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -32,10 +32,12 @@ if [ "$PROXY_CMD" == "" ]; then exit 255 fi -echo "Accessing Rumba node ${MACHINE_ID}" -# -o IdentityFile=buildroot/irati_rsa if [[ $PROXY_CMD = "None" ]]; then - ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} + PROXY_CMD="" else - ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} + PROXY_CMD="-oProxyCommand=$PROXY_CMD" fi + +echo "Accessing Rumba node ${MACHINE_ID}" +# -o IdentityFile=buildroot/irati_rsa +ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_CMD} -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3 From a10ec3b3a963c486344a90214c162e118d801c47 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Mon, 12 Jun 2017 13:14:47 +0200 Subject: tools: Fix rumba access script This fixes some errors in the rumba access script. --- tools/rumba-access | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/rumba-access b/tools/rumba-access index e4ab468..075caf0 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -34,10 +34,11 @@ fi if [[ $PROXY_CMD = "None" ]]; then PROXY_CMD="" + PROXY_PREF="" else - PROXY_CMD="-oProxyCommand=$PROXY_CMD" + PROXY_PREF="-oProxyCommand=" fi echo "Accessing Rumba node ${MACHINE_ID}" # -o IdentityFile=buildroot/irati_rsa -ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_CMD} -p ${SSH_PORT} ${USER}@${HOST} +ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_PREF}"${PROXY_CMD}" -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3 From a5e67722327ecb2046798e6ad9a103fb42cb09e8 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Tue, 13 Jun 2017 09:42:01 +0200 Subject: tools: Revert rumba-access to initial state This reverts the script to its original state since it was not functioning properly. --- tools/rumba-access | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tools/rumba-access b/tools/rumba-access index 075caf0..1cf382e 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -32,13 +32,9 @@ if [ "$PROXY_CMD" == "" ]; then exit 255 fi +echo "Accessing Rumba node ${MACHINE_ID}" if [[ $PROXY_CMD = "None" ]]; then - PROXY_CMD="" - PROXY_PREF="" + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} else - PROXY_PREF="-oProxyCommand=" + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} fi - -echo "Accessing Rumba node ${MACHINE_ID}" -# -o IdentityFile=buildroot/irati_rsa -ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_PREF}"${PROXY_CMD}" -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3