Users may request their preferred type of virtual machine (VM), including the operating system and the number of cores and amount of memory.

  • Multiple occurrences of that VM may also be requested.
  • Users are given user level access to VM’s (not root).


ADAPT’s system administration team work with users to understand their requirements and provision resources.

*When VM’s are no longer required, please notify the ADAPT team so that VM’s can be spun down and resources can be re-provisioned.



The following Operating Systems are available in ADAPT:

  • Debian Jessie & Stretch Linux
  • CentOS6 & CentOS7 Linux
  • Windows Server 2012 R2
  • Ubuntu - Coming Soon

Software (Reperesentative)

ADAPT users have employed the following software in their work:

AMES Stereo Pipeline ArcGIS Desktop
eCognition ArcGIS Pro
Ganglia eCognition (user must provide license)
Grads IDL (user must provide license)
IDL (limited licenses available) MATLAB (user must provide license)
Imagemagik Qgis
Mapserver R/R Studio
MATLAB (user must provide license)
NetCDF/HDF libraries

When additional software is needed, users may load the software in local, personal directories. If the software requires elevated privileges, users may seek out assistance from ADAPT system administrators.

Some of these tools have been made accessible through the module utility. This allows the user to log-in, run a few commands, and load pre-installed software into their environment, and begin using the software that they require. To learn more about the module command and the software it supports on ADAPT, go to the following page:


ADAPT Self-Provisioning

Introduction to ADAPT Self-Provisioning
ADAPT now has the capability for users to create and delete VMs directly, without needing to open a ticket with NCCS staff. This provides the ability to quickly burst capacity when it is needed, and shut it down when it is not in use. Here is how it works: The PI for each project (or tenant), can designate any number of Tenant Managers, who are given the ability to create and delete VMs directly.

Dynamic VMs are meant to be quickly and easily created and destroyed. The NCCS requests that you shelve or delete dynamic VMs when you are not using them, and the NCCS reserves the right to power off dynamic VMs that we believe are not in use. The base images used by dynamic VMs are kept fully patched and up to date with security policies. If there is a security issue with a node, deleting the node and building a new one with the same name will effectively patch your node.

Self-provisioned VMs have full access to the ADAPT data sets and all shared applications. They also have full access to the entire Python ecosystem using the conda environment. If you need specific applications installed, contact user support. If possible, the application might be installed in a shared environment and available via modules. If that is not possible, the application will need to be installed on static VMs that are created by NCCS staff.

// Using the Web Dashboard

Place a NAMS request for 'GSFC NCCS OpenStack Dashboard'. Following approval, log into the OpenStack Dashboard. From the 'Domain' drop down, select 'NCCS'. Log in with your NCCS username and password.

On the main Dashboard, select "Instances" on the left, and then the "Launch Instance" button.

In the Launch Instance Details pane the pops up, enter the host name for the VM that you want to create. Fill in a Description if you wish, and leave the Availability Zone at "compute" and the Count as "1". Then select "Source" on the left:

The Source pane is where you select which operating system you wish to use. Initially, there should be both CentOS and Debian for you to use. Look at the bottom for the list of available OS images below where it says "Available". Decide on the one you want, and click the up arrow on the far right.

This should add the image under "Allocated" in the middle of the window.

Then select "Flavor" at the far left.

Flavor is the size of VM that you wish to create. VCPUs is the number of cores, and RAM lists the amount of memory. Similar to the previous pane, decide on which flavor you would like, and click the up arrow on the far right of that item in the list. This should add it under "allocated".

Finally, select "Security Groups".

By default, your VMs will only accept connections from each other, and you will not be able to connect to your image from adaptlogin. However, you will want to ssh to your machine, so under the list of Available security groups, find the group that will "Allow SSH", and hit the up arrow next to that. At this point, it should have both the "Default" and the "Allow SSH" security groups, as shown below. Now, hit "Launch Instance" in the bottom right.

After a brief pause, it should give you a green "Success" message, and it will take you to the "Instances" tab of the Dashboard. You should see your new VM in the list. Note the value in the IP address column for your new VM. Log on to 'adaptlogin', and from there, you should be able to ssh to the IP address provided. From the Dashboard, you should be able to delete your instance from the drop down box at the far right.

Further documentation for the OpenStack Dashboard.

// Using the CLI

First, you need to set up your environment. Place a NAMS request for 'GSFC NCCS OpenStack Dashboard'. Following approval, log into the OpenStack Dashboard. From the 'Domain' drop down, select 'NCCS'. Log in with your NCCS username and password. Then, in the upper right, select the drop down next to your user name, and hit "OpenStack RC File v3". Copy the file you just downloaded to your home directory on adaptlogin. Source the file you just downloaded like this:

$ . tenantname-openrc.sh

When it prompts you for your OpenStack password, use your NCCS password.

Starting a new VM
In OpenStack, a Flavor is the size of a VM, and the types of resources available to it. To see the available flavor, run:

