Accessing multiple nodes in a private network without DNS using Jupyter Notebook
- Jan. 30, 2020 by
- Paul Ruth
Authors: Paul Ruth and Mauricio TavaresLarge distributed software systems often require domain name resolution so applications can refer to nodes by name (hostname) rather than IP address. Typically this is achieved through Domain Name System (DNS). For temporal experiments it is more expedient to configure the /etc/hosts file in each node rather than deploying an additional node as the experiment’s DNS server. However, if the number of nodes increases past two, manually configuring each node and keeping track of the IPs and hostnames becomes geometrically time-consuming and prone to mistakes.
A Jupyter notebook has been added to your Chameleon Jupyter Hub environment to show how to automate deploying a server and several clients which are configured with the names and IPs for every single other host in a custom isolated network. Also included are examples of several tricks you might find useful for deploying a complex experiment.
In addition to showing how to configure /etc/hosts, this notebook presents useful command line (CLI) examples of:
Creating leases with multiple reservations
Reserving floating IPs
Creating isolated networks
Adding subnet and router to an isolated network so it can be accessed from outside
Using SSH/SCP to create and upload node configurations.
The new Jupyter notebook is accessible at: https://jupyter.chameleoncloud.org/hub/user-redirect/lab/tree/notebooks/examples/configuration/UsingSSHToConfigureNameResolution.ipynb
We invite anyone interested in learning about these tips and tricks to run the notebook.