Preparation

The installation of cloudmesh is easy if you have prepared your system with up-to-date software. We provide instructions to prepare your system for a number of operating systems. After you have completed the system preparation you can follow the Installation instructions which will be the same for all systems.

In future we will provide an even simpler install mechanism on the various operating systems based on simple install scripts.

If you like to help us in making the instructions simpler based on your experience, please email us or create a pull request in github.

OSX

You will need a number of tools that are not distributed with the regular OSX operating system. First you need to install xcode. The easiest is to open a terminal and type

xcode-select --install

We recommend that you use python at 2.7.13, but not python 3. This version of python is easy to install while downloading the dmg and installing it on the system. You can find the python version at:

You will still have access to the python version distributed with the original OSX operating system. You will need to install pip, and virtualenv which you can do with

sudo easy_install pip
sudo pip install virtualenv

To test out which version you have activated, you can use in the command line

python --version
pip --version
virtualenv --version

Make sure that you have the supported versions:

Software Version
Python 2.7.13
pip 8.1.2
virtualenv 15.0.1

On OSX as well as the other operating systems we require you to use virtualenv. First you need to find which version of python you use. You can say

which python

It will give you the path of the python interpreter.

If you have a vanilla OS X at the time of writing of this documentation, the python version is 2.7.10 hence you can use also this version. However, it may be better to upgrade to 2.7.13 and using it via virtualenv.

virtualenv -p /user/bin/python ~/ENV

to setup the virtualenv on your computer.

In case you are using a different version of python please use the appropriate path. Let us assume the interpreter was found in /usr/local/bin/python. Next you can create a virtual ENV with

virtualenv -p /user/local/bin/python ~/ENV

You will need to activate the virtualenv with

source ~/ENV/bin/activate
export PYTHONPATH=~/ENV/lib/python2.7/site-packages:$PYTHONPATH

If successful, your terminal will have (ENV) as prefix to the prompt:

(ENV)machinename:dirname user$

If you like to use this version of python consistently, you may elect to add it to your .bashrc file and add the command:

source $HOME/ENV/bin/activate
export PYTHONPATH=~/ENV/lib/python2.7/site-packages:$PYTHONPATH

We need to just do some simple updates in the virtualenv and you will have an up to date python environment in ~/ENV

pip install pip -U
easy_install readline
easy_install pycrypto
pip install urllib3

Warning

We found that readline and pycrypto could not be installed with pip at the time of writing of this manual, despite the fact that pip claimed to have installed them. However, the version installed with pip were not usable. The workaround is to use easy_install for these packages as shown above. If you have better idea how to fix this, let us know and send mail to laszewski@gmail.com. Alternatively you can install them with homebrew.

It is recommended that you test the version of the python interpreter and pip again

pip --version

which should give the version 8.1.2

python --version

which should give the version Python 2.7.10 or 2.7.13 if you installed that.

OSX Quick Install Scripts (untested)

Use at your own risk, we recommend that you follow the more detailed instructions above

xcode-select --install
open https://www.python.org/downloads/

Install python 2.7.12. Next do

sudo easy_install pip
sudo pip install virtualenv
virtualenv -p /user/local/bin/python ~/ENV
source ~/ENV/bin/activate
export PYTHONPATH=~/ENV/lib/python2.7/site-packages:$PYTHONPATH
pip install pip -U
easy_install readline
easy_install pycrypto
pip install urllib3

In case you have not added the two lines in your .bashrc script, you will need to run them in any new terminal you start in which yo like to use the new python version. It may just be easier to add them to your .bashrc file.

source ~/ENV/bin/activate export PYTHONPATH=~/ENV/lib/python2.7/site-packages:$PYTHONPATH

Ubuntu 14.04/15.04

As your ubuntu version may be outdated we ask you to run the following commands

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python-setuptools
sudo apt-get install python-pip
sudo apt-get install python-dev
sudo apt-get install libncurses-dev
sudo apt-get install git
sudo easy_install readline
sudo pip install pycrypto
sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev
sudo apt-get install libncursesw5-dev
sudo apt-get install libssl-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install tk-dev
sudo apt-get install libgdbm-dev
sudo apt-get install libc6-dev
sudo apt-get install libbz2-dev

