Add Azure Backup Server (#424)
* Preview Release for Office Workloads * Fix Typos * Typos * default PW * Add SFB Front End Server * Bug Fixes for AD, SQL, Exchange, Deploy Script * Addded Skype Edge Servers, Optimized deployment Script * Major Update to all Templates including addition of ADFS and WAO Templates * Azure Backup Server
This commit is contained in:
Родитель
d9bda326a8
Коммит
2ba4c65b14
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,87 @@
|
|||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string]$destination,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$baseUrl,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$urlMSFTAST,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$prereqList,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$vaultName
|
||||
)
|
||||
|
||||
|
||||
function DownloadInstallAZCopy {
|
||||
|
||||
$dest = "MSFT_AzureStorageTools"
|
||||
$dest = Join-Path $env:SystemDrive $destination
|
||||
if(-not (Test-Path $dest)) {
|
||||
New-Item -Path $dest -ItemType directory -Force
|
||||
}
|
||||
$output = "$dest\MicrosoftAzureStorageTools.msi"
|
||||
if (-not (Test-Path $output)) {
|
||||
Invoke-WebRequest -Uri $urlMSFTAST -OutFile $output
|
||||
cd $dest
|
||||
Start-Process C:\Windows\System32\msiexec.exe -ArgumentList "/package MicrosoftAzureStorageTools.msi /quiet" -wait
|
||||
}
|
||||
|
||||
if(Test-Path "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy") {
|
||||
Write-Verbose "Ok"
|
||||
}
|
||||
else
|
||||
{
|
||||
Throw "Aborting, Azure Storage Tools not installed correctly"
|
||||
}
|
||||
}
|
||||
|
||||
function DownLoadPrereq {
|
||||
$arrayList = $prereqList.split(",")
|
||||
$dest = Join-Path $env:SystemDrive $destination
|
||||
if(-not (Test-Path $dest)) {
|
||||
New-Item -Path $dest -ItemType directory -Force
|
||||
}
|
||||
Foreach ($fileName in $arrayList)
|
||||
{
|
||||
$output = "$dest\$fileName"
|
||||
$urlToDownload = $baseUrl+"/"+$fileName
|
||||
if (-not (Test-Path $output)) {
|
||||
cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
|
||||
.\AzCopy.exe /Source:$urlToDownload /Dest:$output
|
||||
}
|
||||
else
|
||||
{
|
||||
Throw "Error in downloading $filename mabs prerequisite"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function DownloadVault {
|
||||
$vaultUrl = $baseUrl+ "/" + $vaultName
|
||||
$vaultPath = "c:\vaultProfile"
|
||||
$vaultLocalPath = Join-Path $vaultPath $vaultName
|
||||
if (-not (Test-Path $vaultPath)) {
|
||||
New-Item -Path $vaultPath -ItemType directory -Force
|
||||
}
|
||||
cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
|
||||
.\AzCopy.exe /Source:$vaultUrl /Dest:$vaultLocalPath
|
||||
}
|
||||
|
||||
function InstallPrereqs {
|
||||
$dest = Join-Path (Join-Path $env:SystemDrive $destination) "System_Center_Microsoft_Azure_Backup_Server_v3.exe"
|
||||
if(Test-Path $dest) {
|
||||
Start-Process $dest -ArgumentList "/verysilent /dir=c:\MABS" -wait
|
||||
}
|
||||
}
|
||||
|
||||
function HypervInstall {
|
||||
Start-Process "dism.exe" -ArgumentList "/Online /Enable-feature /All /FeatureName:Microsoft-Hyper-V /FeatureName:Microsoft-Hyper-V-Management-PowerShell /quiet /norestart" -wait
|
||||
}
|
||||
|
||||
|
||||
DownloadInstallAZCopy
|
||||
DownLoadPrereq
|
||||
InstallPrereqs
|
||||
DownloadVault
|
||||
HypervInstall
|
||||
|
Двоичный файл не отображается.
|
@ -0,0 +1,43 @@
|
|||
# Azure BackupS erver
|
||||
|
||||
This Template deploys Azure Backup Server.
|
||||
You can find more information about Azure Backup Server here: https://docs.microsoft.com/en-us/azure/backup/backup-mabs-install-azure-stack
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
### Azure Stack
|
||||
|
||||
THe following Marketplace Items must be installed on Azure Stack:
|
||||
|
||||
- Windows Server 2016 Full Image
|
||||
- DSC Extension
|
||||
- Antimalware Extension
|
||||
- Custom Script Extension for Windows
|
||||
- Azure Diagnostic Extension for Windows
|
||||
- Azure Performance Diagnostic
|
||||
|
||||
|
||||
### Azure Backup Server
|
||||
|
||||
- Azure Subscription
|
||||
- Vault Credential File
|
||||
- Azure Backup Server V3 setup files
|
||||
|
||||
## Deployment
|
||||
|
||||
### Deploy manually via Portal
|
||||
1. Download artifacts and template
|
||||
2. Create Vault in Azure
|
||||
3. Download Vault Credentials File and Azure Backup Server Version 3
|
||||
4. Store the downloaded content in the artifacts folder
|
||||
4. Upload the content from the artifacts folder into a new storage account
|
||||
5. Deploy the Template
|
||||
|
||||
### Content
|
||||
|
||||
.\Template
|
||||
This folder contains product template
|
||||
|
||||
.\Artifacts
|
||||
This folder contains required DSC, Custom scripts and Setup files
|
|
@ -0,0 +1,266 @@
|
|||
{
|
||||
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"apiProfile": "2018-03-01-hybrid",
|
||||
"parameters": {
|
||||
"MabsAvailabiliySetName": {
|
||||
"type": "string",
|
||||
"defaultValue": "MabsASet"
|
||||
},
|
||||
"vmPrefix": {
|
||||
"type": "string",
|
||||
"defaultValue": "srv"
|
||||
},
|
||||
"domainName": {
|
||||
"type": "string",
|
||||
"defaultValue": "contoso.com"
|
||||
},
|
||||
"adminUsername": {
|
||||
"type": "string",
|
||||
"metadata": {
|
||||
"description": "Domain Admin username"
|
||||
}
|
||||
},
|
||||
"adminPassword": {
|
||||
"type": "securestring",
|
||||
"metadata": {
|
||||
"description": "Domain Admin password"
|
||||
}
|
||||
},
|
||||
"passPhrase": {
|
||||
"type": "securestring",
|
||||
"minLength": 16,
|
||||
"metadata": {
|
||||
"description": "Mabs Passphrase, min 16 chars"
|
||||
}
|
||||
},
|
||||
"workloadsLocation": {
|
||||
"type": "string",
|
||||
"defaultValue": "https://workloads.blob.orlando.azurestack.corp.microsoft.com/workload"
|
||||
},
|
||||
"vaultCredentialFileName": {
|
||||
"type": "string",
|
||||
"defaultValue": "vaultprem.VaultCredentials",
|
||||
"metadata": {
|
||||
"description": "name of the VaultCredential file"
|
||||
}
|
||||
},
|
||||
"NoOfDisks": {
|
||||
"type": "int",
|
||||
"defaultValue": "2",
|
||||
"metadata": {
|
||||
"description": "Number of disks for striped volume"
|
||||
}
|
||||
},
|
||||
"StorageSize": {
|
||||
"type": "int",
|
||||
"defaultValue": "500",
|
||||
"metadata": {
|
||||
"description": "size of each disk of striped volume"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables": {
|
||||
"mabsPrefix": "[concat(parameters('vmPrefix'),'-mabs')]",
|
||||
"vmNicName": "[tolower(concat(variables('mabsPrefix'),'-nic'))]",
|
||||
"prereqFileNames" : "System_Center_Microsoft_Azure_Backup_Server_v3-1.bin,System_Center_Microsoft_Azure_Backup_Server_v3-2.bin,System_Center_Microsoft_Azure_Backup_Server_v3-3.bin,System_Center_Microsoft_Azure_Backup_Server_v3-4.bin,System_Center_Microsoft_Azure_Backup_Server_v3-5.bin,System_Center_Microsoft_Azure_Backup_Server_v3-6.bin,System_Center_Microsoft_Azure_Backup_Server_v3-7.bin,System_Center_Microsoft_Azure_Backup_Server_v3.exe",
|
||||
"imagePublisher": "MicrosoftWindowsServer",
|
||||
"imageOffer": "WindowsServer",
|
||||
"uniqueStorageAccountName": "[tolower(concat('sa-',variables('mabsPrefix'),'-', resourceGroup().name))]",
|
||||
"location": "[resourceGroup().location]",
|
||||
"vmOsSku": "2016-Datacenter",
|
||||
"vmDataDiskName": "[concat('dd-',variables('mabsPrefix'), resourceGroup().name)]",
|
||||
"vmSize": "Standard_DS3",
|
||||
"nsgName": "[concat('MABSNsg',resourceGroup().name)]",
|
||||
"nsgID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('nsgName'))]",
|
||||
"staticSubnetName": "[concat('ADStaticSubnet',resourceGroup().name)]",
|
||||
"virtualNetworkName": "[concat('ADVNET',resourceGroup().name)]",
|
||||
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
|
||||
"staticSubnetID": "[concat(variables('vnetID'),'/subnets/',variables('staticSubnetName'))]",
|
||||
"modulesPath": "[concat(parameters('workloadsLocation'),'/')]",
|
||||
"modulesMabsDownload": "CSDownloadMabs.ps1",
|
||||
"MabsInstallerPath":"MabsInstaller",
|
||||
"modulesUrlMabsDownload": "[concat(variables('modulesPath'),variables('modulesMabsDownload'))]",
|
||||
"AzCopyURL": "[concat(variables('modulesPath'),'MicrosoftAzureStorageTools.msi')]",
|
||||
"ModulesURL": "[concat(parameters('workloadsLocation'),'/MabsWorkload.ps1.zip')]",
|
||||
"ConfigurationFunction": "MabsWorkload.ps1\\InstallAndConfigureMabs"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"type": "Microsoft.Compute/availabilitySets",
|
||||
"name": "[parameters('MabsAvailabiliySetName')]",
|
||||
"location": "[resourceGroup().location]",
|
||||
"sku": {
|
||||
"name": "Aligned"
|
||||
},
|
||||
"properties": {
|
||||
"platformUpdateDomainCount": 1,
|
||||
"platformFaultDomainCount": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Network/networkSecurityGroups",
|
||||
"name": "[variables('nsgName')]",
|
||||
"location": "[variables('location')]",
|
||||
"properties": {
|
||||
"securityRules": [
|
||||
{
|
||||
"name": "nsgsrule",
|
||||
"properties": {
|
||||
"protocol": "*",
|
||||
"sourcePortRange": "*",
|
||||
"destinationPortRange": "*",
|
||||
"sourceAddressPrefix": "*",
|
||||
"destinationAddressPrefix": "*",
|
||||
"access": "Allow",
|
||||
"priority": 101,
|
||||
"direction": "Inbound"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Network/networkInterfaces",
|
||||
"name": "[concat(variables('vmNicName'))]",
|
||||
"dependsOn": [
|
||||
"[variables('nsgID')]"
|
||||
],
|
||||
"location": "[variables('location')]",
|
||||
"properties": {
|
||||
"ipConfigurations": [
|
||||
{
|
||||
"name": "ipconfigpublic",
|
||||
"properties": {
|
||||
"privateIPAllocationMethod": "Dynamic",
|
||||
"subnet": {
|
||||
"id": "[variables('staticSubnetId')]"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Compute/virtualMachines",
|
||||
"name": "[concat(variables('mabsPrefix'))]",
|
||||
"location": "[variables('location')]",
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.Network/networkInterfaces/',variables('vmNicName'))]"
|
||||
],
|
||||
"properties": {
|
||||
"hardwareProfile": {
|
||||
"vmSize": "[variables('vmSize')]"
|
||||
},
|
||||
"availabilitySet": {
|
||||
"id": "[resourceId('Microsoft.Compute/availabilitySets/', parameters('MabsAvailabiliySetName'))]"
|
||||
},
|
||||
"osProfile": {
|
||||
"computerName": "[concat(variables('mabsPrefix'))]",
|
||||
"adminUsername": "[parameters('adminUsername')]",
|
||||
"adminPassword": "[parameters('adminPassword')]"
|
||||
},
|
||||
"storageProfile": {
|
||||
"imageReference": {
|
||||
"publisher": "[variables('imagePublisher')]",
|
||||
"offer": "[variables('imageOffer')]",
|
||||
"sku": "[variables('vmOsSku')]",
|
||||
"version": "latest"
|
||||
},
|
||||
"osDisk": {
|
||||
"name": "[concat(variables('mabsPrefix'),'osdisk')]",
|
||||
"managedDisk" : {
|
||||
"storageAccountType" : "Premium_LRS"
|
||||
},
|
||||
"caching": "ReadWrite",
|
||||
"createOption": "FromImage"
|
||||
},
|
||||
"copy": [
|
||||
{
|
||||
"name": "dataDisks",
|
||||
"count": "[parameters('NoOfDisks')]",
|
||||
"input": {
|
||||
"caching": "None",
|
||||
"diskSizeGB": "[parameters('StorageSize')]",
|
||||
"lun": "[copyIndex('dataDisks')]",
|
||||
"name": "[concat(variables('vmDataDiskName'),'-',copyIndex('dataDisks'))]",
|
||||
"managedDisk" : {
|
||||
"storageAccountType" :"Premium_LRS"
|
||||
},
|
||||
"createOption": "Empty"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"networkProfile": {
|
||||
"networkInterfaces": [
|
||||
{
|
||||
"id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('vmNicName')))]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Compute/virtualMachines/extensions",
|
||||
"name": "[concat(variables('mabsPrefix'),'/CustomScriptExtension')]",
|
||||
"location": "[variables('location')]",
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.Compute/virtualMachines/',variables('mabsPrefix'))]"
|
||||
],
|
||||
"properties": {
|
||||
"publisher": "Microsoft.Compute",
|
||||
"type": "CustomScriptExtension",
|
||||
"typeHandlerVersion": "1.4",
|
||||
"autoUpgradeMinorVersion": true,
|
||||
"settings": {
|
||||
"fileUris": [
|
||||
"[variables('modulesUrlMabsDownload')]"
|
||||
],
|
||||
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -file ',variables('modulesMabsDownload'),' -destination ',variables('MabsInstallerPath'),' -urlMSFTAST ',variables('AzCopyURL'),' -baseUrl ',parameters('workloadsLocation'),' -prereqList ',variables('prereqFileNames'),' -vaultName ',parameters('vaultCredentialFileName'))]"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "[concat(variables('mabsPrefix'),'/dscExtension')]",
|
||||
"type": "Microsoft.Compute/virtualMachines/extensions",
|
||||
"location": "[variables('location')]",
|
||||
"dependsOn": [
|
||||
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('mabsPrefix'),'/extensions/','CustomScriptExtension'))]"
|
||||
],
|
||||
"tags": {
|
||||
"displayName": "adfsDSCConfiguration"
|
||||
},
|
||||
"properties": {
|
||||
"publisher": "Microsoft.Powershell",
|
||||
"type": "DSC",
|
||||
"typeHandlerVersion": "2.76",
|
||||
"autoUpgradeMinorVersion": true,
|
||||
"settings": {
|
||||
"modulesUrl": "[variables('ModulesURL')]",
|
||||
"configurationFunction": "[variables('ConfigurationFunction')]",
|
||||
"properties": {
|
||||
"domainName": "[parameters('domainName')]",
|
||||
"AdminCreds": {
|
||||
"userName": "[parameters('adminUserName')]",
|
||||
"password": "PrivateSettingsRef:adminPassword"
|
||||
},
|
||||
"MABS_SecurityPassphrase": {
|
||||
"userName": "[parameters('adminUserName')]",
|
||||
"password": "PrivateSettingsRef:passPhrase"
|
||||
},
|
||||
"NoOfDisks": "[parameters('NoOfDisks')]",
|
||||
"VaultCredentialFilePath": "[concat('c:\\vaultProfile\\',parameters('vaultCredentialFileName'))]",
|
||||
"PassphraseSaveLocation": "c:\\vaultProfile\\"
|
||||
}
|
||||
},
|
||||
"protectedSettings": {
|
||||
"items": {
|
||||
"adminPassword": "[parameters('adminPassword')]",
|
||||
"passPhrase": "[parameters('passPhrase')]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"domainName": {
|
||||
"value": "contoso.com"
|
||||
},
|
||||
"adminUsername": {
|
||||
"value": "thoroetadm"
|
||||
},
|
||||
"workloadsLocation": {
|
||||
"value": "https://colab.blob.local.azurestack.external/workload"
|
||||
},
|
||||
"vmPrefix": {
|
||||
"value": "srv"
|
||||
},
|
||||
"vaultCredentialFileName": {
|
||||
"value": "Profile.VaultCredentials"
|
||||
},
|
||||
"NoOfDisks": {
|
||||
"value": "2"
|
||||
},
|
||||
"StorageSize": {
|
||||
"value": "100"
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче