This commit is contained in:
Marvin Buss 2021-02-04 19:38:32 +01:00
Родитель 3fb5f9536a
Коммит 9931847b85
5 изменённых файлов: 0 добавлений и 639 удалений

Просмотреть файл

@ -1,130 +0,0 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the location for all resources."
}
},
"powerBiName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"tenantId": {
"type": "string",
"metadata": {
"description": "Specifies the location for all resources."
}
},
"subnetId": {
"type": "string",
"metadata": {
"description": "Specifies the id of the subnet which the private endpoint uses."
}
},
"privateDnsZoneIdAnalysis": {
"type": "string",
"metadata": {
"description": "Specifies the ID of the private dns zonee for Power BI analysis endpoint."
}
},
"privateDnsZoneIdPbiDedicated": {
"type": "string",
"metadata": {
"description": "Specifies the ID of the private dns zonee for Power BI Dedicated endpoint."
}
},
"privateDnsZoneIdPowerQuery": {
"type": "string",
"metadata": {
"description": "Specifies the ID of the private dns zonee for Power BI power query."
}
}
},
"functions": [],
"variables": {
"location": "[parameters('location')]",
"powerBiName": "[parameters('powerBiName')]",
"tenantId": "[parameters('tenantId')]",
"subnetId": "[parameters('subnetId')]",
"privateDnsZoneIdAnalysis": "[parameters('privateDnsZoneIdAnalysis')]",
"privateDnsZoneIdPbiDedicated": "[parameters('privateDnsZoneIdPbiDedicated')]",
"privateDnsZoneIdPowerQuery": "[parameters('privateDnsZoneIdPowerQuery')]",
"privateEndpointName": "[concat(variables('powerBiName'), '-private-endpoint')]"
},
"resources": [
{
"type": "Microsoft.PowerBI/privateLinkServicesForPowerBI",
"apiVersion": "2020-06-01",
"name": "[variables('powerBiName')]",
"location": "global",
"properties": {
"tenantId": "[variables('tenantId')]"
}
},
{
"type": "Microsoft.Network/privateEndpoints",
"apiVersion": "2020-05-01",
"name": "[variables('privateEndpointName')]",
"dependsOn": [
"[resourceId('Microsoft.PowerBI/privateLinkServicesForPowerBI', variables('powerBiName'))]"
],
"location": "[variables('location')]",
"properties": {
"privateLinkServiceConnections": [
{
"name": "[variables('privateEndpointName')]",
"properties": {
"privateLinkServiceId": "[resourceId('Microsoft.PowerBI/privateLinkServicesForPowerBI', variables('powerBiName'))]",
"groupIds": [
"Tenant"
]
}
}
],
"manualPrivateLinkServiceConnections": [
],
"subnet": {
"id": "[variables('subnetId')]"
}
}
},
{
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
"apiVersion": "2020-05-01",
"name": "[concat(variables('privateEndpointName'), '/aRecord')]",
"dependsOn": [
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointName'))]"
],
"location": "[variables('location')]",
"properties": {
"privateDnsZoneConfigs": [
{
"name": "[concat(variables('privateEndpointName'), '-aRecord-analysis')]",
"properties": {
"privateDnsZoneId": "[variables('privateDnsZoneIdAnalysis')]"
}
},
{
"name": "[concat(variables('privateEndpointName'), '-aRecord-pbidedicated')]",
"properties": {
"privateDnsZoneId": "[variables('privateDnsZoneIdPbiDedicated')]"
}
},
{
"name": "[concat(variables('privateEndpointName'), '-aRecord-powerquery')]",
"properties": {
"privateDnsZoneId": "[variables('privateDnsZoneIdPowerQuery')]"
}
}
]
}
}
],
"outputs": {}
}

Просмотреть файл

@ -1,27 +0,0 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"value": "northeurope"
},
"powerBiName": {
"value": "dh-powerbi001"
},
"tenantId": {
"value": "52d40f65-ad6d-48c3-906f-1ccf598612d4"
},
"subnetId": {
"value": "/subscriptions/4060c03e-0d2e-44b7-82a3-da9376fe50b2/resourceGroups/dh-network/providers/Microsoft.Network/virtualNetworks/dh-vnet/subnets/dh-privatelink-subnet"
},
"privateDnsZoneIdAnalysis": {
"value": "/subscriptions/4060c03e-0d2e-44b7-82a3-da9376fe50b2/resourceGroups/dh-global-dns/providers/Microsoft.Network/privateDnsZones/privatelink.analysis.windows.net"
},
"privateDnsZoneIdPbiDedicated": {
"value": "/subscriptions/4060c03e-0d2e-44b7-82a3-da9376fe50b2/resourceGroups/dh-global-dns/providers/Microsoft.Network/privateDnsZones/privatelink.pbidedicated.windows.net"
},
"privateDnsZoneIdPowerQuery": {
"value": "/subscriptions/4060c03e-0d2e-44b7-82a3-da9376fe50b2/resourceGroups/dh-global-dns/providers/Microsoft.Network/privateDnsZones/privatelink.tip1.powerquery.microsoft.com"
}
}
}

