Skip to content

Instantly share code, notes, and snippets.

@RobsonAutomator
Created September 12, 2017 13:16
Show Gist options
  • Save RobsonAutomator/89c4cabaffab8421f4177025058b10c0 to your computer and use it in GitHub Desktop.
Save RobsonAutomator/89c4cabaffab8421f4177025058b10c0 to your computer and use it in GitHub Desktop.
Create and configure Azure storage account for Sitecore deployment
# #############################################################################
# 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