-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
04e8059
commit 46e8e9a
Showing
6 changed files
with
321 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,25 @@ | ||
Netscaler Azure templates | ||
-------------------------------------- | ||
|
||
**Introduction** | ||
---------------- | ||
## Introduction | ||
Welcome to the GitHub repository for Citrix Netscaler Azure templates. This is a repository for [Citrix NetScaler's](https://www.citrix.com/products/netscaler-adc/) templates for deploying Citrix NetScaler in Microsoft Azure Cloud Services. All of the templates in this repository have been developed by the NetScaler engineering team. | ||
|
||
Welcome to the GitHub repository for Citrix Netscaler Azure templates for deploying Netscaler in Microsoft Azure Cloud Services. All of the templates in this repository have been developed by the Netscaler engineering team. There are two main directories: Supported and Experimental | ||
## Citrix NetScaler VPX | ||
Citrix NetScaler VPX is a virtual application delivery controller that combines the latest cloud-native features with a simple user experience. The NetScaler optimizes the user experience ensuring that applications are always available by using advanced L4-7 load balancing, traffic management and proven application acceleration such as HTTP compression and caching. | ||
|
||
**Supported:** | ||
The Supported directory has Netscaler Azure templates that have been created and fully tested by the Citrix team. Should you run into any issues while using these templates, you can get from Citrix Technical Support teams through standard procedures. | ||
## Citrix NetScaler VPX in Azure | ||
Citrix NetScaler VPX offers are available as resources in the Azure portal. This repository is an extension to provide additional deployments supported by Citrix. | ||
|
||
**Experimental:** | ||
The Experimental directory has Azure templates that have not yet completed full testing and are subject to change. Citrix does not provide technical support for templates in this directory. Caution is advised while using these templates. | ||
## About these templates | ||
Each template in this repository has co-located documentation describing the usage and architecture of the template. The templates attempt to codify recommended deployment architecture of the Citrix NetScaler VPX, or to introduce the user to the Citrix NetScaler or to demonstrate a particular feature / edition / option. Users can re-use / modify or enhance the templates to suit their particular production and testing needs. Most templates require sufficient subscriptions to portal.azure.com to create resource and deploy templates. | ||
|
||
## Versioning | ||
The master branch of the repository generally has the latest version of the template. Older released versions are tagged appropriately | ||
|
||
## Support | ||
For production issues with the templates, please contact Citrix Support through your normal support channels. If you have fixes / suggestions for improvements or requests, please raise an issue in this repository. | ||
|
||
## Further reading | ||
- VPX installation in Azure : https://docs.citrix.com/en-us/netscaler/12/deploying-vpx/deploy-vpx-on-azure.html | ||
- Citrix NetScaler 12.0 Documention : https://docs.citrix.com/en-us/netscaler/12.html | ||
- Citrix NetScaler Overview : https://www.citrix.com/products/netscaler-adc/resources/netscaler-vpx.html |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## NetScaler VPX Express | ||
NetScaler VPX Express is a free virtual application delivery controller (normal hourly Azure Virtual Machine rates apply). This Azure custom template deployment can be used for light production loads, testing and prototyping needs. | ||
|
||
|
||
## Azure Custom Template description | ||
This template creates an instance of the VPX Express from the VPX Express SKU image utilising a single subnet within provided virtual network. This template also utilizes a custom script that initializes the VPX instance. Initial configuration performed by the custom script includes network interface configuration, VIP configuration and feature configuration. Further configuration can be performed by logging in to the GUI or via SSH. | ||
|
||
## Network architecture | ||
The Azure custom template deploys the VPX in a single-NIC mode. The standard NetScaler IP addresses: NSIP (management IP), VIP (where load balanced applications are accessed) and SNIP (the IP used to send traffic to backend instances) are all provisioned on the single NIC and are drawn from the (RFC1918) address space of the provided virtual network's subnet. The (RFC1918) NSIP is mapped to the Public IP of the VPX Instance and the RFC1918 VIP is mapped to another public IP. | ||
|
||
## Quick Launch Link | ||
|
||
[![Create NetScaler VPX Express](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fcitrix%2Fnetscaler-azure-templates%2Fmaster%2Ftemplates%2Fexpress_single_nic%2FmainTemplate.json) | ||
|
||
|
||
## Additional Links: | ||
|
||
- VPX installation in Azure : https://docs.citrix.com/en-us/netscaler/12/deploying-vpx/deploy-vpx-on-azure.html | ||
- NetScaler 12.0 Documentation : https://docs.citrix.com/en-us/netscaler/12.html | ||
- NetScaler Overview : https://www.citrix.com/products/netscaler-adc/resources/netscaler-vpx.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,282 @@ | ||
{ | ||
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | ||
"contentVersion": "1.0.0.0", | ||
"parameters": { | ||
"location": { | ||
"type": "string" | ||
}, | ||
"virtualMachineName": { | ||
"type": "string" | ||
}, | ||
"virtualMachineSize": { | ||
"type": "string" | ||
}, | ||
"adminUsername": { | ||
"type": "string" | ||
}, | ||
"adminPassword": { | ||
"type": "securestring" | ||
}, | ||
"virtualNetworkName": { | ||
"type": "string" | ||
}, | ||
"vnetRG": { | ||
"type": "string" | ||
}, | ||
"vnetNewOrExisting": { | ||
"type": "string" | ||
}, | ||
"networkInterfaceName": { | ||
"type": "string" | ||
}, | ||
"networkSecurityGroupName": { | ||
"type": "string" | ||
}, | ||
"diagnosticsStorageAccountName": { | ||
"type": "string" | ||
}, | ||
"diagnosticsStorageAccountType": { | ||
"type": "string" | ||
}, | ||
"addressPrefix": { | ||
"type": "string" | ||
}, | ||
"subnetName": { | ||
"type": "string" | ||
}, | ||
"subnetPrefix": { | ||
"type": "string" | ||
}, | ||
"baseUrl": { | ||
"defaultValue": "https://github.com/citrix/netscaler-azure-templates", | ||
"type": "String", | ||
"metadata": { | ||
"artifactsBaseUrl": "", | ||
"description": "The base URL for dependent assets" | ||
} | ||
} | ||
}, | ||
"variables": { | ||
"vnetId": "[resourceId(parameters('vnetRG'),'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]", | ||
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]", | ||
"nicId": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]" | ||
}, | ||
"resources": [{ | ||
"type": "Microsoft.Compute/virtualMachines/extensions", | ||
"name": "[concat(parameters('virtualMachineName'),'/', 'vpx-express')]", | ||
"apiVersion": "2017-12-01", | ||
"location": "[parameters('location')]", | ||
"dependsOn": [ | ||
"[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]" | ||
], | ||
"properties": { | ||
"publisher": "Microsoft.OSTCExtensions", | ||
"type": "CustomScriptForLinux", | ||
"typeHandlerVersion": "1.5", | ||
"autoUpgradeMinorVersion": true, | ||
"settings": { | ||
"fileUris": ["https://nsmpscript.blob.core.windows.net/custom-script/express/custom_script.py"], | ||
"enableInternalDNSCheck": "false" | ||
}, | ||
"protectedSettings": { | ||
"commandToExecute": "[concat('/var/python/bin/python custom_script.py ', parameters('adminPassword'))]" | ||
} | ||
} | ||
}, { | ||
"name": "[parameters('virtualMachineName')]", | ||
"type": "Microsoft.Compute/virtualMachines", | ||
"apiVersion": "2017-12-01", | ||
"location": "[parameters('location')]", | ||
"dependsOn": [ | ||
"[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]", | ||
"[concat('Microsoft.Network/publicIpAddresses/', parameters('virtualMachineName'), '-nsip')]", | ||
"[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]" | ||
], | ||
"properties": { | ||
"osProfile": { | ||
"computerName": "[parameters('virtualMachineName')]", | ||
"adminUsername": "[parameters('adminUsername')]", | ||
"adminPassword": "[parameters('adminPassword')]", | ||
"customData": "[base64(concat('config=express;username=', parameters('adminUsername') ))]" | ||
}, | ||
"hardwareProfile": { | ||
"vmSize": "[parameters('virtualMachineSize')]" | ||
}, | ||
"storageProfile": { | ||
"imageReference": { | ||
"publisher": "citrix", | ||
"offer": "netscalervpx-120", | ||
"sku": "netscalervpxexpress", | ||
"version": "latest" | ||
}, | ||
"osDisk": { | ||
"createOption": "fromImage", | ||
"managedDisk": { | ||
"storageAccountType": "Standard_LRS" | ||
} | ||
}, | ||
"dataDisks": [] | ||
}, | ||
"networkProfile": { | ||
"networkInterfaces": [{ | ||
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]" | ||
} | ||
] | ||
}, | ||
"diagnosticsProfile": { | ||
"bootDiagnostics": { | ||
"enabled": true, | ||
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName')), '2017-10-01').primaryEndpoints['blob']]" | ||
} | ||
} | ||
}, | ||
"plan": { | ||
"name": "netscalervpxexpress", | ||
"publisher": "citrix", | ||
"product": "netscalervpx-120" | ||
} | ||
}, { | ||
"name": "[parameters('diagnosticsStorageAccountName')]", | ||
"type": "Microsoft.Storage/storageAccounts", | ||
"apiVersion": "2017-10-01", | ||
"kind": "Storage", | ||
"location": "[parameters('location')]", | ||
"sku": { | ||
"name": "[parameters('diagnosticsStorageAccountType')]" | ||
}, | ||
"properties": {} | ||
}, { | ||
"name": "[parameters('virtualNetworkName')]", | ||
"type": "Microsoft.Network/virtualNetworks", | ||
"apiVersion": "2017-10-01", | ||
"location": "[parameters('location')]", | ||
"properties": { | ||
"addressSpace": { | ||
"addressPrefixes": [ | ||
"[parameters('addressPrefix')]" | ||
] | ||
}, | ||
"subnets": [{ | ||
"name": "[parameters('subnetName')]", | ||
"properties": { | ||
"addressPrefix": "[parameters('subnetPrefix')]" | ||
} | ||
} | ||
] | ||
}, | ||
"condition": "[equals(parameters('vnetNewOrExisting'),'new')]" | ||
}, { | ||
"name": "[parameters('networkInterfaceName')]", | ||
"type": "Microsoft.Network/networkInterfaces", | ||
"apiVersion": "2017-10-01", | ||
"location": "[parameters('location')]", | ||
"dependsOn": [ | ||
"[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", | ||
"[concat('Microsoft.Network/publicIpAddresses/', parameters('virtualMachineName'), '-vip')]", | ||
"[concat('Microsoft.Network/publicIpAddresses/', parameters('virtualMachineName'), '-nsip')]", | ||
"[concat('Microsoft.Network/networkSecurityGroups/', parameters('networkSecurityGroupName'))]" | ||
], | ||
"properties": { | ||
"ipConfigurations": [{ | ||
"name": "nsip", | ||
"properties": { | ||
"primary": true, | ||
"subnet": { | ||
"id": "[variables('subnetRef')]" | ||
}, | ||
"privateIPAllocationMethod": "Dynamic", | ||
"publicIpAddress": { | ||
"id": "[resourceId('Microsoft.Network/publicIpAddresses', concat(parameters('virtualMachineName'), '-nsip'))]" | ||
} | ||
} | ||
}, { | ||
"name": "vip", | ||
"properties": { | ||
"subnet": { | ||
"id": "[variables('subnetRef')]" | ||
}, | ||
"privateIPAllocationMethod": "Dynamic", | ||
"publicIpAddress": { | ||
"id": "[resourceId('Microsoft.Network/publicIpAddresses', concat(parameters('virtualMachineName'), '-vip'))]" | ||
} | ||
} | ||
}, { | ||
"name": "snip", | ||
"properties": { | ||
"subnet": { | ||
"id": "[variables('subnetRef')]" | ||
}, | ||
"privateIPAllocationMethod": "Dynamic" | ||
} | ||
} | ||
], | ||
"networkSecurityGroup": { | ||
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]" | ||
} | ||
} | ||
}, { | ||
"name": "[concat(parameters('virtualMachineName'), '-vip')]", | ||
"type": "Microsoft.Network/publicIpAddresses", | ||
"apiVersion": "2017-10-01", | ||
"location": "[parameters('location')]", | ||
"properties": { | ||
"publicIpAllocationMethod": "Dynamic" | ||
}, | ||
"sku": { | ||
"name": "Basic" | ||
} | ||
}, { | ||
"name": "[concat(parameters('virtualMachineName'), '-nsip')]", | ||
"type": "Microsoft.Network/publicIpAddresses", | ||
"apiVersion": "2017-10-01", | ||
"location": "[parameters('location')]", | ||
"properties": { | ||
"publicIpAllocationMethod": "Dynamic" | ||
}, | ||
"sku": { | ||
"name": "Basic" | ||
} | ||
}, { | ||
"name": "[parameters('networkSecurityGroupName')]", | ||
"type": "Microsoft.Network/networkSecurityGroups", | ||
"apiVersion": "2017-10-01", | ||
"location": "[parameters('location')]", | ||
"properties": { | ||
"securityRules": [{ | ||
"name": "ssh-rule", | ||
"properties": { | ||
"description": "Allow remote SSH", | ||
"priority": 1000, | ||
"protocol": "TCP", | ||
"access": "Allow", | ||
"direction": "Inbound", | ||
"sourceAddressPrefix": "Internet", | ||
"sourcePortRange": "*", | ||
"destinationAddressPrefix": "*", | ||
"destinationPortRange": "22" | ||
} | ||
}, { | ||
"name": "web-rule", | ||
"properties": { | ||
"description": "Allow Secure WEB", | ||
"priority": 1001, | ||
"protocol": "Tcp", | ||
"access": "Allow", | ||
"direction": "Inbound", | ||
"sourceAddressPrefix": "Internet", | ||
"sourcePortRange": "*", | ||
"destinationAddressPrefix": "*", | ||
"destinationPortRange": "443" | ||
} | ||
} | ||
] | ||
} | ||
} | ||
], | ||
"outputs": { | ||
"adminUsername": { | ||
"type": "string", | ||
"value": "[parameters('adminUsername')]" | ||
} | ||
} | ||
} |