Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

This document talks about:

  • More customers are deploying Iguana on the cloud and they are trying to figure whether Iguana can support container architecture

  • Containers offer increased portability (quickly spin up and down containers in any environment) and require less overhead than virtual machines (enables support for multiple applications on a single OS).

  • Even though there is no official Iguana container solution, here are some sample configurations and design that could get you started

Understand Container and Docker

...

Code Block
FROM redhat/ubi8
### Update redhat libraries (libidn is needed to start iguana service)
RUN yum -y update
RUN yum -y install procps
RUN yum -y install libidn.x86_64
RUN yum -y install jq

### Download, unzip, and run Iguana service
RUN cd /mnt && \
curl --insecure -L -o iguana_6_1_5_linux_centos7_x64.tar.gz https://dl.interfaceware.com/iguana/linux/6_1_5/iguana_6_1_5_linux_centos7_x64.tar.gz && \
tar -xvzf iguana_6_1_5_linux_centos7_x64.tar.gz
ENTRYPOINT ["/mnt/iNTERFACEWARE-Iguana/iguana", "--run"]

Sample Docker Build and Run Commands

Code Block
languagenone
## Build Docker Image from Dockerfile
docker build -t iguana-app:1.0 .

## Run Docker image with Iguana Dashboard and HTTP ports binding
docker run -p 8543:6543 -p 8544:6544 --name IguanaDocker -it iguana-app:1.0 bash

Consideration

Run shell script (.sh) in ENTRYPOINT

...

Code Block
IguanaID=`$IguanaWorkingDir/6.1.5/iguana --id`

IguanaToken=`curl -k --request PORTPOST "https://my.interfaceware.com/api?username=$InterfacewareUser&password=$InterfacewarePassword&method=session.login" 2>/dev/null | grep "Token" | sed 's/",//' | sed 's/.*"//'`

EntitlementID=`curl -k --request POST "https://my.interfaceware.com/api?method=license.listentitlements&product=Iguana&token=$IguanaToken" 2>/dev/null | jq ".data[] | select(.name==\"$LicenseName\") | .id " | sed 's/"//g'`

IguanaLicense=`curl -k --request POST "https://my.interfaceware.com/api?method=license.activate&product=Iguana&token=$IguanaToken&description=IguanaLicense&entitlementid=$EntitlementID&instanceid=$IguanaID " 2>/dev/null | jq ".data | .code" | sed 's/"//g'` 

...