AWS - Find Blue-Green ASG

Octopus.AwsRunScript exported 01/10/2025 by mcasperson belongs to 'AWS' category.

Return the name of the online and offline blue and green Auto Scaling Groups

Parameters

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

Inactive Color

AWSBlueGreen.InactiveColor

The color of the inactive group (Green or Blue). This value is usually found from the "AWS - Find Blue-Green Target Group" step.

Green ASG Name

AWSBlueGreen.AWS.GreenASG

The name of the green auto scaler group. See https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html for more details.

Blue ASG Name

AWSBlueGreen.AWS.BlueASG

The name of the blue auto scaler group. See https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html for more details.

Region

AWSBlueGreen.AWS.Region

The AWS region. See https://aws.amazon.com/about-aws/global-infrastructure/regions_az/ for more information.

Account

AWSBlueGreen.AWS.Account

Script body

Steps based on this template will execute the following Bash script.
Show script
#!/bin/bash

INACTIVECOLOR=${1:-'#{AWSBlueGreen.InactiveColor | Trim}'}
GREENASG=${2:-'#{AWSBlueGreen.AWS.GreenASG | Trim}'}
BLUEASG=${3:-'#{AWSBlueGreen.AWS.BlueASG | Trim}'}

echoerror() { echo "$@" 1>&2; }

if [[ -z "${INACTIVECOLOR}" ]]
then
  echoerror "Please provide the color of the inactive Auto Scaling group (Green or Blue) as the first argument"
  exit 1
fi

if [[ -z "${GREENASG}" ]]
then
  echoerror "Please provide the name of the Green Auto Scaling group as the second argument"
  exit 1
fi

if [[ -z "${BLUEASG}" ]]
then
  echoerror "Please provide the name of the Blue Auto Scaling group as the third argument"
  exit 1
fi

if [[ "${INACTIVECOLOR^^}" == "GREEN" ]]
then
  set_octopusvariable "ActiveGroup" "${BLUEASG}"
  set_octopusvariable "InactiveGroup" "${GREENASG}"
  echo "Active group is Blue (${BLUEASG}), inactive group is Green (${GREENASG})"
else
  set_octopusvariable "ActiveGroup" "${GREENASG}"
    set_octopusvariable "InactiveGroup" "${BLUEASG}"
    echo "Active group is Green (${GREENASG}), inactive group is Blue (${BLUEASG})"
fi

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

