Octopus.AzurePowerShell exported 2020-04-13 by octobob belongs to ‘Azure’ category.
This step uses the new az
modules to create a resource group if it doesn’t exist.
Requires Octopus Deploy 2020.1
or later. Requires a worker with the az
module installed on it. That module is not bundled with Octopus Deploy.
Parameters
When steps based on the template are included in a project’s deployment process, the parameters below can be set.
Azure Account
CreateResourceGroup.Azure.Account =
The Azure Account with the necessary permissions to create resource groups.
Resource Group Name
CreateResourceGroup.ResourceGroup.Name =
The name of the resource group to create.
The Resource Group Abbreviated Location
CreateResourceGroup.ResourceGroup.Location.Abbr =
The abbreviated resource group location, for example: centralus
Script body
Steps based on this template will execute the following PowerShell script.
$resourceGroupName = $OctopusParameters["CreateResourceGroup.ResourceGroup.Name"]
$resourceGroupLocationAbbr = $OctopusParameters["CreateResourceGroup.ResourceGroup.Location.Abbr"]
$existingResourceGroups = (az group list --query "[?location=='$resourceGroupLocationAbbr']") | ConvertFrom-JSON
$createResourceGroup = $true
foreach ($resourceGroupFound in $existingResourceGroups)
{
Write-Host "Checking if current resource group $($resourceGroupFound.name) matches $resourceGroupName"
if ($resourceGroupFound.name -eq $resourceGroupName)
{
$createResourceGroup = $false
Write-Highlight "Resource group already exists, skipping creation"
break
}
}
if ($createResourceGroup)
{
Write-Host "Creating the $resourceGroupName because it was not found in $resourceGroupLocationAbbr"
az group create -l $resourceGroupLocationAbbr -n $resourceGroupName
}
Provided under the Apache License version 2.0.
To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.
{
"Id": "c2b850f7-2d9a-4cda-ab3c-ff3d229eca8e",
"Name": "Create Resource Group If Not Exists (AZ Module)",
"Description": "This step uses the new `az` modules to create a resource group if it doesn't exist. \n\nRequires `Octopus Deploy 2020.1` or later. Requires a worker with the `az` module installed on it. That module is not bundled with Octopus Deploy.",
"Version": 1,
"ExportedAt": "2020-04-13T15:37:29.866Z",
"ActionType": "Octopus.AzurePowerShell",
"Author": "octobob",
"Packages": [],
"Parameters": [
{
"Id": "b854aba4-4acb-428d-b981-79d1f2f50537",
"Name": "CreateResourceGroup.Azure.Account",
"Label": "Azure Account",
"HelpText": "The Azure Account with the necessary permissions to create resource groups.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "AzureAccount"
}
},
{
"Id": "c7e43d70-f9ac-43cb-95a8-6a0e75ad40c6",
"Name": "CreateResourceGroup.ResourceGroup.Name",
"Label": "Resource Group Name",
"HelpText": "The name of the resource group to create.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "e1bd7e57-5ad0-445b-9d11-6642acc55b88",
"Name": "CreateResourceGroup.ResourceGroup.Location.Abbr",
"Label": "The Resource Group Abbreviated Location",
"HelpText": "The abbreviated resource group location, for example: centralus",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "Select",
"Octopus.SelectOptions": "centralus|Americas - Central US\neastus|Americas - East US\neastus2|Americas - East US 2\nnorthcentralus|Americas - North Central US\nsouthcentralus|Americas - South Central US\nwestus|Americas - West US\nwestus2|Americas - West US 2\nwestcentralus|Americas - West Central US\ncanadacentral|Americas - Canada Central\ncanadaeast|Americas - Canada East\nbrazilsouth|Americas - Brazil South\neastasia|Asia Pacific - East Asia\nsoutheastasia|Asia Pacific - Southeast Asia\naustraliacentral|Asia Pacific - Australia Central\naustraliacentral2|Asia Pacific - Australia Central 2\naustraliaeast|Asia Pacific - Australia East\naustraliasoutheast|Asia Pacific - Australia Southeast\nchinaeast|Asia Pacific - China East\nchinaeast2|Asia Pacific - China East 2\nchinanorth|Asia Pacific - China North\nchinanorth2|Asia Pacific - China North 2\ncentralindia|Asia Pacific - Central India\nsouthindia|Asia Pacific - South India\nwestindia|Asia Pacific - West India\njapaneast|Asia Pacific - Japan East\njapanwest|Asia Pacific - Japan West\nkoreacentral|Asia Pacific - Korea Central\nkoreasouth|Asia Pacific - Korea South\nnortheurope|Europe - North Europe\nwesteurope|Europe - West Europe\nfrancecentral|Europe - France Central\nfrancesouth|Europe - France South\ngermanynorth|Europe - Germany North\ngermanywestcentral|Europe - Germany West Central\nnorwayeast|Europe - Norway East\nnorwaywest|Europe - Norway West\nspaincentral|Europe - Spain Central\nswitzerlandnorth|Europe - Switzerland North\nswitzerlandwest|Europe - Switzerland West\nuksouth|Europe - UK South\nukwest|Europe - UK West\nsouthafricanorth|Middle East and Africa - South Africa North\nsouthafricawest|Middle East and Africa - South Africa West\nuaecentral|Middle East and Africa - UAE Central\nuaenorth|Middle East and Africa - UAE North"
}
}
],
"Properties": {
"Octopus.Action.Script.ScriptSource": "Inline",
"Octopus.Action.Script.Syntax": "PowerShell",
"OctopusUseBundledTooling": "False",
"Octopus.Action.Azure.AccountId": "#{CreateResourceGroup.Azure.Account}",
"Octopus.Action.Script.ScriptBody": "$resourceGroupName = $OctopusParameters[\"CreateResourceGroup.ResourceGroup.Name\"]\n$resourceGroupLocationAbbr = $OctopusParameters[\"CreateResourceGroup.ResourceGroup.Location.Abbr\"]\n\n$existingResourceGroups = (az group list --query \"[?location=='$resourceGroupLocationAbbr']\") | ConvertFrom-JSON\n\n$createResourceGroup = $true\nforeach ($resourceGroupFound in $existingResourceGroups)\n{\t\n\tWrite-Host \"Checking if current resource group $($resourceGroupFound.name) matches $resourceGroupName\"\n if ($resourceGroupFound.name -eq $resourceGroupName)\n {\n \t$createResourceGroup = $false\n \tWrite-Highlight \"Resource group already exists, skipping creation\"\n \tbreak\n }\n}\n\nif ($createResourceGroup)\n{\n\tWrite-Host \"Creating the $resourceGroupName because it was not found in $resourceGroupLocationAbbr\"\n\taz group create -l $resourceGroupLocationAbbr -n $resourceGroupName\n}"
},
"Category": "Azure",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/azure-create-resource-group-az-module.json",
"Website": "/step-templates/c2b850f7-2d9a-4cda-ab3c-ff3d229eca8e",
"Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNQTFRF////AHjXf7vrv931QJrh7/f8EIDaIIncMJHfYKvmz+b3n8zw3+76j8Ttr9XycLPpUKLkkKvYFAAABGZJREFUeNrsnNmCqjoQRc1MEiD8/9cer7Yt2KBJZQC8ez07sKlKTQlcLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzoUSnt8YxXlFuGHSbIaxvj+fip4btkLn1blkWLaF5v03yLhLOYlVuGYfMOMZzNGxCOzhjTJqFkXnjq3Dr1yyvPI3hGl3Ih3zzHHNKudRstRhX5O58vIcShY67Gq6EPIESlzUWvazaGAOGbvU7ArDu/g8M4o8opDZWvbvPzlL/MMBE8jT9T9W7PbAJlHPTBFRf9yVTEcs63msXz2UHLSgf650G/d5t+wjbxxB2UCMqGrk8/LFSD7uJMeNt5bcJCyQZyAe5Fo9KYfWS2flQrr4b4tpuzaeWjYs49rt9LHf9uZD7+VbyVi9EBNrjYjuq2sxQOrl+p+HuBVu45qvqfq691ttYFQ5KyKbyJgaIY/NGxrlWZwlwGvmvu1oY3PuAv0niTq6tZ78jk//9uc1r1r4lQki7y7sp2Tu4V1y2iLoqFTqi1lIGcpFiebrZNZ1dOkF0cCIlO8jQ47nCkam9Lilz9GhDF1I6XGLzfnhwDIIZVfI7+8SSgfHsijqXENOGJF5QorG4EcW0OrScqX/dDrXpr70Ut/BII+1OfECPuYz/NWxYmgrCsUskxPvyhgmrw+WGZ6lGTuOlIyCYWTFyWjpM5KIZRUIOwjRNYRQ6tZF9BXtk8hWAHPtLNJ727Fq0JSkC1FDRRF0Jalj0d5qVh2KEpM2TuSsCYTCT6ZkdmFYI9LrYp5QayWbo6NXlZwcRD/61pth5Fq5EX423QQxNjhqWvvklkljOLkYjrmphXPZOJOk6Pg7HKMsrtQKcowzZoK3rx1ZUelGMdQA/HaKkjAt2RgqpZeYqbNbH7Hp2ct4nqfSPOfe0ftiSTZJydOV6rG5bQbyLK+nRuCC0343PzDgiOXyQA5c14BTZi98uR/5KJ1SnatLdoO50WWBQZPTq0VgsklU3h932actuo17ayrHrb/3ykiegd3KbqF2wbV6RrlsJ07yLcpsWFTul9RyK6ZScr+tk7oNrFj0o7HQUlj4EiEvJ6rPLKSmlMZCrksl1OnLaRkxc+/HB1naMhNtT/6yM2bDs6azCRHrM3aVPN7aW8irD/10B8njpAMcsl8okXcdKrl4sPsLmQVy/Sj90ucPRc/d/Bxxj+dXSpCayen32D+hLi16MsIV8gfCXrYp6ySsiJKRUF0XXiLpVbFU+fNv4r7mOwhFsX4ZdwpSi1DYs2jb6ebZ9788cblTzMrYhu7sf/17IFdtuviJ2ioHA6pMHkoH4CLUeMBU7iGkxuM/YgcdderF9ibRdc7O982F1HpYhjfWUe+x5a6pjop9iNLfoePvlsdZdTSMwfxSmTY20Q0eHnUNzga1edeNmmqbg18aMVR1L9vwSXHF9TfIWBxpKLs2hj3eQeBC0USvp2HHF3eIkRdhFOd6ER8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/I/4J8AAo/80BciBec4AAAAASUVORK5CYII=",
"$Meta": {
"Type": "ActionTemplate"
}
}
Page updated on Monday, April 13, 2020