$ openstack flavor list
| ID                                   | Name          | RAM    | Disk | Ephemeral | VCPUs | Is Public |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | adapt.nano    |   6144 |  150 |         0 |     1 | True      |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | adapt.small   |  12288 |  150 |         0 |     2 | True      |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | adapt.quarter |  49152 |  150 |         0 |     4 | True      |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | adapt.half    | 122880 |  150 |         0 |    10 | True      |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | adapt.whole   | 245760 |  150 |         0 |    20 | True      |

To see the types of OS images, run

$ openstack image list
| ID                                   | Name                                     | Status |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | NCCS-ADAPT-USP-CentOS-7-2019-09-10       | active |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | NCCS-ADAPT-USP-Debian-Stretch-2019-09-10 | active |

By default, servers are only accessible inside of your private network, but you will want to be able to SSH to this node. To do this, you need to know the name of the Allow SSH security group. Run this command, and note the name of the Allow SSH security group:

$ openstack security group list
| ID                                   | Name                | Description                       | Project     |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | tenantname_rdp      | tenantname Allow RDP              | xxxxxxxxxxx |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | tenantname_ssh      | tenantname Allow SSH              | xxxxxxxxxxx |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | default             | tenantname default security group | xxxxxxxxxxx |

Now, to start a new instance, or VM, choose the Flavor and Image you desire plus the security group name from the output of the above commands, and then run:

$ openstack server create --image NCCS-ADAPT-USP-CentOS-7-2019-09-10 --flavor adapt.nano --security-group tenantname_ssh --security-group default test

To see your current instances, run:

$ openstack server list
| ID                                   | Name | Status | Networks                 | Image                              | Flavor     |
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | test | ACTIVE | tenant_internal=10.x.y.z | NCCS-ADAPT-USP-CentOS-7-2019-09-10 | adapt.nano |

To connect to your server, ssh to the IP address provided in the above command, under "Networks".

$ ssh 10.x.y.z

Stopping and Deleting VMs
Once you are logged into one of your own nodes, you should be able to access your other nodes directly using their hostname.
If you want to stop your running VM, simply run:

$ openstack server shelve test

You can verify that your server is stopped by running "openstack server list". Restart your VM with:

$ openstack server start test

When you are done with your VM, you can delete it with:

$ openstack server delete test

Additional documentation on the CLI is here.



Learn how to access and login to a virtual machine on the ADAPT system. ADAPT users can customize their VM experience by selecting their preferred operating system. Instructions include how to access an ADAPT Linux VM from Linux and Windows operating systems, and how to access a Windows ADAPT VM directly through a web browser.

WINDOWS USERS Guacamole MobaXterm application
MAC USERS Guacamole $ ssh adaptlogin.nccs.nasa.gov
LINUX USERS Guacamole $ ssh adaptlogin.nccs.nasa.gov



  • ArcGIS Desktop/Pro – Global imaging software (Windows)
  • Ganglia – Resource monitoring software (Linux)
  • Guacamole - Web browser access to Windows virtual machines
  • pdsh – Parallel shell to launch jobs across multiple VM’s simultaneously
  • SLURM Workload Manager – job scheduler/running jobs


  • Filezila - File transfer system (Mac, Windows, Linux)
  • MobaXterm - ssh client with Xserver (Linux access through Windows)
  • Qgis – Global imaging software (Linux)
  • WinSCP - File transfer system (Windows)


  • Python - high-level interpreted programming language.
  • GPUs plus Machine-learning - ADAPT also offers a subset of systems that have been upgraded to use high-speed storage and GPUs to enable high-performance computing. These systems also come equipped with pre-installed ML tools like TensorFlow, Pytorch, RapidsAI, and much more!


ADAPT provides users access to centralized, commonly used data collections such as LANDSAT, MODIS, MERRA/MERRA2, and NGA*.

  • Datasets are not static–additional data is continually being added.
  • If users identify new data that is of interest to an expanded audience, it can be staged for general access as well.

*Note: Access to NGA data requires a signed agreement and adherence to specific usage policies.



All file systems on ADAPT, including home and nobackup, are shared and accessible across all VM’s. 



ADAPT virtual environment was originally created for ABOVE users to conduct research. It has since expanded and evolved to support numerous NCCS users.


If you are an ABOVE user new to ADAPT, please follow these instructions to gain access.



See Data Collections page to see available ABOVE data collections.



When researchers publish research based on the use of NCCS resources, please acknowledge these NASA-provided resources with language similar to this example:

“Resources supporting this work were provided by the NASA High-End Computing (HEC) Program through the NASA Center for Climate Simulation (NCCS) at Goddard Space Flight Center.”


Please see the PGC Imagery Utilities Guide developed in conjunction with the Polar Geospatial Center detailing how to use the PGC Imagery Utilities on ADAPT.


new users icon

See information about account eligibility, set-up, and maintenance.