Azure - Sync Instance Count

Octopus.Script exported 2015-06-18 by mani0070 belongs to ‘Azure’ category.

This step template is useful when you want to have the instance count matched just before the VIP swap. It takes the source slot (usually Production slot) and match with the current deployment slot (normally Staging). Note: This will be helpful in scenario when 15 instances in Production and 4 instance in staging. This step template should only be used when a production slot already exists.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Specify the Slot to Get Instance Count

sourceslot = Production

This is usually Production Slot to obtain the Count and match to staging before swap.

Script body

Steps based on this template will execute the following PowerShell script.

# Current Cloud Service name 
$ServiceName =$octopusparameters["Octopus.Action.Azure.CloudServiceName"]

$deployment = Get-AzureDeployment -slot $sourceslot -serviceName $serviceName
# Obtain the instance count and role name.
$SourceInstanceCount =$deployment.RolesConfiguration.values.InstanceCount
$rolenameService = $deployment.RolesConfiguration.values.Name
#Set the Current deployment slot instance count to match production count
Set-AzureRole -ServiceName $serviceName -Slot $octopusparameters["Octopus.Action.Azure.Slot"] -RoleName $rolenameService -Count $SourceInstanceCount 

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "8a0a75da-4960-40ca-b641-5ed2305fa655",
  "Name": "Azure - Sync Instance Count",
  "Description": "This step template is useful when you want to have the instance count matched just before the VIP swap. It takes the source slot (usually Production slot) and match with the current deployment slot (normally Staging). Note: This will be helpful in scenario when 15 instances in Production and 4 instance in staging. This step template should only be used when a production slot already exists.",
  "Version": 7,
  "ExportedAt": "2015-06-18T13:48:39.548+00:00",
  "ActionType": "Octopus.Script",
  "Author": "mani0070",
  "Parameters": [
    {
      "Name": "sourceslot",
      "Label": "Specify the Slot to Get Instance Count",
      "HelpText": "This is usually Production Slot to obtain the Count and match to staging before swap.",
      "DefaultValue": "Production",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptBody": "# Current Cloud Service name \n$ServiceName =$octopusparameters[\"Octopus.Action.Azure.CloudServiceName\"]\n\n$deployment = Get-AzureDeployment -slot $sourceslot -serviceName $serviceName\n# Obtain the instance count and role name.\n$SourceInstanceCount =$deployment.RolesConfiguration.values.InstanceCount\n$rolenameService = $deployment.RolesConfiguration.values.Name\n#Set the Current deployment slot instance count to match production count\nSet-AzureRole -ServiceName $serviceName -Slot $octopusparameters[\"Octopus.Action.Azure.Slot\"] -RoleName $rolenameService -Count $SourceInstanceCount "
  },
  "Category": "Azure",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/azure-sync-instancecount-from-prod-to-staging.json",
  "Website": "/step-templates/8a0a75da-4960-40ca-b641-5ed2305fa655",
  "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"
  }
}

History

Page updated on Thursday, June 18, 2015