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