Show JSON
{
  "Id": "6b72995e-500c-4b4b-9121-88f3a988ec71",
  "Name": "AWS - Find Blue-Green ASG",
  "Description": "Return the name of the online and offline blue and green Auto Scaling Groups",
  "Version": 1,
  "ExportedAt": "2025-01-10T03:42:14.665Z",
  "ActionType": "Octopus.AwsRunScript",
  "Author": "mcasperson",
  "Packages": [],
  "Parameters": [
    {
      "Id": "f8522014-f1ba-4e4a-a06d-59ebdba6f276",
      "Name": "AWSBlueGreen.InactiveColor",
      "Label": "Inactive Color",
      "HelpText": "The color of the inactive group (Green or Blue). This value is usually found from the \"AWS - Find Blue-Green Target Group\" step.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "8753e6ed-0ae6-4a4c-ae5b-155139037633",
      "Name": "AWSBlueGreen.AWS.GreenASG",
      "Label": "Green ASG Name",
      "HelpText": "The name of the green auto scaler group. See https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html for more details.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "bf9187f5-62e9-4ad9-b53f-459466b84994",
      "Name": "AWSBlueGreen.AWS.BlueASG",
      "Label": "Blue ASG Name",
      "HelpText": "The name of the blue auto scaler group. See https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html for more details.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "eb02bbf2-e05a-4469-9359-c77d77d87dd2",
      "Name": "AWSBlueGreen.AWS.Region",
      "Label": "Region",
      "HelpText": "The AWS region. See https://aws.amazon.com/about-aws/global-infrastructure/regions_az/ for more information.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "99a74afc-ee67-4295-8281-3bb1c6e83d06",
      "Name": "AWSBlueGreen.AWS.Account",
      "Label": "Account",
      "HelpText": null,
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "AmazonWebServicesAccount"
      }
    }
  ],
  "Properties": {
    "OctopusUseBundledTooling": "False",
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "Bash",
    "Octopus.Action.Aws.AssumeRole": "False",
    "Octopus.Action.AwsAccount.UseInstanceRole": "False",
    "Octopus.Action.AwsAccount.Variable": "#{AWSBlueGreen.AWS.Account}",
    "Octopus.Action.Script.ScriptBody": "#!/bin/bash\n\nINACTIVECOLOR=${1:-'#{AWSBlueGreen.InactiveColor | Trim}'}\nGREENASG=${2:-'#{AWSBlueGreen.AWS.GreenASG | Trim}'}\nBLUEASG=${3:-'#{AWSBlueGreen.AWS.BlueASG | Trim}'}\n\nechoerror() { echo \"$@\" 1>&2; }\n\nif [[ -z \"${INACTIVECOLOR}\" ]]\nthen\n  echoerror \"Please provide the color of the inactive Auto Scaling group (Green or Blue) as the first argument\"\n  exit 1\nfi\n\nif [[ -z \"${GREENASG}\" ]]\nthen\n  echoerror \"Please provide the name of the Green Auto Scaling group as the second argument\"\n  exit 1\nfi\n\nif [[ -z \"${BLUEASG}\" ]]\nthen\n  echoerror \"Please provide the name of the Blue Auto Scaling group as the third argument\"\n  exit 1\nfi\n\nif [[ \"${INACTIVECOLOR^^}\" == \"GREEN\" ]]\nthen\n  set_octopusvariable \"ActiveGroup\" \"${BLUEASG}\"\n  set_octopusvariable \"InactiveGroup\" \"${GREENASG}\"\n  echo \"Active group is Blue (${BLUEASG}), inactive group is Green (${GREENASG})\"\nelse\n  set_octopusvariable \"ActiveGroup\" \"${GREENASG}\"\n    set_octopusvariable \"InactiveGroup\" \"${BLUEASG}\"\n    echo \"Active group is Green (${GREENASG}), inactive group is Blue (${BLUEASG})\"\nfi",
    "Octopus.Action.Aws.Region": "#{AWSBlueGreen.AWS.Region}"
  },
  "Category": "AWS",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates/aws-find-blue-green-asg.json",
  "Website": "/step-templates/6b72995e-500c-4b4b-9121-88f3a988ec71",
  "Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNQTFRF////9o0R/eLD/Nu0/erS95Qg+bhr95sv/vHh+r96/vjw+bFc/NSl+KI++82W+saI+KpNeDqM1wAAA41JREFUeNrsnG2XazAURiuo0Cr//9feliIvR3DvXJFZe3+a6XpW5+xWEpyY2w0AAAAAAAAAAAAAAAAAAADgf1J0bda/9N70q83a3enzUHWVjbR1sW0xp6sd6fPI72VmUt3zA+kymD6N5vnIBMrHsxHTjsUXOX0e+iVaTNU5Q0A/Q+k+4oAp+ixMbw6A4rGVVjGHR92ulNXWuTAlBNJN/FFyr5yy3qN9rawmF9IxR4hqX4U1WMplmGtruVBDuiuswbKkzaGhX+cfXsqbZlXXv0dsYR13nw9fLenGXD7f6U5Ony4yTpzyZLNMUcpMr0xNzfwdRRMR1/LP2cqMctNqKx1LZFydm2U022ueEtLL6HbHfmSRYRn4HDXaXyzU4XRkkZWK/+JlRBBBBBFEEEEEEUQQQQQRRBBB5B9uYJc7SyuLw+nI7R2ptKWJcywd18Utza0rnM4iN66M6qzS5E93Lf1zLaviUL/ISs/Nt6W00DEyuRgiP2Yxvrd15z/Y26ncG76jy1Ta5jEy/L0p/VMWy33woVm8UYN1Y9fqKrzfZ5iedtaV34+kNxHak2Wg2SSkY7djx/bQWkNP6nkE0lH3Lyx7D1aak1Z1erWJ+U130Vz0Sude7mZqv995nW7mZxJd27Sg5XQppuMdWY3xl1XXOge8MasWjZfund0KbvrkE9fK7OPNne+2U9YEWX3nemtSbvLv6LJ7gZ9X45yBl9ZxrZ9d3vjT8rz62tOsny7jXkpYPX9jQmvF8yF55TdaslGviZy1vAmfoTobsZztGNEv7qZZSr/6HRc/0yzlb3HiKhURRBBBBBFEEEEEEUQQQQQRRBD5XSLav38tllbVzeH02Ww/UWA+6XgsHdXFKc2vK5Quoz/duVRnlrb26crpizzXOVU3l2Zb5Pfe+d1OX8ViqW7qH9gt51K44bukr2XxrW54vMaoy7mxa/cgvPRVKcQG7uOCD58HLQLt3r17Iy6AqjYeDG7TUenWW+p9Ot/IOF/lwuHV1nk6o8M469PWXhtr+0BeX/x7Ue40W3xacfb2gXFxUZcX8TYB3Kyfp+GThsjKti2zgZuMiLshxW3gpiQyrn/DXhR/i1NqIte5pkUEEUQQQQQRRBBBBBFEEEEEEUR+g4jQUZBEqjqFO9mOiyeShoXvYoukZOG4GCLpWZgu83/vTNRidhlE0rYAAAAAAAAAAAAAAAAAAACAZPkjwAAMDi+bsnPP/wAAAABJRU5ErkJggg==",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History »