Octopus.AzurePowerShell exported 2020-06-22 by benjimac93 belongs to ‘Azure’ category.
Uses Service Principal to Remove Server From Azure Load Balancer.
Parameters
When steps based on the template are included in a project’s deployment process, the parameters below can be set.
Azure Account
rsflbAzureAccount =
Service Principal used to connect to Azure
Azure Subscription
rsflbAzureSubscription =
Subscription Load Balancer belongs to. Eg. 00000000-0000-0000-0000-000000000000
Azure Resource Group
rsflbAzureResourceGroup =
Resource Group Load Balancer belongs to. Eg. ProductionAus
Azure Machine Name
rsflbAzureMachineName =
Name of Virtual Machine to remove from Load Balancer. Eg Web01
Script body
Steps based on this template will execute the following PowerShell script.
#region Verify variables
#Verify rsflbAzureSubscription is not null.
If ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureSubscription']))
{
Throw 'Azure Subscription cannot be null.'
}
$azureSubscription = $OctopusParameters['rsflbAzureSubscription']
Write-Host ('Azure Subscription: ' + $azureSubscription)
#Verify rsflbAzureResourceGroup is not null.
If ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureResourceGroup']))
{
Throw 'Azure Resource Group cannot be null.'
}
$azureResourceGroup = $OctopusParameters['rsflbAzureResourceGroup']
Write-Host ('Azure Resource Group: ' + $azureResourceGroup)
#Verify rsflbAzureMachineName is not null.
If ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureMachineName']))
{
Throw 'Azure Machine Name cannot be null.'
}
$azureMachineName = $OctopusParameters['rsflbAzureMachineName']
Write-Host ('Azure Machine Name: ' + $azureMachineName)
#endregion
#region Process
Set-AzureRmContext -SubscriptionName $azureSubscription
$azureVM = Get-AzureRmVM -ResourceGroupName $azureResourceGroup -Name $azureMachineName
If (!$azureVM)
{
Throw 'Could not retrieve server from Azure needed to remove from Load Balancer.'
}
$nic = (Get-AzureRmNetworkInterface -ResourceGroupName $azureResourceGroup | Where-Object {$_.VirtualMachine.Id -eq $azureVM.Id})
If (!$nic)
{
Throw 'Could not retrieve NIC from Azure needed to remove from Load Balancer.'
}
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools = $null
$nic | Set-AzureRmNetworkInterface
#endregion
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": "5658d525-2a04-47da-85a0-00244976d811",
"Name": "Remove Server from Azure Load Balancer",
"Description": "Uses Service Principal to Remove Server From Azure Load Balancer.",
"Version": 3,
"ExportedAt": "2020-06-22T10:40:51.529Z",
"ActionType": "Octopus.AzurePowerShell",
"Author": "benjimac93",
"Packages": [],
"Parameters": [
{
"Id": "6efd155e-8ab7-4236-bc16-7748a582e3af",
"Name": "rsflbAzureAccount",
"Label": "Azure Account",
"HelpText": "Service Principal used to connect to Azure",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "AzureAccount"
}
},
{
"Id": "2cff4dbe-685c-47e0-b7c7-6d6ee25bdc48",
"Name": "rsflbAzureSubscription",
"Label": "Azure Subscription",
"HelpText": "Subscription Load Balancer belongs to. Eg. 00000000-0000-0000-0000-000000000000",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "150ef843-5b2c-43e9-ac12-a8d0cc45565e",
"Name": "rsflbAzureResourceGroup",
"Label": "Azure Resource Group",
"HelpText": "Resource Group Load Balancer belongs to. Eg. ProductionAus",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "7397be30-76e3-4c16-9b8b-05c451a23e70",
"Name": "rsflbAzureMachineName",
"Label": "Azure Machine Name",
"HelpText": "Name of Virtual Machine to remove from Load Balancer. Eg Web01",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"Properties": {
"Octopus.Action.Script.ScriptSource": "Inline",
"Octopus.Action.Script.ScriptBody": "#region Verify variables\n\n#Verify rsflbAzureSubscription is not null.\nIf ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureSubscription']))\n{\n Throw 'Azure Subscription cannot be null.'\n}\n$azureSubscription = $OctopusParameters['rsflbAzureSubscription']\nWrite-Host ('Azure Subscription: ' + $azureSubscription)\n\n#Verify rsflbAzureResourceGroup is not null.\nIf ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureResourceGroup']))\n{\n Throw 'Azure Resource Group cannot be null.'\n}\n$azureResourceGroup = $OctopusParameters['rsflbAzureResourceGroup']\nWrite-Host ('Azure Resource Group: ' + $azureResourceGroup)\n\n#Verify rsflbAzureMachineName is not null.\nIf ([string]::IsNullOrEmpty($OctopusParameters['rsflbAzureMachineName']))\n{\n Throw 'Azure Machine Name cannot be null.'\n}\n$azureMachineName = $OctopusParameters['rsflbAzureMachineName']\nWrite-Host ('Azure Machine Name: ' + $azureMachineName)\n\n#endregion\n\n#region Process\n\nSet-AzureRmContext -SubscriptionName $azureSubscription\n\n$azureVM = Get-AzureRmVM -ResourceGroupName $azureResourceGroup -Name $azureMachineName\nIf (!$azureVM)\n{\n Throw 'Could not retrieve server from Azure needed to remove from Load Balancer.'\n}\n\n$nic = (Get-AzureRmNetworkInterface -ResourceGroupName $azureResourceGroup | Where-Object {$_.VirtualMachine.Id -eq $azureVM.Id})\nIf (!$nic)\n{\n Throw 'Could not retrieve NIC from Azure needed to remove from Load Balancer.'\n}\n\n$nic.IpConfigurations[0].LoadBalancerBackendAddressPools = $null\n$nic | Set-AzureRmNetworkInterface\n\n#endregion",
"Octopus.Action.Script.Syntax": "PowerShell",
"Octopus.Action.Azure.AccountId": "#{rsflbAzureAccount}"
},
"Category": "Azure",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/remove-server-from-azure-load-balancer.json",
"Website": "/step-templates/5658d525-2a04-47da-85a0-00244976d811",
"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, June 22, 2020