- Introduction
- Install Instructions
- Upgrade Instructions
- How it Works
- Example iguana_service.hdf files
- Example IguanaConfiguration.xml files
Introduction
Doing a manual installation can make upgrades much easier and gives you much more control over your servers running Iguana.
The key idea is that the following categories of files should be cleanly separated:
-
-
- Configuration files:
- IguanaConfiguration.xml
- Iguana uses two GIT Repositories
- IguanaLicense file
- VMD files if you are using classical Iguana channels
- Log files: best stored on a separate high speed partition with a large capacity
- Application files: We can use a single install directory for multiple Iguana instancesƒ
- Configuration files:
-
Taking the time to lay things out in this manner will make upgrades a lot easier. We’ve put the right options in place to make this kind of deployment possible since we make extensive use of this functionality internally. We maintain a large farm of Iguana servers for testing, and for our own integration infrastructure.
If you have any questions please contact us at support@interfaceware.com.
Note: We use mostly Windows examples – but the same principles apply on Linux systems.
Install Instructions [top]
Windows install instructions:
- Download the latest Iguana manual installer file:
- Go to the Iguana Downloads page
- Click the blue WINDOWS MANUAL INSTALL link to download the 64 bit Windows zip file:
- If you need older Iguana versions you can get them from our public downloads site
- Install Iguana:
- Create the Iguana install directory: You can install in any directory you choose.
We intentionally did not install in the installer default directory C:\Program Files\iNTERFACEWARE\Iguana\ as access is restricted by Windows UAC, and you would need to disable and re-enable UAC for the install process and for any later upgrades.
- For Windows we used: “C:\iNTERFACEWARE”
- Unpack the manual installer file into the C:\iNTERFACEWARE directory
- This will usually create an install directory named C:\iNTERFACEWARE\iNTERFACEWARE-Iguana
- Rename the install directory to C:\iNTERFACEWARE\IguanaApp
- Create the Iguana install directory: You can install in any directory you choose.
- Create the three Iguana working directories: <install path>\Iguana[X], we used:
- “C:\iNTERFACEWARE\IguanaA”
- “C:\iNTERFACEWARE\IguanaB”
- “C:\iNTERFACEWARE\IguanaC”
- Video for steps 3, 4 and 5:
- Copy the Iguana service files into the working directories:
- Copy the iguana_service.exe and iguana_service.hdf files
- Rename the Iguana service files to match the working directories:
The names for the .exe and the .hdf file must match exactly. Later when you run iguana_serviceA.exe to install the corresponding iguana service it expects to find a matching iguana_serviceA.hdf file in the same directory.
- iguana_serviceA.exe and iguana_serviceA.hdf
- iguana_serviceB.exe and iguana_serviceB.hdf
- iguana_serviceC.exe and iguana_serviceC.hdf
- Change the following four settings in iguana_service hdf files:
-
- Set service_display_name to a unique name
- For example in iguana_serviceA.hdf we used “iNTERFACEWARE Iguana Instance A”
- Set service_name to a unique name
- For example in iguana_serviceA.hdf we used “IguanaA”
- Update command_line to set the iguana.exe and the working directory for Windows systems:
- For example in iguana_serviceA.hdf this is the path for the iguana.exe
command_line=C:\iNTERFACEWARE\IguanaApp\iguana.exe --working_dir C:\iNTERFACEWARE\IguanaA\
- And we added the
--working_dir
parameter to set the working directorycommand_line=C:\iNTERFACEWARE\IguanaApp\iguana.exe --working_dir C:\iNTERFACEWARE\IguanaA\
Tip: Always put quotes around paths that have spaces in them, for example:
command_line=C:\IguanaApp\iguana.exe --working_dir "C:\Program Files\iNTERFACEWARE\Iguana\IguanaDev"
- For example in iguana_serviceA.hdf this is the path for the iguana.exe
- Alternatively update command_line_unix to set the iguana.exe and the working directory for Linux systems:
- For example in iguana_serviceA.hdf:
command_line_unix=/home/iguana/iguana_app/iguana --working_dir /home/iguana/A/
- For example in iguana_serviceA.hdf:
- Set service_display_name to a unique name
Tip: You can use the example iguana_service hdf files below to follow our structure – or you can change the settings as indicated above.
-
- Install the three Iguana services manually:
More info: Windows: How to Install/Uninstall the Iguana Service From a Command Prompt.
- Open a command prompt as administrator
- Use the cd command to change to the Iguana install directory
- Run the
iguana_service --install
command
- Run each of Iguana services to initialize the working directory:
Initially all three Iguana instances will be setup to use the default port 6543 (URL: localhost:6543). This means you can only start one service at a time as there will be a port conflict. Therefore you need to stop each service before running the next one. We will change the ports in the next step to resolve this conflict.
- Start and stop each Iguana instance using the Windows Services app
- Enter a valid license code when you start each instance, usually you will get this from your Members Account
- If you have any questions any licensing questions please contact us at support@interfaceware.com
- Or use net start/stop in a terminal with administrator rights, like:
net start IguanaA
- All three Iguana instances will default to using port 6543 (URL: http://localhost:6543)
- Start and stop each Iguana instance using the Windows Services app
- Change config settings:
The examples shown below are for the Iguana A instance, you need to change names and increment port numbers for the other instances. See the example IguanaConfiguration.xml files below where the required changes are highlighted in yellow.
- Change the setting in the configuration file: <working dir>\IguanaConfigurationRepo\IguanaConfiguration.xml
- For the IguanaA example: C:\iNTERFACEWARE\IguanaA\IguanaConfigurationRepo\IguanaConfiguration.xml
- Set web port: web_config>port:
<web_config port="8000"
- Add the server name entry: server_label:
<web_config server_label="Iguana A Instance"
- Set log file directory: log_directory:
You can setup the log files anywhere – for the best performance use the fastest possible disk device. See Log Configuration and Performance for more information. As our test machine does not have a D drive we had to use C drive – this in not good practice in fact it is probably the worst place to put the logs (as they will be competing with the operating system and other programs for disk access)
- Our example configuration uses D drive which would be a fast disk device dedicated to the logs:
<log_config log_directory="D:/iNTERFACEWARE/iguanaA/logs/"
- We had to use C drive on our test machine – please do not put your logs on C drive:
<log_config log_directory="C:/iNTERFACEWARE/iguanaA/logs/"
- Our example configuration uses D drive which would be a fast disk device dedicated to the logs:
- Set plugin port: rpc_config>port:
NOTE: It’s not essential to change this but if you don’t you will get a (harmless) error when Iguana starts up<rpc_config port="7000"/>
- Change the setting in the configuration file: <working dir>\IguanaConfigurationRepo\IguanaConfiguration.xml
- Set HTTP(S) channels port in the Iguana Settings:
A new https_channel_server element for this setting will be added to your settings in IguanaConfiguration.xml. But as the entry is not included in the default configuration file it is easier to use Settings to add the the entry than to edit IguanaConfiguration.xml.
- Open Settings>HTTP(S) Channel Settings and click the Edit button
- Change the Plugin Communication Port to your chosen port number, for example we used:
- IguanaA = 6000
- IguanaB = 6001
- IguanaC = 6002
- Click Save Changes and Restart Server
Upgrade Instructions [top]
These instructions are intended for upgrading Iguana from V6 → V6 (or V5 → V5). If you are upgrading from V5 → V6 please read Upgrade to Iguana 6.
- Stop all the Iguana services that use the shared install files:
- Stop the Iguana services using the Windows Services app
- Or use net start/stop in a terminal with administrator rights, like:
net stop IguanaA
- CRITICAL STEP: Backup or copy all the Iguana instances and the Iguana install directory:
- For example we can backup (or copy) C:\iNTERFACEWARE as it contains the install directory and our three instances
- NOTE: Be sure to stop Iguana before you backup or copy the working directories (prevents issues with locking log indexes)
- See Backup and restore Iguana for more information on backup
- NOTE: This is a critically important step when upgrading production systems
- For example we can backup (or copy) C:\iNTERFACEWARE as it contains the install directory and our three instances
- Setup some test channels:
You should not run live channels during testing as you could potentially damage live data. The safest way to test upgrades is to use a test server that is a copy of the live server.
Note: We are intentionally setting up test channels before we upgrade the Iguana server. This is much safer because if you (unintentionally) start any production channels they will safely process data using your current installation.
- The safest way to test the upgrade is on a test server, to create a test server:
- Copy the install directory and the working directories to another machine or virtual machine
- Install the Iguana Services for the one instance you will use to test
- Enter a license code usually from your Members Account
- Also see Moving Iguana from one Server to Another for more information
- Setup some test channels that do not process live data:
- Change any channels you will run for testing to use dummy data sources and targets – to prevent processing live data
- As a precaution you should delete all channels other than your test channels – to ensure you cannot process live data
- Alternatively you can run your tests carefully on your live production server
- For testing on a production server:
- You need to run Iguana in safe mode to prevent any channels from starting automatically
- Open a command prompt and run these commands
cd <iguana install directory> iguana --run --safe_mode --working_dir <Iguana working directory> For example: cd C:\iNTERFACEWARE\IguanaApp iguana --run --safe_mode --working_dir C:\iNTERFACEWARE\IguanaA
- Setup some test channels that do not process live data:
-
- Duplicate some channels for testing and configure them to use dummy data sources and targets – to prevent processing live data
- There are various ways to copy channels – for simple channels just pasting the code into a new channel is often easiest
-
- The safest way to test the upgrade is on a test server, to create a test server:
- Download the latest Iguana manual installer file:
- Go to the Iguana Downloads page
- Click the blue WINDOWS MANUAL INSTALL link to download the 64 bit Windows zip file:
- If you need older Iguana versions you can get them from our public downloads site
- Rename the previous install directory:
- Rename the previous install directory with a meaningful name like <install dir>_<old_version>
- For example we renamed C:\iNTERFACEWARE\IguanaApp to C:\iNTERFACEWARE\IguanaApp_old_601 as we are upgrading 6.0.1
- Extract the iguana_noinstaller zip file
- Unpack the manual installer file into the C:\iNTERFACEWARE directory
- This will should create an install directory named C:\iNTERFACEWARE\iNTERFACEWARE-Iguana
- Rename the new install directory to match your previous install directory:
-
- For example we renamed the new C:\iNTERFACEWARE\iNTERFACEWARE-Iguana directory to C:\iNTERFACEWARE\IguanaApp
-
- Use one Iguana instance to test that everything is working correctly:
You should not run live channels during testing as you could potentially damage live data. The safest way to test upgrades is to use a test server that is a copy of the live server.
- The safest way to test the upgrade is using a test server – see step three:
- For testing on a production server:
- Make a copy of the working directory instance that you will use to test
- For example if we used Iguana Instance A for testing then we would copy C:\iNTERFACEWARE\IguanaA\
- Make a copy of the working directory instance that you will use to test
- Start your chosen Iguana service in safe mode:
-
- You need to run Iguana in safe mode to prevent any channels from starting automatically
- Open a command prompt and run these commands
cd <iguana install directory> iguana --run --safe_mode --working_dir <Iguana working directory> For example: cd C:\iNTERFACEWARE\IguanaApp iguana --run --safe_mode --working_dir C:\iNTERFACEWARE\IguanaA
-
- Confirm that everything is running as expected
- Test that Iguana is working correctly:
- Check all Iguana administration functions
- Check you can view logs and edit code
- etc.
- Test with non-production test channel(s) you setup earlier in step three:
-
- Ensure you do not run any production channels as you do not want to process live data during testing
- Make sure you can stop and start the test channel(s)
- Make sure they are processing as you expect
-
- Test that Iguana is working correctly:
- If there are problems rollback to the previous version:
- Stop all Iguana instances that are using the shared install – there should only be the one that you are using for testing
- Rename the new install directory
- Keeping it for further investigation later is better than just deleting it
- Reinstate the “old” install directory by renaming it to its original <install dir> name
- For example we would rename C:\iNTERFACEWARE\IguanaApp_old_601 back to C:\iNTERFACEWARE\IguanaApp
- At this point the system should work exactly as it did before you upgraded
- Alternatively you can restore from the backup from step 2
- If there are no problems you can now restart all your Iguana instances and their channels
How it Works [top]
We use a single Iguana install for three (or more) Iguana instances, each with their own separate service and working directory.
- We use one common Iguana install directory
- We use one working directory for each Iguana instance
- The working directory contains files specific to that instance, including:
- The Iguana service setup file, for example: iguana_serviceA.exe
- Iguana git repositories
- The Iguana configuration file <working dir>\IguanaConfigurationRepo\IguanaConfiguration.xml
- etc.
- NOTE: All relative VMD file paths are based on the working directory
- The working directory contains files specific to that instance, including:
- We customize the service install settings files (like: iguana_serviceA.hdf) in each working directory, so that:
- They all use the iguana executable in the common install directory
- Each instance has its own unique service settings
- Each instance points to its own working directory
- We customize the Iguana configuration files (IguanaConfiguration.xml) in each working directory, so that:
- Each instance gets its own unique server name
- Each instance has its own separate log file directory
- Each instance listens on its own unique web port
- Each instance has its own unique plugin port
NOTE: It’s not essential to change this but if you don’t you will get a (harmless) error when Iguana starts up - Each instance gets its own unique HTTP(S) channels port
Example iguana_service.hdf files [top]
This file is located in the Iguana working directory.
The service install settings file for each instance of Iguana show the three required changes in yellow:
- The service name: service_name
- The service display name: service_display_name
- The iguana executable path in: command_line or command_line_unix
- The working directory as –working_dir in: command_line or command_line_unix
iguanaA.hdf
application{ service_kill_timeout = 500000 service_display_name=iNTERFACEWARE Iguana Instance A service_name=iguanaA service_description=HL7 Integration Engine command_line=C:\iNTERFACEWARE\IguanaApp\iguana.exe --working_dir C:\iNTERFACEWARE\IguanaA\ command_line_unix=/home/iguana/iguana_app/iguana --working_dir /home/iguana/A/ path_registry_entry_win32 = SYSTEM\CurrentControlSet\Control\Session Manager\Environment }
iguanaB.hdf
application{ service_kill_timeout = 500000 service_display_name=iNTERFACEWARE Iguana Instance B service_name=iguanaB service_description=HL7 Integration Engine command_line=C:\iNTERFACEWARE\IguanaApp\iguana.exe --working_dir C:\iNTERFACEWARE\IguanaB\ command_line_unix=/home/iguana/iguana_app/iguana --working_dir /home/iguana/B/ path_registry_entry_win32 = SYSTEM\CurrentControlSet\Control\Session Manager\Environment }
iguanaC.hdf
application{ service_kill_timeout = 500000 service_display_name=iNTERFACEWARE Iguana Instance C service_name=iguanaC service_description=HL7 Integration Engine command_line=C:\iNTERFACEWARE\IguanaApp\iguana.exe --working_dir C:\iNTERFACEWARE\IguanaC\ command_line_unix=/home/iguana/iguana_app/iguana --working_dir /home/iguana/C/ path_registry_entry_win32 = SYSTEM\CurrentControlSet\Control\Session Manager\Environment }
Example IguanaConfiguration.xml files [top]
This file is located at <working directory>\IguanaConfigurationRepo\IguanaConfiguration.xml.
The configuration file for each instance of Iguana show the five required changes in yellow:
- The web port that the Iguana server listens on and uses in the its URL (localhost:<port>): web_config>port
- The server name: web_config>server_label
- The log directory used to store the log files: log_config>log_directory
- The plugin port: rpc_config>port
NOTE: It’s not essential to change this but if you don’t you will get a (harmless) error when Iguana starts up - The HTTP(S) channels port: https_channel_server>port
Tip: The plugin port is used by Iguana’s legacy plugin feature. Our recommended best practice is to use web services instead as they are superior and easier to implement.
Note: The Location of the configuration file IguanaConfiguration.xml in Iguana 6 is different from Iguana 5, it has been moved into the IguanaConfigurationRepo subdirectory of the working directory.
IguanaConfiguration.xml A
This file is located at C:\iNTERFACEWARE\IguanaA\IguanaConfigurationRepo\IguanaConfiguration.xml which is the defined working directory for the Iguana A instance.
<iguana_config encryption_key="Xb9+OWCgTi3NSSUY2UTGJg==" major_version="6" minor_version="0" build_number="1" service_log_guid="9B8CD31EE07B29FAE3CCCE25B9503C63" startup_clean="true"> <web_config port="8000" session_timeout="1200" use_https="false" server_label="Iguana A Instance"/> <email_config ... </email_config> <channel_groupings> ... </channel_groupings> <log_config log_purge_time_hour="0" log_purge_time_minute="0" log_directory="D:/iNTERFACEWARE/iguanaA/logs/" max_log_age_days="60" log_sync_type="full"/> <rpc_config port="7000"/>
IguanaConfiguration.xml B
This file is located at C:\iNTERFACEWARE\IguanaB\IguanaConfigurationRepo\IguanaConfiguration.xml which is the defined working directory for the Iguana B instance.
<iguana_config encryption_key="Xb9+OWCgTi3NSSUY2UTGJg==" major_version="6" minor_version="0" build_number="1" service_log_guid="9B8CD31EE07B29FAE3CCCE25B9503C63" startup_clean="true"> <web_config port="8001" session_timeout="1200" use_https="false" server_label="Iguana B Instance"/> <email_config ... </email_config> <channel_groupings> ... </channel_groupings> <log_config log_purge_time_hour="0" log_purge_time_minute="0" log_directory="D:/iNTERFACEWARE/iguanaB/logs/" max_log_age_days="60" log_sync_type="full"/> <rpc_config port="7001"/>
IguanaConfiguration.xml C
This file is located at C:\iNTERFACEWARE\IguanaC\IguanaConfigurationRepo\IguanaConfiguration.xml which is the defined working directory for the Iguana C instance.
<iguana_config encryption_key="Xb9+OWCgTi3NSSUY2UTGJg==" major_version="6" minor_version="0" build_number="1" service_log_guid="9B8CD31EE07B29FAE3CCCE25B9503C63" startup_clean="true"> <web_config port="8002" session_timeout="1200" use_https="false" server_label="Iguana C Instance"/> <email_config ... </email_config> <channel_groupings> ... </channel_groupings> <log_config log_purge_time_hour="0" log_purge_time_minute="0" log_directory="D:/iNTERFACEWARE/IguanaC/logs/" max_log_age_days="60" log_sync_type="full"/> <rpc_config port="7002"/>