Created
September 12, 2017 13:16
-
-
Save RobsonAutomator/89c4cabaffab8421f4177025058b10c0 to your computer and use it in GitHub Desktop.
Create and configure Azure storage account for Sitecore deployment
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
# ############################################################################# | |
# Set-AzureStorageForSitecore | |
# | |
# AUTHOR: Robert Senktas | |
# BLOG: http://lets-share.senktas.net/2017/09/sitecore-on-azure-storagepreparation.html | |
# | |
# ############################################################################# | |
#Requires –Modules sitecore-automation | |
#Requires -Modules Azure | |
Import-Module -Name Azure | |
Import-Module sitecore-automation -MinimumVersion 1.4.0.0 -Verbose -Force | |
# Silent login does not work with all Azure subscription types, | |
# in case of trouble please use standard Azure login methods. | |
Login-AzureAccountSilent -Verbose | |
#Login-AzureRmAccount -Debug | |
#region 0. Parameters configuration | |
$storageAccountName = "[Placeholder for Account Name]" | |
$resourceGroupName = "[Placeholder for Resource Group Name]" | |
$storageLocation = "[Placeholder for storage location]" | |
$StorageContainerWDP = "wdp" | |
$StorageContainerARM = "arm" | |
$localPackages = 'C:\SitecoreInstall\Azure\Sitecore-WDP\' | |
$localArmFiles = 'C:\SitecoreInstall\Azure\Sitecore-Azure-Quickstart-Templates' | |
#endregion | |
#region 1. Create a resource group for storage | |
$notPresent = Get-AzureRmResourceGroup -Name $resourceGroupName -ev notPresent -ea 0 | |
if (!$notPresent) | |
{ | |
New-AzureRmResourceGroup -Name $resourceGroupName -Location $storageLocation | |
} else { | |
Write-Verbose "Resource Group Already Exists." | |
} | |
#endregion | |
#region 2. Create storage account if not exist | |
$storageAccount = Get-AzureRmStorageAccount -ResourceGroupName $storageAccountName -Name $storageAccountName -ev notPresent -ea SilentlyContinue | |
if( $storageAccount -eq $null) | |
{ | |
$storageAccount = New-AzureRmStorageAccount -ResourceGroupName $storageAccountName ` | |
-Name $storageAccountName ` | |
-Location $storageLocation ` | |
-Kind BlobStorage ` | |
-AccessTier Cool ` | |
-SkuName Standard_LRS | |
} | |
else | |
{ | |
Write-Verbose "StorageAccount '$storageAccountName' already exists" | |
} | |
#endregion | |
#We need a storage, so stop execution here if storage not exist or cannot be created. | |
if( $storageAccount -eq $null ) { return } | |
#region 3. Create a container for WDP packages | |
$WdpContainer = Get-AzureStorageContainer -Name $StorageContainerWDP -Context $storageAccount.Context -ev notPresent -ea SilentlyContinue | |
if( $WdpContainer -eq $null ) | |
{ | |
New-AzureStorageContainer -Name $StorageContainerWDP -Permission Off -Context $storageAccount.Context | |
} | |
#endregion | |
#region 4. Create a container for ARM templates | |
$ArmContainer = Get-AzureStorageContainer -Name $StorageContainerARM -Context $storageAccount.Context -ev notPresent -ea SilentlyContinue | |
if( $ArmContainer -eq $null ) | |
{ | |
New-AzureStorageContainer -Name $StorageContainerARM -Permission Off -Context $storageAccount.Context | |
} | |
#endregion | |
#region 5. Copy Sitecore Azure ARM templated from local computer to Azure storage | |
$files = Get-ChildItem $localArmFiles -Directory | Get-ChildItem -Recurse -Filter "*.json" | |
Copy-FilesToAzureContainer -Files $files ` | |
-ContainerName $StorageContainerARM ` | |
-AzureStorageContext $storageAccount.Context ` | |
-PathToRemove $localArmFiles ` | |
-Verbose | |
#endregion | |
#region 6. Copy Sitecore Azure WDP packages from local computer to Azure storage | |
$files = Get-ChildItem $localPackages -Recurse -Filter "*.zip" | |
Copy-FilesToAzureContainer -Files $files ` | |
-ContainerName $StorageContainerWDP ` | |
-AzureStorageContext $storageAccount.Context ` | |
-PathToRemove $localPackages ` | |
-Verbose | |
#endregion | |
#region Clean up resources | |
#endregion | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment