Skip to Content
Technical Articles

Automate HANA Cloud Administration tasks such as instance creation, start/stop, resize

SAP HANA Cloud brings interesting possibilities for admins, such as automating the creation of new instances or shutting down non productive instances overnight.

The command line utility for Cloud Foundry enables us to do just that. For simplicity we’ll use an external machine with a good old crontab.

Below are the commands you can put in a script to automate tasks. If you’re using windows, please refer to this link for the syntax for the windows command line and PowerShell.

Log into Cloud Foundry

Before performing an action, you need to be authenticated. This is done with the
cf login command. It takes parameters such as:

  • -a The cloud foundry API url of the dataceter
  • -o The target organization
  • -s The target space
  • -u User name and -p password. For security, the password is read from a file.
cf login -u my.email@sap.com -o my_org -s my_space -a https://api.cf.eu20.hana.ondemand.com -p "$(<$HOME/.ssh/.toto)"

Perform the Action

Now you’re ready to execute an action using either

  • cf create-service to create a HANA Cloud instance, a Relational Data Lake, or any other services of the SAP Cloud Platform.
  • cf update-service to start/stop/resize a service instance.

Create a new instance

cf create-service hana-cloud hana tst_cf_db -c '{ ... }'

A sample json value is:

{"data":{"edition":"cloud","memory":32,"systempassword":"PereNoel2021","whitelistIPs":["10.2.3.0/24"],"vcpu":2}}

The json data must have compatible values for memory and cpu, otherwise an error message informs you of the correct values.
For instance, a request of 32 GB of memory for 4 vcpus will return:

Invalid Parameter (memory): HANA with 4 CPUs requires 64 GB memory (32)

This is quite useful because Azure and AWS have slightly different ratios of memory per vcpu.

Stop an instance

cf update-service tst_cf_db -c '{​​​​​"data":"serviceStopped":true}}'

Start an instance

cf update-service tst_cf_db -c '{​​​​​"data":"serviceStopped":false}}'

Increase the size:

The challenge is to come up with the correct values of memory, vcpu and storage. Bear in mind that currently, storage capacity once increased cannot be reduced.

An easy way to obtain the correct values is to execute the command multiple times to get the correct calculated values from the error messages. This example shows how to increase from 2 vcpu to 4.

cf update-service tst_cf_db -c '{"data": {"vcpu":4}}'

FAILED [...] HANA with 4 CPUs requires 64 GB memory (32)


cf update-service tst_cf_db -c '{"data": {"vcpu":4, "memory":64}}'

FAILED [...] HANA with 64 GB memory requires at least 200 GB storage (120)

cf update-service tst_cf_db -c ‘{“data”: {“vcpu”:4, “memory”:64, “storage”:200}}

OK

Decrease the size:

Decreasing the size is unfortunately not possible at the time of this post. This roadmap item tracks it.

 

All the commands are described in the documentation.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.