Commit 77b50c00 authored by Adam Caprez's avatar Adam Caprez
Browse files

Update anvil guide 1

parent d45d2b29
......@@ -4,46 +4,38 @@ description = "How to use Anvil, HCC's OpenStack-based cloud resource"
weight = "40"
+++
<span id="title-text"> HCC-DOCS : Anvil: HCC's Cloud </span>
============================================================
- [Overview](#overview)
- [Cloud Terms](#cloud-terms)
- [Steps for Access](#steps-for-access)
- [Backups](#backups)
Created by <span class="author"> Derek Weitzel</span>, last modified by
<span class="editor"> Adam Caprez</span> on Apr 19, 2018
- [Overview](#Anvil:HCC'sCloud-Overview)
- [Cloud Terms](#Anvil:HCC'sCloud-CloudTerms)
- [Steps for Access](#Anvil:HCC'sCloud-StepsforAccess)
- [Backups](#Anvil:HCC'sCloud-Backups)
<span
class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span>
{{% notice tip %}}
Have your account and ready to go? Visit the Anvil OpenStack web
interface at
<a href="https://anvil.unl.edu/" class="external-link">https://anvil.unl.edu/</a>
interface at https://anvil.unl.edu.
{{% /notice %}}
Overview
--------
---
### Overview
Anvil is the Holland Computing Center's cloud computing resource, based
on
the <a href="https://www.openstack.org/" class="external-link">OpenStack</a>
software.  OpenStack is a free and open-source software platform for
on the [OpenStack](https://www.openstack.org) software.  
OpenStack is a free and open-source software platform for
cloud computing.  Anvil was created to address the needs of NU's
research community that are not well served by a traditional
batch-scheduled Linux cluster environment.  Examples of use cases that
are well suited to Anvil include:
- A highly interactive environment, especially GUI applications
- Require root-level access, such as kernel modification or
virtualization work
- Alternate operating systems, such as Windows or other distributions
of Linux
- Test cluster environments for various software frameworks, such as
<a href="http://hadoop.apache.org" class="external-link">Hadoop</a>
or
<a href="https://spark.apache.org" class="external-link">Spark</a>
- Cluster applications that require a persistent resource, such as a
- A highly interactive environment, especially GUI applications
- Require root-level access, such as kernel modification or
virtualization work
- Alternate operating systems, such as Windows or other distributions
of Linux
- Test cluster environments for various software frameworks, such as
[Hadoop](http://hadoop.apache.org)
or [Spark](https://spark.apache.org)
- Cluster applications that require a persistent resource, such as a
web or database server
Using Anvil, one or more virtual machines (VMs) can be easily be created
......@@ -52,66 +44,62 @@ HCC clusters, or your own workstation once connected to the Anvil
Virtual Private Network (VPN).  Access is through standard means,
typically via SSH for Linux VMs and Remote Desktop for Windows VMs.
Cloud Terms
-----------
### Cloud Terms
There are a few terms used within the OpenStack interface and in the
instructions below that may be unfamiliar.  The following brief
definitions may be useful.  More detailed information is available in
the <a href="http://docs.openstack.org/user-guide/" class="external-link">OpenStack User Guide</a>.
- ***Project**:  *A project is the base unit of ownership in
OpenStack.  Resources (CPUs, RAM, storage, etc.) are allocated and
user accounts are associated with a project.  Within Anvil, each HCC
research group corresponds directly to a project.  Similar to
resource allocation on HCC clusters, the members of a group share
the [project's resources](13599589.html).
the [OpenStack User Guide](http://docs.openstack.org/user-guide).
- **Project**:  A project is the base unit of ownership in
OpenStack.  Resources (CPUs, RAM, storage, etc.) are allocated and
user accounts are associated with a project.  Within Anvil, each HCC
research group corresponds directly to a project.  Similar to
resource allocation on HCC clusters, the members of a group share
the [project's resources]({{< relref "what_are_the_per_group_resource_limits" >}}).
 
- ***Image***  An image corresponds to everything needed to create a
virtual machine for a specific operating system (OS), such as Linux
or Windows.  HCC creates and maintains [basic Windows and
Linux](Available-Images_13042823.html) images for convenience.
 Users can also create their own images that can then be uploaded to
OpenStack and used within the project.
- **Image**:  An image corresponds to everything needed to create a
virtual machine for a specific operating system (OS), such as Linux
or Windows.  HCC creates and maintains [basic Windows and Linux]({{< relref "available_images" >}})
images for convenience.
Users can also create their own images that can then be uploaded to
OpenStack and used within the project.
 
- ***Flavor**:*  A flavor (also known as *instance type*), defines the
parameters (i.e. resources) of the virtual machine.  This includes
things such as number of CPUs, amount of RAM, storage, etc.  There
are many instance types [available within
Anvil](Anvil-Instance-Types_13042763.html), designed to meet a
variety of needs.
- **Flavor**:  A flavor (also known as *instance type*), defines the
parameters (i.e. resources) of the virtual machine.  This includes
things such as number of CPUs, amount of RAM, storage, etc.  There
are many instance types [available within Anvil]({{< relref "anvil_instance_types" >}}),
designed to meet a variety of needs.
 
- ***Instance**:*  An instance is a running virtual machine, created
by combining an image (the basic OS) with a flavor (resources).
 That is, *Image + Flavor = Instance*.
- **Instance**:  An instance is a running virtual machine, created
by combining an image (the basic OS) with a flavor (resources).
 That is, *Image + Flavor = Instance*.
 
- ***Volume**:  *A volume is a means for persistent storage within
OpenStack.  When an instance is destroyed, any additional data that
was on the OS hard drive is lost.  A volume can be thought of
similar to an external hard drive.  It can be attached to an
instance and accessed as a second drive.  When the instance is
destroyed, data on the volume is retained.  It can then be attached
and accessed from another instance later.
- **Volume**:  A volume is a means for persistent storage within
OpenStack.  When an instance is destroyed, any additional data that
was on the OS hard drive is lost.  A volume can be thought of
similar to an external hard drive.  It can be attached to an
instance and accessed as a second drive.  When the instance is
destroyed, data on the volume is retained.  It can then be attached
and accessed from another instance later.
Steps for Access
----------------
### Steps for Access
The guide below outlines the steps needed to begin using Anvil.  Please
note that Anvil is currently in the *beta testing* phase.  While
reasonable precautions are taken against data loss, **sole copies of
precious or irreproducible data should not be placed or left on Anvil**.
1. **Request access to Anvil**
1. **Request access to Anvil**
Access and resources are provided on a per-group basis, similar to
HCC clusters.  For details, please see [What are the per group
resource limits?](13599589.html)  To begin using Anvil, the group
owner should fill out the short request form
at <a href="http://hcc.unl.edu/request-anvil-access" class="external-link">http://hcc.unl.edu/request-anvil-access</a>.
 An automated confirmation email will be sent, and an HCC staff
member will follow-up once access is available.
**
**
2. **Create SSH keys**
resource limits?]({{< relref "what_are_the_per_group_resource_limits" >}})
To begin using Anvil, the group owner should fill out the short request form
at http://hcc.unl.edu/request-anvil-access.
An automated confirmation email will be sent, and an HCC staff
member will follow-up once access is available.
2. **Create SSH keys**
OpenStack uses SSH key pairs to identify users and control access to
the VMs themselves, as opposed to the traditional username/password
combination.  SSH key pairs consist of two files, a public key and a
......@@ -123,59 +111,41 @@ precious or irreproducible data should not be placed or left on Anvil**.
it's best practice to create a dedicated pair for use with Anvil.
 The process for creating key pairs is different between Windows and
Mac.  Follow the relevant guide below for your operating system.
1. [Creating SSH key pairs on
Windows](Creating-SSH-key-pairs-on-Windows_13598839.html)
2. [Creating SSH key pairs on Mac
](Creating-SSH-key-pairs-on-Mac_13598841.html)
**
**
3. **Connect to the Anvil VPN**
1. [Creating SSH key pairs on Windows]({{< relref "creating_ssh_key_pairs_on_windows" >}})
2. [Creating SSH key pairs on Mac]({{< relref "creating_ssh_key_pairs_on_mac" >}})
3. **Connect to the Anvil VPN**
The Anvil web portal is accessible from the Internet. On the other
hand, for security reasons, the Anvil instances are not generally
accessible from the Internet. In order to access the instances from
on and off-campus, you will need to first be connected to the Anvil
VPN. Follow the instructions below to connect.
1. [Connecting to the Anvil VPN
](Connecting-to-the-Anvil-VPN_13042829.html)
1. [Connecting to the Anvil VPN]({{< relref "connecting_to_the_anvil_vpn" >}})
**
**
4. **Add the SSH Key Pair to your account**
4. **Add the SSH Key Pair to your account**
Before creating your first instance, you'll need to associate the
SSH key created in step 2 with your account.   Follow the guide
below to login to the web dashboard and add the key pair.
1. [Adding SSH Key Pairs](Adding-SSH-Key-Pairs_13599025.html)**
**
1. [Adding SSH Key Pairs]({{< relref "adding_ssh_key_pairs" >}})
**
**
5. **Create an instance
**Once the setup steps above are completed, you can create an
5. **Create an instance**
Once the setup steps above are completed, you can create an
instance within the web dashboard.  Follow the guide below to create
an instance.
1. [Creating an Instance](Creating-an-Instance_13599047.html)
1. [Creating an Instance]({{< relref "creating_an_instance" >}})
**
**
6. **Connect to your instance**
After an instance has been created, you can connect (login) and
begin to use it.  Connecting is done via SSH or X2Go for Linux
instances and via Remote Desktop (RDP) for Windows instances.
 Follow the relevant guide below for your instance and the type of
OS you're connecting from.
1. [Connecting to Windows
Instances](Connecting-to-Windows-Instances_13042841.html)
2. [Connecting to Linux Instances via SSH from
Mac](Connecting-to-Linux-Instances-from-Mac_13599097.html)
3. [Connecting to Linux instances via SSH from
Windows](Connecting-to-Linux-instances-from-Windows_13599107.html)
4. [Connecting to Linux instances using X2Go (for images with
Xfce)](Connecting-to-Linux-instances-using-X2Go_16520062.html)
**
**
7. **Create and attach a volume to your instance (optional)**
1. [Connecting to Windows Instances]({{< relref "connecting_to_windows_instances" >}})
2. [Connecting to Linux Instances via SSH from Mac]({{< relref "connecting_to_linux_instances_from_mac" >}})
3. [Connecting to Linux instances via SSH from Windows]({{< relref "connecting_to_linux_instances_from_windows" >}})
4. [Connecting to Linux instances using X2Go (for images with Xfce)]({{< relref "connecting_to_linux_instances_using_x2go" >}})
7. **Create and attach a volume to your instance (optional)**
Volumes are a means within OpenStack for persistent storage.  When
an instance is destroyed, all data that was placed on the OS hard
drive is lost.  A volume can be thought of similar to an external
......@@ -187,29 +157,26 @@ precious or irreproducible data should not be placed or left on Anvil**.
Windows) of instance it will be attached to.  Once the volume is
attached, follow the corresponding guide for your instance's OS to
format and make the volume usable within your instance.
1. [Creating and attaching a
volume](Creating-and-attaching-a-volume_13599293.html)
2. [Formatting and mounting a volume in
Windows](Formatting-and-mounting-a-volume-in-Windows_13599295.html)
3. [Formatting and mounting a volume in Linux
 ](Formatting-and-mounting-a-volume-in-Linux_13599298.html)
8. **Transferring files to or from your instance (optional)
**Transferring files to or from an instance is similar to doing so
1. [Creating and attaching a volume]({{< relref "creating_and_attaching_a_volume" >}})
2. [Formatting and mounting a volume in Windows]({{< relref "formatting_and_mounting_a_volume_in_windows" >}})
3. [Formatting and mounting a volume in Linux]({{< relref "formatting_and_mounting_a_volume_in_linux" >}})
8. **Transferring files to or from your instance (optional)**
Transferring files to or from an instance is similar to doing so
with a personal laptop or workstation.  To transfer between an
instance and another HCC resource, both SCP and [Globus
Connect](Globus-Connect_6357013.html) can be used.  For transferring
Connect]({{< relref "guides/handling_data/globus_connect" >}}) can be used.  For transferring
between an instance and a laptop/workstation or another instance,
standard file sharing utilities such as Dropbox or Box can be used.
 Globus may also be used, with one stipulation.  In order to
transfer files between two personal endpoints, a Globus Plus
subscription is required.  As part of HCC's Globus Provider Plan,
HCC can provide this on a per-user basis free of charge.  If you are
interested in Globus Plus, please
email <a href="mailto:hcc-support@unl.edu" class="external-link">hcc-support@unl.edu</a> with
your request and a brief explanation.
interested in Globus Plus, please email
{{< icon name="envelope" >}}[hcc-support@unl.edu] (mailto:hcc-support@unl.edu)
with your request and a brief explanation.
Backups
-------
## Backups
HCC creates daily backups of images and volume snapshots for disaster
recovery. All users' images, detached volumes, and volume snapshots will
......@@ -224,7 +191,6 @@ is unable to restore single files within instances.  Further, HCC's
disaster recovery backups should not be the only source of backups for
important data. The backup policies are subject to change without prior
notice. To retrieve your backups, please contact HCC. If you have
special concerns please
<a href="mailto:hcc-support@unl.edu" class="external-link">contact us</a>.
special concerns please contact us at
{{< icon name="envelope" >}}[hcc-support@unl.edu] (mailto:hcc-support@unl.edu).
1. [HCC-DOCS](index.html)
2. [HCC-DOCS Home](HCC-DOCS-Home_327685.html)
3. [HCC Documentation](HCC-Documentation_332651.html)
4. [Anvil: HCC's Cloud](13042760.html)
<span id="title-text"> HCC-DOCS : Adding SSH Key Pairs </span>
==============================================================
Created by <span class="author"> Adam Caprez</span>, last modified by
<span class="editor"> Carrie Brown</span> on Sep 25, 2017
+++
title = "Adding SSH Key Pairs"
description = "How to add key pairs to your OpenStack account."
+++
If you have not already generated your key pairs and need help doing so,
please see the documentation that relates to your operating system:
- [Creating SSH key pairs on
Mac](Creating-SSH-key-pairs-on-Mac_13598841.html)
- [Creating SSH key pairs on
Windows](Creating-SSH-key-pairs-on-Windows_13598839.html)
<span
class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span>
- [Creating SSH key pairs on Mac]({{< relref "creating_ssh_key_pairs_on_mac" >}})
- [Creating SSH key pairs on Windows]({{< relref "creating_ssh_key_pairs_on_windows" >}})
{{% notice info %}}
This guide assumes you are either accessing Anvil from on-campus, or are
connected to the [Anvil VPN](Connecting-to-the-Anvil-VPN_13042829.html).
connected to the [Anvil VPN]({{< relref "connecting_to_the_anvil_vpn" >}}).
{{% /notice %}}
Log into the Anvil web dashboard
at **<a href="https://anvil-beta.unl.edu" class="external-link">anvil-beta.unl.edu</a>** using
Log into the Anvil web dashboard at **https://anvil.unl.edu** using
your HCC credentials.  On the left-hand side navigation menu,
click *Access & Security*.
<span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img src="assets/images/13599025/13599031.png" class="confluence-embedded-image confluence-content-image-border" width="232" height="376" /></span>
{{< figure src="/images/13599031.png" >}}
Choose the *Key Pairs* tab in the main window section.
<span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img src="assets/images/13599025/13599033.png" class="confluence-embedded-image confluence-content-image-border" width="432" height="109" /></span>
{{< figure src="/images/13599033.png" >}}
Open your **public** key file, select the entire text, and copy it.  On
the right-hand side, click the *Import Key Pair* button.
<span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img src="assets/images/13599025/13599036.png" class="confluence-embedded-image confluence-content-image-border" width="909" height="146" /></span>
{{< figure src="/images/13599036.png" >}}
In the pop-up window, fill in the *Key Pair Name* field with a
convenient name.  Paste the copied public key text in the larger *Public
Key* box.
<span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img src="assets/images/13599025/13599039.png" class="confluence-embedded-image" width="650" /></span>
{{< figure src="/images/13599039.png" width="650" >}}
Click the *Import Key Pair* button to close the pop-up and save the key.
 You should then see an entry with the saved key (the fingerprint value
will be different than the example below).
<span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img src="assets/images/13599025/13599043.png" class="confluence-embedded-image confluence-content-image-border" width="838" height="57" /></span>
{{< figure src="/images/13599043.png" >}}
The key pair can now be associated with any newly created instances.
 
Attachments:
------------
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair1.png](attachments/13599025/13599032.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair1.png](attachments/13599025/13599031.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair2.png](attachments/13599025/13599033.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair3.png](attachments/13599025/13599036.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair4.png](attachments/13599025/13599041.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair4.png](attachments/13599025/13599039.png) (image/png)
<img src="assets/images/icons/bullet_blue.gif" width="8" height="8" />
[keypair5.png](attachments/13599025/13599043.png) (image/png)
1. [HCC-DOCS](index.html)
2. [HCC-DOCS Home](HCC-DOCS-Home_327685.html)
3. [HCC Documentation](HCC-Documentation_332651.html)
4. [Anvil: HCC's Cloud](13042760.html)
<span id="title-text"> HCC-DOCS : Anvil Instance Types </span>
==============================================================
Created by <span class="author"> Derek Weitzel</span>, last modified by
<span class="editor"> John Thiltges</span> on Jun 20, 2016
+++
title = "Anvil Instance Types"
description = "Details on the available instance types (flavors)"
+++
Anvil provides many instance types that are optimized for different
usage patterns.
General Purpose Instances
-------------------------
---
### General Purpose Instances
### Use Cases
#### Use Cases
Development environments, build servers, code repositories, low-traffic
websites and web applications, micro services, early product
experiments, small databases.
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Instance Name</th>
<th>CPUs</th>
<th>Memory</th>
<th>Root Disk</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>general.small</td>
<td>1</td>
<td>2GB </td>
<td>20GB </td>
</tr>
<tr class="even">
<td><p>general.medium</p></td>
<td>1</td>
<td>3.8GB </td>
<td>40GB </td>
</tr>
<tr class="odd">
<td>general.large </td>
<td>2</td>
<td>7.5GB</td>
<td>80GB </td>
</tr>
<tr class="even">
<td>general.xlarge</td>
<td>4</td>
<td>15GB</td>
<td>160GB</td>
</tr>
<tr class="odd">
<td>general.2xlarge</td>
<td>8</td>
<td>30GB</td>
<td>160GB</td>
</tr>
<tr class="even">
<td>general.4xlarge</td>
<td>16</td>
<td>60GB</td>
<td>160GB</td>
</tr>
</tbody>
</table>
| Instance Name | CPUs | Memory | Root Disk |
| --------------- | ---- | ------ | -------- |
| general.small  | 1 | 2GB | 20GB  |
| general.medium | 1 | 3.8GB | 40GB |
| general.large | 2 | 7.5GB | 80GB |
| general.xlarge | 4 | 15GB | 160GB |
| general.2xlarge | 8 | 30GB | 160GB |
| general.4xlarge | 16 | 60GB | 160GB |
High-Memory Instances
---------------------
### High-Memory Instances
### Use Cases
#### Use Cases
We recommend high memory instances for high performance databases,
genome assembly and analysis.
......@@ -91,10 +39,9 @@ genome assembly and analysis.
| memory.2xlarge | 8 | 60GB | 160GB |
| memory.4xlarge | 16 | 120GB | 160GB |
Compute Instances
-----------------
### Compute Instances
### Use Cases
#### Use Cases
We recommend compute instances for CPU intensive tasks which don't
require large amounts of memory. 
......@@ -105,5 +52,3 @@ require large amounts of memory. 
| compute.xlarge | 4 | 7.5GB | 160GB |
| compute.2xlarge | 8 | 15GB | 160GB |
| compute.4xlarge | 16 | 30GB | 160GB |
1. [HCC-DOCS](index.html)
2. [HCC-DOCS Home](HCC-DOCS-Home_327685.html)
3. [HCC Documentation](HCC-Documentation_332651.html)
4. [Anvil: HCC's Cloud](13042760.html)
<span id="title-text"> HCC-DOCS : Available Images </span>
==========================================================
Created by <span class="author"> Derek Weitzel</span>, last modified by
<span class="editor"> Adam Caprez</span> on Oct 30, 2017
+++
title = "Available images"
description = "HCC-provided images for Anvil"
+++
HCC provides pre-configured images available to researchers.  Below is a
list of available images.
<table style="width:100%;">
<colgroup>
<col style="width: 14%" />
<col style="width: 9%" />
<col style="width: 10%" />
<col style="width: 65%" />
</colgroup>
<thead>
<tr class="header">
<th>Image Name</th>
<th>Username to Connect</th>
<th>Access Instructions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Cloudera 5.12 GNOME</td>
<td><code>cloudera</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td>Cloudera 5.12 QuickStart VM. <strong>Note</strong>: Follow the X2Go instructions, but choose GNOME for the Session type instead of Xfce.</td>
</tr>
<tr class="even">
<td>CentOS 7.4</td>
<td><code>centos</code></td>
<td><span>ssh -l centos &lt;ipaddress&gt;</span></td>
<td><span>The CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of Red Hat Enterprise Linux (RHEL).</span></td>
</tr>
<tr class="odd">
<td>CentOS 6.9</td>
<td><code>centos</code></td>
<td>ssh -l centos &lt;ipaddress&gt;</td>
<td><strong>HCC Standard OS</strong>. <span>The CentOS Linux distribution is a stable, predictable, manageable and reproducible platform derived from the sources of Red Hat Enterprise Linux (RHEL).</span></td>
</tr>
<tr class="even">
<td>Fedora 26 Cloud</td>
<td><code>fedora</code></td>
<td>ssh -l fedora &lt;ipaddress&gt;</td>
<td><span style="color: rgb(34,34,34);">Fedora is a Linux distribution developed by the community-supported </span><a href="https://en.wikipedia.org/wiki/Fedora_Project" class="external-link" title="Fedora Project">Fedora Project</a><span style="color: rgb(34,34,34);"> and sponsored by the </span><a href="https://en.wikipedia.org/wiki/Red_Hat" class="external-link" title="Red Hat">Red Hat</a><span style="color: rgb(34,34,34);"> company.</span></td>
</tr>
<tr class="odd">
<td>Fedora 26 Xfce</td>
<td><code>fedora</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td>Fedora 26 <span>with the Xfce Desktop Environment pre-installed.</span></td>
</tr>
<tr class="even">
<td>Fedora 26 RStudio (Xfce)</td>
<td><code>fedora</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td>Fedora 26 with RStudio and <span>the Xfce Desktop Environment pre-installed.</span></td>
</tr>
<tr class="odd">
<td>CentOS 7.4 Xfce</td>
<td><code>centos</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td><span>CentOS 7.4 with the Xfce Desktop Environment pre-installed.</span></td>
</tr>
<tr class="even">
<td><span>CentOS 6.9 Xfce</span></td>
<td><code>centos</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td><span>CentOS 6.9 with the Xfce Desktop Environment pre-installed.</span></td>
</tr>
<tr class="odd">
<td>Ubuntu 14.04 Xfce</td>
<td><code>ubuntu</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td><span>Ubuntu 14.04 <span>with the Xfce Desktop Environment pre-installed.</span></span></td>
</tr>
<tr class="even">
<td><span>Ubuntu 16.04 Xfce</span></td>
<td><code>ubuntu</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td><span>Ubuntu 16.04 </span><span>with the Xfce Desktop Environment pre-installed.</span></td>
</tr>
<tr class="odd">
<td><span>Ubuntu 17.04 Xfce</span></td>
<td><code>ubuntu</code></td>
<td><a href="Connecting-to-Linux-instances-using-X2Go_16520062.html">X2Go instructions</a></td>
<td><span>Ubuntu 17.04 </span><span>with the Xfce Desktop Environment pre-installed.</span></td>