Framework for hosting Smart Console Extensions
This playbook will install Nginx aand configure basic SSL. This downloads a repository from Github and hosts the Smart Console Extensions.
This example was tested using the example Smart Console Extensions
NSGs are created that only allow access to the host on port 443 and port 22. Also, it is defined to allow only one IP address to connect.
Terraform
Azure CLI (If running Terraform on premise)
Clone the repository
git clone https://github.com/metalstormbass/smartconsole-ext.gitEnsure that you have Azure CLI installed. Once installed run the following command in Powershell.
az loginConfigure the variables. The majority of the variables are for Azure settings (VNETs, subnets, names, etc). Two important variables to consider are:
#This variable is the repository that will be cloned and hosted on the webserver. Tested using the Check Point provided examples.
github-address = https://github.com/CheckPointSW/smart-console-extensions.git
#This IP is the only IP address that you will be able to access the new VM from. This would typically be a WAN IP Address
allowed-IPRun the following commands in Terraform:
terraform initthen:
terraform applyFinally, wait until Terraform has completed. Then wait an addtional 5-10 mins for the VM to complete bootstrapping.
Finally, in order to connect the Smart Console extention: 1. Go to Manage & Settings within Smart Console 2. Select Preferences and scroll down to Smart Console Extensions 3. Add the extension URL. By default, it will be something like:
https://x.x.x.x/smart-console-extensions/yourextension.jsonFor the example extension use the following path:
https://x.x.x.x/smart-console-extensions/examples/hello-world/extension.jsonor
https://x.x.x.x/smart-console-extensions/examples/show-gateways-interfaces/extension.jsonTo destroy, you need to run:
terraform destroyAt this point, sometimes you need to run the destroy command several (~3) times for the environment to be completely removed. This appears to be a bug in the dependency handling within Terraform.