|
|
|
|
|
If you host empower® in your corporate cloud, you need to set up all required resources within your Azure environment. To simplify this process for you, this article contains detailed instructions as well as an ARM (Azure Resource Manager) template you can use. |
|
|
ARM templates are a form of infrastructure as code, a concept where you define the infrastructure that needs to be deployed. They use declarative syntax, meaning you define the resources for Azure to deploy without specifying how the resources are created. |
|
|
The ARM template offered in this article has been designed specifically to set up all required resources within your Azure environment, to fit the needs of empower® and have a high functional and high-performance empower® Backend. In the following, you will find a step-by-step guide on what exactly to configure in the ARM Deployment Mask and on the SQL Server side. |
Note
For further information regarding the setup and deployment of ARM templates, see Create and deploy template spec.
Note
If you need further assistance, contact empower® Support.
|
If you use the provided ARM template, the following resources are created: |
|
|
|
To deploy the ARM template, follow the following steps: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Important
The empower® Database can be provided either after a finished customizing by your Onboarding Team or will have a raw format in order to perform customizing directly in your environment.
Please note that for the latter, your Onboarding & Professional Services Specialist will need a guest access in your Microsoft Entra ID.
For further information regarding guest users in your Microsoft Entra ID, see Guest User in Microsoft Entra ID.
Note
To set up empower® with Microsoft Entra ID, an app registration in Microsoft Entra ID needs to be created before the installation of the empower® Backend.
For further information regarding the app registration in Microsoft Entra ID for empower®, see Script for App Registration in Microsoft Entra ID.
For further information regarding the installation of the empower® Backend, see Install the empower® Backend (Version >= 9.7).
Note
The user interface in the Azure Portal may change any time. If you are unsure about an aspect, refer to Microsoft documentation.
|
The following table provides an overview of the fields you need to fill in during deployment and which values are required for those fields: |
|
Field |
Description |
Required? |
|---|---|---|
|
Subscription |
Select the active subscription model. |
Yes |
|
Resource Group |
Create a new resource group or choose an existing one. |
Yes |
|
Region |
This field is filled-in automatically according to the selected resource group. |
Yes |
|
Location |
This field is filled-in automatically. Do not change this value! |
Yes |
|
Company Name |
Enter your company name. The value must not contain spaces and may have a maximum of 10 characters. |
Yes |
|
VM Admin Username |
Enter the user name for the administrator account on the VM. |
Yes |
|
VM Admin Password |
Enter the password for the administrator account on the VM. |
Yes |
|
VM Size |
Enter the VM size. For further information from Microsoft, see Größen für virtuelle Computer in Azure. |
Yes |
|
Windows OS Version |
Enter the Windows operating system version you want to use. The default value for this field is Windows Data Center 2022. |
Yes |
|
Create SQL Resources |
Decide whether all required SQL resources should be created upon deployment. |
Yes |
|
SQL Server Name |
Enter the name for the SQL Server. |
If Create SQL Resources is set to true: Yes |
|
SQL DB Name |
Enter the name for the SQL Database. |
If Create SQL Resources is set to true: Yes |
|
SQL Admin User |
Enter the login name for the SQL Server Admin User. |
If Create SQL Resources is set to true: Yes |
|
SQL Admin Password |
Enter the password for the SQL Server Admin User. |
If Create SQL Resources is set to true: Yes |
|
Storage Account Key |
Enter the access key for the uploaded .bacpac file from your blob storage. To generate the token, navigate to the respective container in the Azure Portal and generate an SAS token. |
If Create SQL Resources is set to true: Yes |
|
Bacpac URL |
Enter the URL to access the .bacpac file. The URL can be copied from the respective Blob Overview. |
If Create SQL Resources is set to true: Yes |
|
As mentioned above, you can download the template via the following link: |
|
|
Alternatively, you can copy the content of the file from the section below: |
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.24.24.22086",
"templateHash": "295844188305582502"
}
},
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the Azure location where the key vault should be created."
}
},
"companyName": {
"type": "string",
"maxLength": 52,
"metadata": {
"description": "Please provide your company name without spaces."
}
},
"vmAdminUsername": {
"type": "string",
"defaultValue": "empower_admin",
"metadata": {
"description": "Please provide the adminUsername without spaces."
}
},
"vmAdminPassword": {
"type": "securestring",
"minLength": 24,
"metadata": {
"description": "Password for the Virtual Machine."
}
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_B2ms",
"allowedValues": ["Standard_DS1_v2", "Standard_B2s", "Standard_B2ms"],
"metadata": {
"description": "The VM size"
}
},
"windowsOSVersion": {
"type": "string",
"defaultValue": "2022-Datacenter-smalldisk",
"allowedValues": [
"2022-Datacenter-smalldisk",
"2019-Datacenter-smalldisk"
],
"metadata": {
"description": "The Windows version for the VM."
}
},
"createSQLResources": {
"type": "bool",
"metadata": {
"description": "Should the SQL-Resources created.? Please check then all Parameters below."
}
},
"sqlServerName": {
"type": "string",
"defaultValue": "empowerSQL",
"metadata": {
"description": "The name of the SQL Server"
}
},
"sqlDBName": {
"type": "string",
"defaultValue": "empower",
"metadata": {
"description": "The name of the SQL Database"
}
},
"sqlAdminUser": {
"type": "string",
"defaultValue": "Admin_User_for_the_SQLServer",
"metadata": {
"description": "The administrator username of the SQL server."
}
},
"sqlAdminPassword": {
"type": "securestring",
"defaultValue": "",
"maxLength": 24,
"metadata": {
"description": "The administrator password of the SQL server."
}
},
"storageAccountKey": {
"type": "securestring",
"defaultValue": "",
"metadata": {
"description": "Specifies the key of the storage account where the BACPAC file is stored."
}
},
"bacpacUrl": {
"type": "string",
"defaultValue": "URL_to_BlobContainer_ where_bacpac_file_is_located",
"metadata": {
"description": "Specifies the URL of the BACPAC file."
}
}
},
"variables": {
"adminUsername": "[parameters('vmAdminUsername')]",
"dnsLabelPrefix": "[format('empower-{0}', toLower(parameters('companyName')))]",
"nicName": "empower-NIC",
"addressPrefix": "10.1.0.0/24",
"subnetName": "empower-Subnet",
"subnetPrefix": "10.1.0.0/24",
"publicIPAddressName": "empower-IP",
"vmName": "empower",
"virtualNetworkName": "empower-VNET",
"subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
"nsgName": "empower-nsg",
"service_user_pw": "[format('P{0}y.', uniqueString(resourceGroup().id, 'a40d309d-3aad-4828-ab53-17e8e8b88439'))]",
"scriptLocation": "[format('https://madeinoffice.blob.{0}/azure-arm/', environment().suffixes.storage)]"
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "pid-a4869ce2-9844-521e-be75-67e904da97b3",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": []
}
}
},
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2022-07-01",
"name": "[variables('publicIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "Dynamic",
"dnsSettings": {
"domainNameLabel": "[variables('dnsLabelPrefix')]"
}
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2022-07-01",
"name": "[variables('nsgName')]",
"location": "[parameters('location')]",
"properties": {
"securityRules": [
{
"name": "empower-services",
"properties": {
"description": "Allow inbound traffic for the empower 8 backend",
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "443",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 109,
"direction": "Inbound"
}
}
]
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2022-07-01",
"name": "[variables('virtualNetworkName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": ["[variables('addressPrefix')]"]
},
"subnets": [
{
"name": "[variables('subnetName')]",
"properties": {
"addressPrefix": "[variables('subnetPrefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgName'))]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', variables('nsgName'))]"
]
},
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2022-07-01",
"name": "[variables('nicName')]",
"location": "[parameters('location')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))]"
},
"subnet": {
"id": "[variables('subnetRef')]"
}
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))]",
"[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]"
]
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2021-11-01",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": {
"computerName": "[variables('vmName')]",
"adminUsername": "[variables('adminUsername')]",
"adminPassword": "[parameters('vmAdminPassword')]"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "[parameters('windowsOSVersion')]",
"version": "latest"
},
"osDisk": {
"createOption": "FromImage",
"diskSizeGB": 256
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
]
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', variables('vmName'), 'empowerAntiMalware')]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.Azure.Security",
"type": "IaaSAntimalware",
"typeHandlerVersion": "1.5",
"autoUpgradeMinorVersion": true,
"settings": {
"AntimalwareEnabled": true,
"RealtimeProtectionEnabled": "true",
"ScheduledScanSettings": {
"isEnabled": "true",
"scanType": "Quick",
"day": "7",
"time": "120"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]"
]
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', variables('vmName'), 'empowerAccount_Policies_and_Disk_Management')]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[format('{0}Account_Policies_and_Disk_Management.ps1', variables('scriptLocation'))]"
],
"commandToExecute": "[format('powershell.exe -ExecutionPolicy Unrestricted -File Account_Policies_and_Disk_Management.ps1 -pw \"{0}\" ', variables('service_user_pw'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]"
]
},
{
"condition": "[parameters('createSQLResources')]",
"type": "Microsoft.Sql/servers",
"apiVersion": "2021-11-01",
"name": "[parameters('sqlServerName')]",
"location": "[parameters('location')]",
"properties": {
"administratorLogin": "[parameters('sqlAdminUser')]",
"administratorLoginPassword": "[parameters('sqlAdminPassword')]",
"version": "12.0"
}
},
{
"condition": "[parameters('createSQLResources')]",
"type": "Microsoft.Sql/servers/firewallRules",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', parameters('sqlServerName'), 'AllowAllAzureIps')]",
"properties": {
"startIpAddress": "0.0.0.0",
"endIpAddress": "0.0.0.0"
},
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', parameters('sqlServerName'))]"
]
},
{
"condition": "[parameters('createSQLResources')]",
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', string(parameters('sqlServerName')), string(parameters('sqlDBName')))]",
"location": "[parameters('location')]",
"sku": {
"name": "S1",
"tier": "Standard",
"size": "S1",
"capacity": 20
},
"properties": {},
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', parameters('sqlServerName'))]"
]
},
{
"condition": "[parameters('createSQLResources')]",
"type": "Microsoft.Sql/servers/databases/extensions",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}/{2}', split(format('{0}/{1}', string(parameters('sqlServerName')), string(parameters('sqlDBName'))), '/')[0], split(format('{0}/{1}', string(parameters('sqlServerName')), string(parameters('sqlDBName'))), '/')[1], 'Import')]",
"properties": {
"storageKeyType": "SharedAccessKey",
"storageKey": "[format('?{0}', parameters('storageAccountKey'))]",
"storageUri": "[parameters('bacpacUrl')]",
"administratorLogin": "[parameters('sqlAdminUser')]",
"administratorLoginPassword": "[parameters('sqlAdminPassword')]",
"operationMode": "Import"
},
"dependsOn": [
"[resourceId('Microsoft.Sql/servers/databases', split(format('{0}/{1}', string(parameters('sqlServerName')), string(parameters('sqlDBName'))), '/')[0], split(format('{0}/{1}', string(parameters('sqlServerName')), string(parameters('sqlDBName'))), '/')[1])]"
]
}
],
"outputs": {
"hostname": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName')), '2022-07-01').dnsSettings.fqdn]"
},
"service_user_pw": {
"type": "string",
"value": "[variables('service_user_pw')]"
}
}
}
Comments
0 comments
Article is closed for comments.