Install Instana on IBM Cloud using Terraform and Ansible


Instana is a fantastic APM tool and super easy to install. The steps described at are straightforward, and you can get an Instana running in less than an hour!

However, it assumes you have a VM created. Not a big deal, but it adds up to the sequence of steps you need to follow.

In this blog, I will show you how to install Instana on IBM Cloud. First, I use Terraform to create the VM, then Ansible to configure it.

Obtain the scripts

The first step is to retrieve the automation scripts by cloning a git repository:

git clone
cd install-instana

Generate an IBM Cloud API Key

If you don’t have an IBM Cloud API Key, follow the procedure described at to obtain a key.

Configure properties

Next, you need to configure the API Key and the desired resource prefix.

First, copy the template file:

cp .envrc-template .envrc

Then edit the .envrc file to define the following keys:


Generate the SSH Key

Instana requires an SSH Key, so run the following command to generate it:

make create-ssh-key

This command will update the .envrc file to contain the SSH Key used in the Terraform script.

Finally, load this file in your shell:

. ./.envrc

Prepare for Instana

Now, you are ready to install Instana:

make prepare

This command will create a VM in IBM Cloud, then get ready to install Instana. In the end, you should see an output like this:

TASK [Generate hostname] ************************************************************************************************************************************************
changed: [patro-instana-idea] => {"changed": true, "msg": "1 replacements made"}
TASK [Replace Sales ID] *************************************************************************************************************************************************
changed: [patro-instana-idea] => {"changed": true, "msg": "1 replacements made"}
TASK [Replace Agent Key] ************************************************************************************************************************************************
changed: [patro-instana-idea] => {"changed": true, "msg": "2 replacements made"}
PLAY RECAP **************************************************************************************************************************************************************
patro-instana-idea : ok=13 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Install Instana

We are now ready to install Instana. As the process might take about 30 mins or so, I decided to do it outside the ansible process to follow the execution.

Run the following command to log in to the VM:

make ssh

You should now be logged to the VM. Run the following command to install Instana:

instana init -f settings.hcl -y --force

You will see the following output:

# instana init -f settings.hcl -y --force
docker has 16 cpus available. From release 209 this will be the minimum numbers of CPU required to start instana.
Setup host environment ✓
Handle certificates ✓
Ensure images ✓
Clean docker containers ✓
Check data directories ✓
Create configurations ✓
Run data stores ✓
Migrate data stores ✓
Run components ✓
Check components ✓
Setup environment urls ✓
Run nginx ✓
Initialize tenant unit ✓
Welcome to the World of Automatic Infrastructure and Application Monitoringhttps://XXXX
E-Mail: admin@instana.local
Password: XXXX

Configure the Instana license

We are almost done… The last step is to configure the Instana license, by running the following command:

instana license download

You will see the following output:

# instana license download
Download license ✓

Finally run the following command to import the license:

instana license import -f /root/license

You will see the following output:

instana license import -f /root/license
Import license ✓
License is successfully imported

Now you are ready to enjoy your Instana environment!


This article showed how to install Instana on IBM Cloud, using a script that combines Terraform and Ansible.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store