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.
Disclaimer
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 Create Droplet
:
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 ubuntu-hxe-server
.
Now create the Droplet.
Upload the HXE installation packages to your Droplet (/tmp
). Upload the files hxe.tgz
and 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 root@207.154.xxx.xxx:/tmp
Now to prep your server. Go to the download page for the Java Runtime Environment. Accept the license agreement and download the tar.gz
file:
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 root@207.154.xxx.xxx:/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 HANA_EXPRESS_20
.
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:
nano /tmp/HANA_EXPRESS_20/register_cockpit.sh
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 /tmp/HANA_EXPRESS_20
.
Paste this value and press Enter.
- Components you want to install
Chooseall
to include XS Advanced tools (provided you have uploaded them) orserver
for the server-only installation: - In this example,
ubuntu-hxe-server
: - 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 useHXE
as proposed: - Enter Instance Number:
The firewall rules have been created for instance00
, 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 also00
. - 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
XSA_ADMIN
,XSA_DEV
, andXSA_SHINE
users.
Hit Enter.
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: /hana/shared/HXE/hdblcm/hdblcm
.
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 ubuntu-hxe-server
Where the 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.
Hi Craig,
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,
greg
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.