Просмотреть файл

@ -1,340 +0,0 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the location for all resources."
}
},
"vmssName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the virtual machine scale set."
}
},
"vmssSkuTier": {
"type": "string",
"allowedValues": [
"Standard",
"Basic"
],
"defaultValue": "Standard",
"metadata": {
"description": "Specifies the SKU tier of the virtual machine scale set."
}
},
"vmssSkuName": {
"type": "string",
"metadata": {
"description": "Specifies the SKU name of the virtual machine scale set."
}
},
"vmssAdminUsername": {
"type": "string",
"metadata": {
"description": "Specifies the admin username of the virtual machine scale set."
}
},
"vmssAdminPassword": {
"type": "securestring",
"metadata": {
"description": "Specifies the admin password of the virtual machine scale set."
}
},
"storageAccountContainerId": {
"type": "string",
"metadata": {
"description": "Specifies the resource id of an existing storage account."
}
},
"storageAccountKey": {
"type": "securestring",
"metadata": {
"description": "Specifies the ID of the existing storage account where the powershell script is stored."
}
},
"subnetId": {
"type": "string",
"metadata": {
"description": "Specifies the resource Id of the subnet to which the virtual machine should connect."
}
},
"powerBiTenantId": {
"type": "securestring",
"metadata": {
"description": "Specifies the tenant id of the Power BI Gateway."
}
},
"powerBiGatewayClientId": {
"type": "string",
"metadata": {
"description": "Specifies the client Id of the service principal which will be used for installing the Power BI Gateway."
}
},
"powerBiGatewayClientSecret": {
"type": "securestring",
"metadata": {
"description": "Specifies the client secret of the service principal which will be used for installing the Power BI Gateway."
}
},
"powerBiGatewayRecoveryKey": {
"type": "securestring",
"metadata": {
"description": "Specifies the recovery Key of the Power BI Gateway."
}
},
"powerBiGatewayAdminGroupObjectId": {
"type": "securestring",
"metadata": {
"description": "Specifies the admin object id that should have admin rights to the Power BI Gateway."
}
}
},
"functions": [],
"variables": {
"location": "[parameters('location')]",
"vmssName": "[parameters('vmssName')]",
"vmssSkuTier": "[parameters('vmssSkuTier')]",
"vmssSkuName": "[parameters('vmssSkuName')]",
"vmssAdminUsername": "[parameters('vmssAdminUsername')]",
"vmssAdminPassword": "[parameters('vmssAdminPassword')]",
"storageAccountContainerId": "[parameters('storageAccountContainerId')]",
"storageAccountName": "[split(variables('storageAccountContainerId'), '/')[8]]",
"storageAccountContainerName": "[last(split(variables('storageAccountContainerId'), '/'))]",
"storageAccountKey": "[parameters('storageAccountKey')]",
"subnetId": "[parameters('subnetId')]",
"powerBiGatewayClientId": "[parameters('powerBiGatewayClientId')]",
"powerBiGatewayClientSecret": "[parameters('powerBiGatewayClientSecret')]",
"powerBiGatewayRecoveryKey": "[parameters('powerBiGatewayRecoveryKey')]",
"powerBiTenantId": "[parameters('powerBiTenantId')]",
"powerBiGatewayAdminGroupObjectId": "[parameters('powerBiGatewayAdminGroupObjectId')]"
},
"resources": [
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2020-05-01",
"name": "[concat(variables('vmssName'), '-publicip')]",
"location": "[variables('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv4",
"dnsSettings": {
"domainNameLabel": "[toLower(variables('vmssName'))]"
},
// "ddosSettings": {
// "protectionCoverage": "Standard",
// "protectedIP": true
// },
"ipTags": []
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2020-05-01",
"name": "[concat(variables('vmssName'), '-lb')]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/publicIPAddresses', concat(variables('vmssName'), '-publicip'))]"
],
"sku": {
"name": "Standard"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "loadBalancerFrontEnd",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', concat(variables('vmssName'), '-publicip'))]"
}
// "subnet": {
// "id": "[variables('subnetId')]"
// }
}
}
],
"backendAddressPools": [
{
"name": "[concat(variables('vmssName'), '-backendPool')]"
}
],
"inboundNatPools": [
{
"name": "[concat(variables('vmssName'), '-natPool')]",
"properties": {
"frontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', concat(variables('vmssName'), '-lb'), 'loadBalancerFrontEnd')]"
},
"protocol": "Tcp",
"frontendPortRangeStart": 50000,
"frontendPortRangeEnd": 50099,
"backendPort": 3389,
"idleTimeoutInMinutes": 4
}
}
],
"loadBalancingRules": [
{
"name": "ProbeRule",
"properties": {
"loadDistribution": "Default",
"frontendIPConfiguration": {
"id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', concat(variables('vmssName'), '-lb'), 'loadBalancerFrontEnd')]"
},
"backendAddressPool": {
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', concat(variables('vmssName'), '-lb'), concat(variables('vmssName'), '-backendPool'))]"
},
"protocol": "Tcp",
"frontendPort": 80,
"backendPort": 80,
"enableFloatingIP": false,
"idleTimeoutInMinutes": 5,
"probe": {
"id": "[resourceId('Microsoft.Network/loadBalancers/probes/', concat(variables('vmssName'), '-lb'), concat(variables('vmssName'), '-probe'))]"
}
}
}
],
"probes": [
{
"name": "[concat(variables('vmssName'), '-probe')]",
"properties": {
"protocol": "Http",
"port": 80,
"requestPath": "/",
"intervalInSeconds": 5,
"numberOfProbes": 2
}
}
]
}
},
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"apiVersion": "2019-07-01",
"name": "[variables('vmssName')]",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/loadBalancers', concat(variables('vmssName'), '-lb'))]"
],
"identity": {
"type": "SystemAssigned"
},
"sku": {
"name": "[variables('vmssSkuName')]",
"tier": "[variables('vmssSkuTier')]",
"capacity": 1
},
"zones": [
"1",
"2"
],
"properties": {
"additionalCapabilities": {},
"automaticRepairsPolicy": {},
"doNotRunExtensionsOnOverprovisionedVMs": true,
"overprovision": true,
"platformFaultDomainCount": 1,
"zoneBalance": true,
"scaleInPolicy": {
"rules": [
"Default"
]
},
"singlePlacementGroup": false,
"upgradePolicy": {
"mode": "Automatic"
// "automaticOSUpgradePolicy": {
// "disableAutomaticRollback": false,
// "enableAutomaticOSUpgrade": true
// }
},
"virtualMachineProfile": {
"priority": "Regular",
"osProfile": {
"adminUsername": "[variables('vmssAdminUsername')]",
"adminPassword": "[variables('vmssAdminPassword')]",
"computerNamePrefix": "[take(variables('vmssName'), 9)]"
},
"networkProfile": {
"networkInterfaceConfigurations": [
{
"name": "[concat(variables('vmssName'), '-nic')]",
"properties": {
"primary": true,
"enableAcceleratedNetworking": false,
"dnsSettings": {},
"enableIPForwarding": false,
"ipConfigurations": [
{
"name": "[concat(variables('vmssName'), '-ipConfig')]",
"properties": {
"primary": true,
"privateIPAddressVersion": "IPv4",
"subnet": {
"id": "[variables('subnetId')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', concat(variables('vmssName'), '-lb'), concat(variables('vmssName'), '-backendPool'))]"
}
],
"loadBalancerInboundNatPools": [
{
"id": "[resourceId('Microsoft.Network/loadBalancers/inboundNatPools', concat(variables('vmssName'), '-lb'), concat(variables('vmssName'), '-natPool'))]"
}
]
}
}
]
}
}
]
},
"storageProfile": {
"osDisk": {
"createOption": "FromImage",
"caching": "ReadWrite"
},
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
}
},
"extensionProfile": {
"extensions": [
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('vmssName'),'-installGateway')]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.10",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"[concat('https://', variables('storageAccountName'), '.blob.core.windows.net/', variables('storageAccountContainerName'), '/installPowerBiGateway.ps1')]"
]
},
"protectedSettings": {
"storageAccountName": "[variables('storageAccountName')]",
"storageAccountKey": "[variables('storageAccountKey')]",
"commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File installPowerBiGateway.ps1 -GatewayName \"', variables('vmssName'), '\" -ApplicationId \"', variables('powerBiGatewayClientId'), '\" -ClientSecret \"', variables('powerBiGatewayClientSecret'), '\" -RecoveryKey \"', variables('powerBiGatewayRecoveryKey'), '\" -RegionKey \"', variables('location'), '\" -TenantId \"', variables('powerBiTenantId'), '\" -AdditionalGatewayAdminGroupId \"', variables('powerBiGatewayAdminGroupObjectId'),'\"')]"
}
}
}
]
}
}
}
}
]
}

