Digital Ocean and SAP HANA express edition
I’ve used Digital Ocean for quite awhile now to spin up servers for web projects and the like, but it was not until I was at the OSCON 2017 event in Austin, Texas the other week where SAP had a booth next to one from Digital Ocean that I realized that I had never taken the time to document the simple steps to get HXE up and running there.
Therefore I decided to put together a few steps today to document the process.
SAP HANA, express edition (HXE) is officially supported on SLES and RHEL. SAP Community members have been successful in running HXE on other Linux operating systems that are not formally supported by SAP, such as Ubuntu, openSUSE and Fedora. SAP is not committing to resolving any issues that may arise from running HXE on these platforms.
From your dashboard in Digital Ocean, click on
Pick an image for your Droplet. Then a region to run your Droplet.
The minimum requirements for HANA Express Edition, server-only are:
- 4 CPU cores
- 8 GB RAM
- 100 GB Disk
Then scroll down and be sure to enter a name for the Droplet. This name will also be the name of the host and the example used in this tutorial is
Now create the Droplet.
Upload the HXE installation packages to your Droplet (
/tmp). Upload the files
hxexsa.tgz for server + applications:
To do this you can use a FTP program or from the command line you can execute
scp hxe.tgz firstname.lastname@example.org:/tmp
Now to prep your server. Go to the download page for the Java Runtime Environment. Accept the license agreement and download the
Right-click on the file with extension
.tar.gz for x64 Linux and copy the link.
Now upload this to your server with the command:
scp jre-8u131-linux-x64.tar.gz email@example.com:/tmp
Now on the server itself, create a new directory called
/usr/java and copy the downloaded installation package into a new folder. The name of the installation package may be different from the example, so replace
jre-8u121-linux-x64.tar.gz with the package you have just downloaded:
sudo su – mkdir /usr/java chmod 777 /usr/java cp ./jre-8u121-linux-x64.tar.gz /usr/java/jre-8u121-linux-x64.tar.gz cd /usr/java tar -zxvf jre-8u121-linux-x64.tar.gz
This is what the console would look like:
After it finishes extracting the files, if you list the directory you will see a new folder created by the extraction process:
Set the JVM path with the following command, where
/usr/java is the directory you created to extract the JRE installation package and
jre1.8.0_131 refers to the directory that has just been created during extraction. Replace these references accordingly:
update-alternatives --install /usr/bin/java java /usr/java/jre1.8.0_131/bin/java 100
Now to install some additional libraries.
apt-get update apt-get install openssl apt-get install libpam-cracklib apt-get install libltdl7 apt-get install libaio1 apt-get install unzip
The last one is specific for XSA.
This is a command (create an alias for chkconfig and install curl) that is not available in Ubuntu. You will download its equivalent and create an alias so it can be called by the installation script.
apt-get install sysv-rc-conf alias chkconfig='sysv-rc-conf'
Once the upload of the installation package is finished, execute the following commands from a console. Replace the
home directory accordingly if you have uploaded the files into a different location.
cd /tmp chmod -R 777 hxe.tgz tar -xvzf hxe.tgz
If you are also installing XS Advanced applications, execute the following commands:
chmod -R 777 hxexsa.tgz tar -xvzf hxexsa.tgz
You will see the list of files that have been extracted. These are the files you will later use for installation.
From the command line of your Droplet you will run the following commands.
sudo ufw enable
This will enable the Firewall in Ubuntu.
sudo ufw allow ssh sudo ufw allow 8090/tcp sudo ufw allow 8000/tcp sudo ufw allow 4300/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 1128:1129/tcp sudo ufw allow 51002:51027/tcp sudo ufw allow 30000:30100/tcp sudo ufw allow 50000:50050/tcp
If you are installing the XS Advanced tools, you also need to add the following rules:
sudo ufw allow 38326/tcp sudo ufw allow 39228/tcp sudo ufw allow 49000:49100/tcp sudo ufw allow 55752/tcp sudo ufw allow 53001:53100/tcp sudo ufw allow 51000:51100/tcp sudo ufw allow 55742/tcp
You can confirm all the rules have been processed using command
sudo ufw status
This step applies ONLY if you are installing the XS Advanced tools.
Before you launch the installation, you need to perform a minor modification on the script
register_cockpit.sh which is executed at the end of the XS Advanced installation. This script has been extracted from the XS Advanced
.tar.gz into a directory called
Open the file for edition with the following command. Adjust accordingly with your username or if you extracted the installation files into a different directory:
Look for a line containing variable
local_hostname=hostname -f and replace it with
hostname, i.e., remove the
-f from this line.
Now just in case, you could end up with a Python error during install to work around that just run the following commands.
export PYTHONHOME=/usr/local/lib/python3.5/ export PYTHONPATH=/usr/local/lib/python3.5/
You have finally got to the most important and exciting part! Go into your home directory or wherever you have extracted the installation files into.
sudo su – cd /tmp ./setup_hxe.sh
The script will prompt for different parameters:
- Installer root directory
This is the directory where the files have been extracted, plus
HANA_EXPRESS_20, for example
Paste this value and press Enter.
- Components you want to install
allto include XS Advanced tools (provided you have uploaded them) or
serverfor the server-only installation:
- In this example,
- System ID:
The system ID you want to use. As you will probably use the tutorials on the many things you can do in HANA Express Edition, you may want to use
- Enter Instance Number:
The firewall rules have been created for instance
00, so please update them accordingly if you choose a different instance number. Also, bear this in mind as the usual instance number used in tutorials is also
- Master Password:
This will be the password for administrator users such as SYSTEM or ADM. You will definitely need to remember this password.
If you are installing the Applications package, this password is also used for the
Review the Installation summary and hit Y.
After you hit Enter the script will verbosely inform what it is doing. Avoid disconnecting the terminal or interrupting the execution.
Wait until the command prompt in the console is available for input again.
You can also check the log by running command
ls -ltr in the directory
/var/tmp and open the latest installation log file using commands such as
more <name of the file> or
cat <name of the file>.
Finally, the command-line Lifecycle Management program can check the installation for you:
Remember to set you hosts file in your local computer with the pair «external IP» «host name». You will generally fins these files in folders
/etc/hosts or in
C:\Windows\System32\drivers\etc, and the configuration would look like the following example:
207.154.XXX.XXX stands for the external IP and the
ubuntu-hxe-server value stands for the name of the host that you have set up in the server.
The whole process is honestly quite simple and takes quite a bit less than the 60 minutes total that the tutorials indicate. In fact I threw up another instance today just to document the steps. It’s also very similar to the steps documented by Lucia.
Not really a whole lot of reasons not to actually give HXE a go is there?
Digital what now to do what now? Oh dear, this is way far out...
One of these days I'll gather strength to actually follow one of these tutorials and do something. Most likely to share terrible failure afterwards. 🙂 (I've heard trying is the first step to get there.)
Jokes aside - thanks for posting, your tutorials are always appreciated. I also like the format, with the level (beginner, etc.) and time needed. As with cooking, it's helpful to know in advance what you might be getting into.
🙂 Digital Ocean is another cloud provider like Amazon, Google, Microsoft, etc. this one happens to be one I personally use. In fact I am right now doing the latest version of HXE (with XSA) on there.
a good alternative to AWS and the rest of the cloud gang. the price points for xsa seem to be $0.50/hour or $320 per month, so not quite that competitive with AWS. the only remaining question is which cloud provider SAP prefers to do business with, but it seems like they are all treated the same way as Big 4 used to be on the other side of the ledger, so to speak.
thx for the tutorial,
I actually launch a small size to give me the HD space then I modify up as needed to save costs. Since I focus on the server only it's actually fine on the 8GB instance at about $0.12 an hour.