What is Proxmox?
Proxmox is an Open Source Virtual Envrironment (VE), similar to VMWare’s ESXi/vSphere or Microsoft Hyper-V, that allows you to run Virtual Machines on a single system. The benefit is that it uses less resources, so it can be installed on less powerful machines, rather than needing server hardware. This blog will not go into the details or additional benefits of Proxmox. However, if you are looking for a Virtual environment that you can run on an older, unused computer you might already have, I would recommend checking it out.
Why use Proxmox for IDN development?
As mentioned above, Proxmox in an Open Source Virtual Environment, so it will allow you to do the standard things that any other VE would do. Here are some of the ways that I have used Proxmox with both IIQ and IDN that would be beneficial to others:
- Easily spin up VMs for Source and Target systems.
- Snapshot base and intermediate states of the VMs so you can revert to a previous snapshot if you end up in an incorrect state.
- Create a Template image that you can use to spin up VMs faster for your development sandbox. I have a base template that is pre-configured with my SSH Key and the tools I commonly use. This allows me to do a full clone of the template when I want to spin up a new machine.
- For IDN specifically, I can spin up several “datacenters” to connect to IDN as separate Virtual Appliance Clusters.
What do we need before we start?
Before you begin, you should have the following:
- Proxmox Server 7.4+ running and configured (may work with older versions, but only tested with Proxmox 7.4.3) Proxmox Virtual Environment
- IDN Tenant
- IDN VA Software downloaded.
- SSH access to the Proxmox host, and a user who can run the
qm
commands (root was used for this since it is a sandbox environment.)
Let’s get deploying!
Prepare the files
-
On your local machine, create a staging folder on your machine. We’ll use
~/staging
for this blog. -
On your local machine, download the VA file to the staging folder
This will be one of the following:- Regular VA package
va-latest.zip
for standard installations - Ambassador VA package
vavm.7z
for Ambassador installations
- Regular VA package
-
From your local machine, unzip the above file in the staging folder
-
On your local machine, navigate into the folder you just unzipped. You should see 1
.vmdk
file in the va-latest folder, or 2.vmdk
files in the vmva folder. -
From your local machine, copy these files over to a known location on the Proxmox Server using the terminal. We’ll use /tmp/upload folder which we created previously.
You can use the following command:
scp sailpoint-va*.vmdk root@<PROXMOX_HOST>:/tmp/upload
Import .vmdk disk to Proxmox VM
To create the VM and import the .vmdk
file, you will need to access the Proxmox Web UI on your local machine, as well as SSH into the Proxmox server and run commands in the terminal. How to connect to both is outside of the scope of this article.
Follow these steps to import the .vmdk:
-
From the Web UI, create a new VM using the “Create VM” Button and follow through the tabs, configuring the items mentioned for each tab as you go.
- General Tab: provide VM ID and VM Name
- OS Tab: Select “Do not use any media” and “Other” for Guest OS Type
- System: Leave everything by default
- Disks: Remove any default disks (we don’t need anything since we’ll be importing)
- CPU: 1
- Memory: 8192 mb
- Network: Set to your environment
NOTE: Do NOT start the VM at this time.
-
SSH into the Proxmox host from a terminal window. The following commands will be run from this SSH session on the Proxmox Server.
-
Navigate to the folder that the
.vmdk
file(s) has been copied to on the Proxmox Server (/tmp/upload
in this example). If it is not uploaded yet, upload the files now.cd /tmp/upload/
-
Next you need to convert and import the .vmdk disk to the newly created VM. Make sure you set the VM_ID to the one used to create the VM in the UI and replace the storage location (local-lvm in the example) with your storage volume.
For the Regular VA package, the command would be:qm importdisk <VM_ID> sailpoint-va-disk1.vmdk local-lvm --format raw
For Ambassador VA package, it would use the main .vmdk file, so the command would be:
qm importdisk <VM_ID> sailpoint-va_session-disk1.vmdk local-lvm --format raw
NOTE: If you are using Ambassador VA package, and you get a file not found, check to see that all .vmdk files were uploaded correctly.
-
Wait until the command completes executing and you see a new command prompt. Sometimes the command appears to be hung at 100%, even though it is still processing. Do not kill the command otherwise you may have to start from the beginning. During testing, it only took 1-3 minutes to run.
-
Once qm importdisk is finished, you need to rescan disks in order to see the newly imported disk in the Hardware section of your VM. Execute the following command:
qm rescan
-
Go back to the Proxmox Web UI on your local machine for the remaining steps.
-
Navigate to the VM you created earlier, but do not start it. Select the Hardware Menu. You should see the hardware list in the right pane, with a hard disk labeled “unused”
-
Double click on the unused hard disk to get the add disk pop-up. Check that the hard disk type is something other than IDE for performance. Sata, SCSI, or VirtIO are good options. For testing, SATA was used.
-
Make sure that the Hard Drive is in the Boot Order list. Select the Options Menu, then Boot Order and click the edit button. In the window, enable the hard drive by checking the box, and move it to the top of the list if it is not already.
-
The VM should now be ready. Start the VM. You can double click on it to open up a VNC window to the VM to interact with it.
-
Once the VM reaches the Sailpoint login prompt, you can continue with Creating the Virtual Appliance to connect the VA to your IDN Tenant.
Alternate Approaches
When using the Standard VA Package, you can also import that using another approach to import the OVF files directly into Proxmox which is easier. This will not works with the Ambassador VA Package, as the files are stored in a different format.
If you are planning to connect to a Partner or Client IDN Tenant using the Standard VA Package, follow these steps:
-
On your local machine, download the Regular VA package
va-latest.zip
file to the staging folder. -
From your local machine, copy the Standard VA Package zip file to the Proxmox Server using the terminal.
scp va-latest.zip root@<PROXMOX_HOST>:/tmp/upload/
-
SSH into the Proxmox host from a terminal window. The following commands will be run from this SSH session on the Proxmox Server.
-
Unzip the file
unzip /tmp/upload/va-latest.zip
-
Navigate into the new directory
cd /tmp/upload/va-latest/
-
Run the command to import the ovf file as a Virtual Machine, giving it a new, unused VM_ID, and replace the storage location (local-lvm in the example) with your storage volume.
qm importovf <VM_ID> sailpoint-va.ovf local-lvm
-
Wait until the command completes executing and you see a new command prompt. Sometimes the command appears to be hung at 100%, even though it is still processing. Do not kill the command otherwise you may have to start from the beginning. During testing, it only took 1-3 minutes to run.
-
The VM should now be ready. Go to the Proxmox Web UI from your local machine and Start the VM.
-
Once the VM reaches the Sailpoint login prompt, you can continue with Creating the Virtual Appliance to connect the VA to your IDN Tenant.
Conclusion
Proxmox is another tool that a developer can use to develop, test and learn with the IDN (and IIQ) products. This article offers 2 approaches to loading the IDN VA into it, depending on which type of package you need to use. Since the focus of this is for the Ambassadors, the primary approach provides is the most universal, working with both the Ambassador VA Package and the Standard VA Package. The alternate approach is currently limited to just the Standard VA Package, but is included because it is fewer steps overall to get to a working IDN VA.