Просмотреть файл

@ -1,89 +0,0 @@
# This sample helps automate the installation and configuration of the On-premises data gateway using available PowerShell cmdlets.
# This script helps with silent install of new gateway cluster with one gateway member only. The script also allows addition gateway
# admins. For information on each PowerShell script visit the help page for individual PowerSHell cmdlets. Before begining to install
# and register a gateway, for connecting to the gateway service, you would need to use the # Connect-DataGatewayServiceAccount. More
# information documented in the help page of that cmdlet.
Param(
# Name of the Power BI Gateway
[Parameter(Mandatory = $true)]
[String]
$GatewayName,
# Application Id for login
[Parameter()]
[String]
$TenantId,
# Application Id for login
[Parameter()]
[String]
$ApplicationId,
# Application Id for login
[Parameter()]
[String]
$ClientSecret,
# Recovery Key of the Power BI Gateway
[Parameter(Mandatory = $true)]
[String]
$RecoveryKey,
# Region of the Power BI Gateway
[Parameter(Mandatory = $true)]
[String]
$RegionKey,
[Parameter()]
[Guid]
$AdditionalGatewayAdminGroupId
)
$ErrorActionPreference = "stop"
# Print pwsh version
$psVersion = (Get-Host).Version
Write-Host $psVersion
# Convert input parameters
$clientSecretSecureString = $ClientSecret | ConvertTo-SecureString -AsPlainText -Force
$recoveryKeySecureString = $RecoveryKey | ConvertTo-SecureString -AsPlainText -Force
# Install DataGateway module
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
Install-Module -Name DataGateway
# Connect to the Data Gateway service
$connectDataGatewayServiceAccountArguments = @{
ApplicationId = $ApplicationId;
ClientSecret = $clientSecretSecureString;
Environment = "Public";
Tenant = $TenantId;
}
Connect-DataGatewayServiceAccount @connectDataGatewayServiceAccountArguments
# Thrown an error if not logged in
Get-DataGatewayAccessToken | Out-Null
# Run the gateway installer on the local computer
Install-DataGateway -AcceptConditions
# Create a gateway cluster and save the cluster ID
$addDataGatewayClusterArguments = @{
RecoveryKey = $recoveryKeySecureString;
GatewayName = $GatewayName;
RegionKey = "northeurope";
OverwriteExistingGateway = $true;
}
$newGatewayClusterId = (Add-DataGatewayCluster @addDataGatewayClusterArguments).GatewayObjectId
# Optionally add admin to new gateway
if ($null -ne $AdminPrincipalObjectIdForNewGateway) {
$addDataGatewayClusterUserArguments = @{
GatewayClusterId = $newGatewayClusterId;
PrincipalObjectId = $AdditionalGatewayAdminGroupId;
Role = "Admin";
AllowedDataSourceTypes = $null;
}
Add-DataGatewayClusterUser @addDataGatewayClusterUserArguments
}