Note

if pycrypto does not install with pip use easy_install pycrypto

We recommend that you use python 2.7.10, which you can install it alternatively in your system with without overwriting the existing python version

cd $HOME
wget --no-check-certificate https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local
sudo make && sudo make altinstall
export PATH="/usr/local/bin:$PATH"

Verify if you now have the correct alternative python installed

/usr/local/bin/python2.7 --version

which will return Python 2.7.10. Next, Install setuptools and pip

cd $HOME
sudo /usr/local/bin/python2.7 ez_setup.py
sudo /usr/local/bin/python2.7 get-pip.py

Create soft symbolic links

sudo ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
sudo ln -sf /usr/local/bin/pip /usr/bin/pip

Verify if you now have the required pip version installed

pip --version

It shoudl show the version 8.0.2. If you see a lower version of pip, you may upgrade it with the following command

pip install -U pip

Next, Install a python virtual environment on your machine as we do not want to interfere with the system installed python versions. Inside your terminal run

sudo apt-get install virtualenv

Next we will create a python virtualenv in the directory $HOME/ENV. To activate virtualenv, execute the following steps

virtualenv -p /usr/local/bin/python $HOME/ENV
source $HOME/ENV/bin/activate

This will add a ‘(ENV)’ to your prompt in the terminal like following:

(ENV)[user@hostname ~]$

Ubuntu Quick Install Scripts (untested)

Use at your own risk, we recommend that you follow the more detailed instructions above. THe script bellow contains also an update of the python version from 2.7.9 to 2.7.10 in an alternate install. As cloudmesh is running fine in python 2.7.9 the update may not be needed and you may eliminate the steps in regards to this from the bellow script if you wish.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python-setuptools
sudo apt-get install python-pip
sudo apt-get install python-dev
sudo apt-get install libncurses-dev
sudo apt-get install git
sudo easy_install readline
sudo pip install pycrypto
sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev
sudo apt-get install libncursesw5-dev
sudo apt-get install libssl-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install tk-dev
sudo apt-get install libgdbm-dev
sudo apt-get install libc6-dev
sudo apt-get install libbz2-dev
cd $HOME
wget --no-check-certificate https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local
sudo make && sudo make altinstall
export PATH="/usr/local/bin:$PATH"
cd $HOME
sudo /usr/local/bin/python2.7 ez_setup.py
sudo /usr/local/bin/python2.7 get-pip.py
sudo ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
sudo ln -sf /usr/local/bin/pip /usr/bin/pip
pip install -U pip
virtualenv -p /usr/local/bin/python $HOME/ENV

Add the following to your .bashrc file:

source $HOME/ENV/bin/activate

Ubuntu 16.04

Similar to the instructions for Ubuntu 14.04/15.04, but these packages would be needed to be installed with ‘apt’

sudo apt update
sudo apt install build-essential checkinstall python-dev virtualenv libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev

In some cases the python2 package may not be installed on Ubuntu 16.04. In this case you also need to install it:

sudo apt install python-minimal

You can also try the one line script to setup the system and install cloudmesh_client:

wget -O cm-setup.sh https://raw.githubusercontent.com/cloudmesh/client/bin/deploy-on-xenial.sh
sh cm-setup.sh

CentOS

This documentation assumes that the user is advanced enough to use linux terminal. We also assume you are not logged in as root, but you are a regular user. However to prepare the system we assume you have sudo privileges.

One line install

You can conduct these steps automatically as well as the install of cloudmesh by executing the following script in your command line.

After this you not only have the system updated for coudmesh with necessary libraries and tools, but you will also have cloudmesh installed.

We encourage you to inspect the script and assess if this is the way you like to proceed. If you rather do a step by step install, please read on.

Deatailed Step-by-Step system preparation

I you like to conduct these steps by hand please read on. First, we check for up-to-date versions of python and pip

python --version

As CentOS typically comes with an old version of python (2.7.5), we will install in addition to the system provided python, an alternative python installation. This is achieved by following the next steps executing them as normal user. They will install python 2.7.10 under`$HOME/ENV`

