Jetstream Atmosphere EZ tools

Instances launched using the Atmosphere web user interface are by default installed with the EZ command line tools, designed to streamline some common tasks and functions.

There are a number of different ez commands, including:

  • ez → a help menu listing available tools
  • ezj → run jupyter-notebook with python detection (Recommend m1.medium or larger)
  • ezjh → run jupyterhub (currently requires CyVerse CAS credentials) (Recommend m1.medium or larger)
  • ezd → install docker (Only supported on Ubuntu 14+ and CentOS 7)
  • ezs → install singularity (Only supported on Ubuntu 14+ and CentOS 6+)
  • unban → list blocked IP addresses or remove blocks for IP addresses trying to access the instance 
  • myip → set environment variables $JETSTREAM_PUBLIC_IP and $CYVERSE_PUBLIC_IP to the public IP Address and display the same to the screen 

eza help menu listing available tools

Options to pass to 'ez':

update -> perform a full update of the ez facility

Example of usage
ez update

<TOP>

ezj: Launching Jupyter Notebook within an instance (detailed description)

Options to pass to 'ezj':


-q : do not attempt to install, just launch jupyter!

-R : install the R kernel (-r also works)

-2 : force python 2 kernel (not compatible with -3 option)

-3 : force python 3 kernel (not compatible with -2 option)

-u : force update of anaconda (default is no update)

-p : takes a directory as an option; install in a different location other than default (/home)

NOTE: if you set this, you must pass it again for future calls

*** You do not need to run ezj more than once. You can start/restart a notebook with the commands: "ezj -q"  or "jupyter-notebook" .


Example of usage
ezj -u -R

ezj -p /opt -u

<TOP>

ezjhrun jupyterhub with CyVerse CAS integration

Options to pass to 'ezjh':

none

NOTE: Only run if you have CyVerse access and are familiar with CAS

The installation may take up to 10 minutes to complete

*** You do not need to run ezjh more than once. You can start/restart a hub with the command:  jupyterhub .

<TOP>

ezdinstall docker

Options to pass to 'ezd':

-p : enable portainer on port 9000

Example of usage
[js-host] MY-USER ~-->ezd

* Updating ez docker and installing docker (this may take a few minutes, coffee break!)
remote: Counting objects: 25, done.
remote: Total 25 (delta 0), reused 0 (delta 0), pack-reused 25
Unpacking objects: 100% (25/25), done.
* docker was updated successfully

You shouldn't need to use ezd again on this system, unless you want to update docker itself

NOTE: If you'd like to run docker as your system user and you can't (i.e. get a permission denied),
  you can use the following command: sudo usermod -a -G docker myusername
  replace 'myusername' with your login. You may need to logout and login again.

To test docker, type: docker run hello-world

[js-host] MY-USER ~-->docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.so
ck/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
[js-host] MY-USER ~-->sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/
[js-host] MY-USER ~-->sudo docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
22dc81ace0ea: Extracting [==================================================>]  42.96MB/42.96MB
1a8b3c87dba3: Download complete 
22dc81ace0ea: Pull complete 
1a8b3c87dba3: Pull complete 
91390a1c435a: Pull complete 
07844b14977e: Pull complete 
b78396653dae: Pull complete 
Digest: sha256:e348fbbea0e0a0e73ab0370de151e7800684445c509d46195aef73e090a49bd6
Status: Downloaded newer image for ubuntu:latest
oot@f35a04ce5c1c: /root@f35a04ce5c1c:/# 
oot@f35a04ce5c1c: /root@f35a04ce5c1c:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@f35a04ce5c1c: /root@f35a04ce5c1c:/# exit
exit
[js-host] MY-USER ~-->


<TOP>

ezsinstall singularity

Options to pass to 'ezs':

none

Example of usage
[js-host] MY-USER ~-->ezs

* Updating ez singularity and installing singularity (this may take a few minutes, coffee break!)
remote: Counting objects: 11, done.
remote: Total 11 (delta 0), reused 0 (delta 0), pack-reused 11
Unpacking objects: 100% (11/11), done.
* singularity was updated successfully

You shouldn't need to use ezs again on this system, unless you want to update singularity itself

To test singularity, type: singularity -v run library://sylabsed/examples/lolcow
Hint: it should output a cowfucious saying:
[js-host] MY-USER ~-->singularity -v run library://sylabsed/examples/lolcow
INFO:    Downloading library image
VERBOSE: HOME=/home/MY-USER
VERBOSE: Set messagelevel to: 4
VERBOSE: Starter initialization
....
 ____________________________________
/ They have been at a great feast of \
| languages, and stolen the scraps.  |
|                                    |
| -- William Shakespeare, "Love's    |
\ Labour's Lost"                     /
 ------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


<TOP>

unbanlist blocked IP addresses or remove blocks for IP addresses trying to access the instance 

usage: unban [-l] [-i ip-address] [-a]

-l : print all currently banned ips
-i : unban a single ip address
-a : unban all ip addresses

Note: use only one of -l, -i, or -a at a time


<TOP>

myipset environment variables $JETSTREAM_PUBLIC_IP and $CYVERSE_PUBLIC_IP to the public IP Address and display the same to the screen  


Example of usage
[js-156-82] MY-USER ~-->myip
149.165.156.82
[js-156-82] MY-USER ~--> echo $JETSTREAM_PUBLIC_IP
149.165.156.82