Просмотреть файл

@ -1,53 +0,0 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"value": "northeurope"
},
"vmssName": {
"value": "dhPBIGatewaytest"
},
"vmssSkuTier": {
"value": "Standard"
},
"vmssSkuName": {
"value": "Standard_A1_v2"
},
"vmssAdminUsername": {
"value": "vmssMainUser"
},
"vmssAdminPassword": {
"value": "<your-secure-password>!"
},
"storageAccountContainerId": {
"value": "/subscriptions/feab2d15-66b4-438b-accf-51f889b30ec3/resourceGroups/dh-mgmt/providers/Microsoft.Storage/storageAccounts/datahubstorage001/blobServices/default/containers/scripts"
},
"storageAccountKey": {
"reference": {
"keyVault": {
"id": "/subscriptions/feab2d15-66b4-438b-accf-51f889b30ec3/resourceGroups/dh-mgmt/providers/Microsoft.KeyVault/vaults/dh-keyvault001"
},
"secretName": "storageAccountKey"
}
},
"subnetId": {
"value": "/subscriptions/feab2d15-66b4-438b-accf-51f889b30ec3/resourceGroups/dh-network/providers/Microsoft.Network/virtualNetworks/dh-vnet/subnets/dh-subnet"
},
"powerBiTenantId": {
"value": "<your-power-bi-tenant-id>"
},
"powerBiGatewayClientId": {
"value": "<your-power-bi-client-id>"
},
"powerBiGatewayClientSecret": {
"value": "<your-power-bi-client-secret>"
},
"powerBiGatewayRecoveryKey": {
"value": "<your-power-bi-recovery-key>"
},
"powerBiGatewayAdminGroupObjectId": {
"value": "<your-power-bi-admin-group-object-id>"
}
}
}