sudo yum install -y gcc wget zlib-devel openssl-devel sqlite-devel bzip2-devel
cd $HOME
wget --no-check-certificate https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
tar -xvzf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local
sudo make && sudo make altinstall
export PATH="/usr/local/bin:$PATH"

Verify if you now have the correct alternative python installed

/usr/local/bin/python2.7 --version

which should return Python 2.7.10. Next, install setuptools and pip and create symbolic links to them

cd $HOME
sudo /usr/local/bin/python2.7 ez_setup.py
sudo /usr/local/bin/python2.7 get-pip.py
sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
sudo ln -s /usr/local/bin/pip /usr/bin/pip

Verify if you now have the required pip version installed (this may require a new terminal to test or a source or the .bashrc script)

pip --version
pip 8.0.2 from /usr/lib/python2.7/site-packages/pip-8.0.2-py2.7.egg (python 2.7)

If you see an older version of pip, upgrade it with the following command

pip install -U pip

Next, Install a python virtual environment on your machine as we do not want to interfere with the system installed python versions. Inside your terminal run

sudo pip install virtualenv

Next we will create a python virtualenv in the directory $HOME/ENV. To activate virtualenv, execute the following steps

virtualenv -p /usr/local/bin/python $HOME/ENV
source $HOME/ENV/bin/activate

This will add a ‘(ENV)’ to your prompt in the terminal like following:

(ENV)[user@hostname ~]$

On more permanent basis, if you want to avoid activating virtualenv every time you log in, You can add the activation of the virtualenv to the ~/.bashrc file with your favourate editor:

emacs ~/.bashrc

Add the command:

source $HOME/ENV/bin/activate

to the file and save the file. You may test if this works, by launching a new terminal session and checking if (ENV) is seen added to the prompt.

Centos Quick Install Scripts

Use at your own risk, we recommend that you follow the more detailed instructions above

sudo yum install -y gcc wget zlib-devel openssl-devel sqlite-devel bzip2-devel
cd $HOME
wget --no-check-certificate https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
tar -xvzf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local
sudo make && sudo make altinstall
export PATH="/usr/local/bin:$PATH"
cd $HOME
sudo /usr/local/bin/python2.7 ez_setup.py
sudo /usr/local/bin/python2.7 get-pip.py
sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
sudo ln -s /usr/local/bin/pip /usr/bin/pip
pip install -U pip
sudo pip install virtualenv
virtualenv -p /usr/local/bin/python $HOME/ENV

Add the following to your .bashrc script:

source $HOME/ENV/bin/activate

Windows 10

Install Python

Python can be found at http://www.python.org. We recommend to download and install the newest version of python. At this time we recommend that you use version 2.7.10. Other versions may work to, but are not supported or tested. A direct link to the install can be found at:

https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi

In powershell you need to type:

PS> explorer https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi

This will open the internet browser and download the python msi installer. It will walk you through the install process.

Note

If you like to install it separately, you can find the downloaded msi in the ~/Downloads directory. To install it in powershell use:

PS> cd ~/Downloads
PS> msiexec /i python-2.7.10.msi /qb

This will open a basic dialog to perform installation and close after completion.

Note

While installing python, you have the option to automatically include python binaries in the system Path. This is disabled by default, so you will need to enable it explicitly. Skip below step if you have choose to enable this feature.

After you have installed python (and not explicitly enabled the feature to add python to system path) include it in the Path environment variable while you type in powershell:

PS> [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")
PS> $env:Path=[Environment]::GetEnvironmentVariable("Path", "User")

This should install Python 2.7.10 successfully. You can now proceed to the next step.

Install Chocolatey, Git, VirtualEnv, Make

As we need to do some editing you will need a nice editor. Please do not use notepad and notepad++ as they have significant issues, please use vi, vim, or emacs. Emacs is easy to use as it has a GUI on windows. Install emacs:

PS> Start-Process powershell -Verb runAs

This will open a new Powershell window with administrator privileges. Continue the below steps to install chocolatey & make:

PS> Set-ExecutionPolicy Unrestricted -force
PS> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
PS> choco install emacs -y
PS> choco install make -y

Next, to install Git, type the following command into powershell:

PS> explorer https://git-scm.com/download/win

This will open the internet browser and download the git installer. It will walk you through the install process.

Note

When installing you will see at one point a screen that asks you if you like to add the commands to the shell. It is recommended you select option (3) to add Unix shell commands to windows. This will install Unix style commands to Windows and include it in path.

Follow the on screen instructions, selecting the default values for all of the options (except for above note). This will install Git & Git Bash successfully.

Install VirtualEnv and Create a Virtual Python Environment

At the time this guide was written, the latest version of python virtualenv was 14.0.2. But Windows 10 users were facing a lot of issues with this version, and so we recommend installing a lower version of virtualenv:

PS> pip install virtualenv==13.0.2

This will install python virtualenv on your system. To setup the environment in powershell, run the following command:

PS> virtualenv ~/ENV

This will create a new directory ~/ENV/ comprising a local python environment. To activate this new environment, run:

PS> ~/ENV/Scripts/activate.ps1

This will activate your new python virtual environment. As a proof, you will now see a (ENV) prefixed to the powershell. It will look like:

(ENV) PS> python --version
          Python 2.7.10

Congratulations, you have now activated your python virtualenv.

Note

To deactivate this virtualenv, you need to run the following command:

(ENV) PS> deactivate

But always remember to activate the virtualenv before using cloudmesh.

Next step is to install necessary python packages.

Install Pycrypto

First, if not already done, activate your virtualenv:

PS> ~/ENV/Scripts/activate.ps1

Next, update your python-pip:

(ENV) PS> pip install pip -U

Check the python and pip version:

(ENV) PS> python --version
      Python 2.7.10

(ENV) PS> pip --version
      pip 8.0.2 from c:\users\test-pc\ENV\lib\site-packages (python 2.7)

Then to install pycrypto, run the following:

(ENV) PS> easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

Install FireFox Browser

Cloudmesh contains tools for generating and viewing the html documentation files. It uses FireFox to render HTML pages. To install FireFox, run the following command:

(ENV) PS> explorer https://www.mozilla.org/en-US/firefox/new/#download-fx

This will download the latest FireFox browser installer on your machine. Follow the on-screen instructions to install. Once complete, add FireFox to your path:

(ENV) PS> [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Program Files (x86)\Mozilla Firefox\", "User")
(ENV) PS> $env:Path=[Environment]::GetEnvironmentVariable("Path", "User")

COngratulations! You have now successfully setup your Windows 10 machine, and are all ready to now install Cloudmesh.

Adding SSH Key to Futuresystems Portal

Close the current Powershell window and open a new one. Now we are ready to use ssh and git. But first, let’s create a key:

PS> ssh-keygen -t rsa

Follow the instructions and leave the path unchanged. Make sure you specify a passphrase. It is a policy on many compute resources that your key has a passphrase. Look at the public key as we will need to upload it to some resources:

PS> cat ~/.ssh/id_rsa.pub

Go to the futuresystems portal:

https://portal.futuresystems.org

Once you log in you can use the following link to add your public key to futuresystems:

https://portal.futuresystems.org/my/ssh-keys

Naturally this only works if you are eligible to register and get an account. Once you are in a valid project you can use indias resources. After that you need to upload your public key that you generated into the portal and did a cat on.

Warning

Windows will not past and copy correctly, please make sure that newlines are removed for the text box where you past the key. This is cause for many errors. Make sure that the key in the text box is a single line and looks like when you did the cat on it.

To simplify SSH access, you will need to configure a ssh config file. You will need to first create a config file as follows:

PS> vim ~/.ssh/config

This should open the VIM editor and next you need to enter the following contents:

Host india
     Hostname india.futuresystems.org
     User <your_portal_username>
     IdentityFile <path_to_id_rsa_file>

Replace your_portal_username with your futuresystems username and path_to_id_rsa_file with the path to your private key file. It generally is at ~/.ssh/id_rsa.

You can now easily perform ssh to futuresystems cloud using:

PS> ssh india