Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 29 Current »

You can use the Amazon EC2 Image task to create, delete or backup images (AMIs) of EBS backed Amazon Elastic Compute Cloud (Amazon EC2) instances; in particular, the task provides backup management with retention handling and backup set correlation.

Configuration

Changes to action names in release 2.10.3

As of release 2.10.3, there are two new API compatible EC2 Image actions and the former backup oriented actions have been renamed as follows to better reflect their scope (refer to https://utoolity.atlassian.net/browse/UAA-93 for details/background):

Old action name

New action name

Notes

N/A

Create Image(s)

New in 2.10.3

N/A

Delete Image(s)

New in 2.10.3

Create Image(s)

Grow Image Backup Set


Delete Image(s)

Prune Image Backup Set


Backup Image(s)

Grow & Prune Image Backup Set


This is a name change only and no action needs to be taken: existing tasks simply use the new names now and their configuration remains unchanged.

To configure an Amazon EC2 Image task:

1. Navigate to the Tasks configuration tab for the job (this will be the default job if creating a new plan).

2. Click the name of an existing Amazon EC2 Image task, or click Add Task and then Amazon EC2 Image Task to create a new task.

3. Complete the following settings:

a. Common to all tasks

 Click here to expand...

Common (Bamboo)


Task Description (Optional) Identify the purpose of the task.
Disable this task

Check, or clear, to selectively run this task.

...Configure task/action specific parameters, see below ...
Bamboo Variables
NamespaceProvide the namespace for generated variables – defaults to custom.aws for backward compatibility.
Scope

Select the scope for generated variables – can be either Local (Variables will only be available in this job), or Result (Variables will be available in subsequent plan stages and deployment releases).

Common (AWS)


Action

Each task supports one or more actions depending on the target AWS resource. Select the desired action and configure the action specific parameters below.

RegionSelect the desired AWS Region. Alternatively, select [Use region variable ...] to supply the region dynamically via Bamboo variables (needs to be a region code such as ap-southeast-2) - refer to How to parametrize the AWS region via a Bamboo variable for details.
...Configure task/action specific parameters, see below ...
AWS Security Credentials
SourceSelect the source for the required AWS Security Credentials – can be either Inline, an IAM Role for EC2 or a shared Identity Federation for AWS Connector.
Connector(Conditional) Select the shared Identity Federation for AWS Connector. Alternatively, select [Use connector variable ...] to supply the connector dynamically via Bamboo variables (needs to be a connector id such as f24e81bc-7aff-42db-86a2-7cf82e24d871) - refer to How to parametrize the AWS connector via a Bamboo variable for details.

b. Actions supported by this task:

Create Image(s)

Custom Variables

In addition to the the regular Bamboo Variable Substitution/Definition, the Create Image(s) action's Image Name, Description and Tags fields also support Injecting contextual entity variables into task configurations to ease composing unique names when targeting multiple EC2 instances at once. For example, you can refer to the source instance and add a timestamp to create the unique name ${utoolity.aws.instanceId}.${utoolity.iso8601.basicDateTime}.

(info) These custom variables have task scope only (rather than the regular local scope aka job scope), i.e. they cease to exist when this task finishes.

Instance ID

(Optional) Specify one or more instance IDs (semicolon separated).

Instance Filters

(Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Image Name

Specify the image name.

Description

Describe the image.

Don't fail for empty filter result

Check to prevent the task failing if no matching resources are found.

No reboot

If unchecked (default) Amazon EC2 attempts to shut down the instance cleanly before image creation and then reboots the instance. If checked, Amazon EC2 doesn't shut down the instance before creating the image.

  • (warning) When this option is used, file system integrity on the created image can't be guaranteed.

Tags

Specify tags in JSON format.

Delete Image(s)

Snapshot Deletion

This action currently implies deletion of the backing EBS snapshots, which only works if those are not in use by another EC2 image still. Please watch/vote/comment on https://utoolity.atlassian.net/browse/UAA-163 if your use case requires to deregister an image as a standalone action.

Image ID

(Optional) Specify one or more image IDs (semicolon separated).

Image Filters

(Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Don't fail for empty filter result

see Create Image(s) above

Grow Image Backup Set

(lightbulb) Most use cases can be covered with the combined Grow & Prune Image Backup Set instead, see below.

Instance ID

(Optional) Specify one or more instance IDs (semicolon separated).

Filters

(Optional) Specify resource filters in JSON format. Insert fragments from the inline Examples dialog to get started.

Don't fail for empty filter result

Check to prevent the task failing if no matching resources are found.

No reboot

If unchecked (default) Amazon EC2 attempts to shut down the instance cleanly before image creation and then reboots the instance. If checked, Amazon EC2 doesn't shut down the instance before creating the image.

  • (warning) When this option is used, file system integrity on the created image can't be guaranteed.

Backup Set

Specify the name of the backup set, which determines retention correlation.

Prune Image Backup Set

(lightbulb) Most use cases can be covered with the combined Grow & Prune Image Backup Set instead, see below.

Instance ID

see Create Image(s) above

Filters

see Create Image(s) above

Don't fail for empty filter result

see Create Image(s) above

Backup Set

see Create Image(s) above

Backup Retention

Specify the number of backups that should be retained.

Grow & Prune Image Backup Set


What is a Backup Set for EC2 Instances?

A Backup Set allows to retain an isolated use case oriented set of the last at most N images of one or more EC2 instances.

When the EC2 Image task's Grow & Prune Image Backup Set action executes, it will:

  1. Create a new EC2 image for each selected EC2 instance and tag the image with a key Backup Policy and a value based on the Backup Set name (thus "grow the image backup set")
  2. Enumerate all existing images for the selected EC2 instance(s) that are tagged with a key Backup Policy whose value matches the Backup Set name
  3. If it finds more images in this Backup Set than defined by the Backup Retention number, it will delete the oldest images in FIFO order until only the desired number is left (thus "prune the image backup set")

(lightbulb) While there are also separate Grow Image Backup Set and Prune Image Backup Set actions to separate the two activities (for example, to only grow the backup set on each work day, but prune it to the last work day's image at the end of the week), the Grow & Prune Image Backup Set action covers most rotating backup use cases in a single operation.

Instance ID

see Create Image(s) above

Filters

see Create Image(s) above

Don't fail for empty filter result

see Create Image(s) above

No reboot

see Create Image(s) above

Backup Set

see Create Image(s) above

Backup Retention

see Delete Image(s) above

Variables

All tasks support Bamboo Variable Substitution/Definition - this task's actions generate variables as follows:

A task's generated variables might get amended with respective AWS API additions over time - a live build log will always provide the most current variable shape accordingly

Create Image(s)

The logged bamboo.custom.aws.ec2.image.first.tags outputs are example tags composed via custom variables and regular Bamboo variables, i.e. you need to specify any desired tags yourself as JSON input for the Tags field.

Creating common variables for 2 resources affected by task:
... bamboo.custom.aws.ec2.image.resources: ami-8cbdaee6;ami-eebead84
Creating resource variables for image 'ami-8cbdaee6':
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Architecture: x86_64
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.CreationDate: 2016-04-12T23:18:41.000Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Description: Image created by TAWS-IT2103-EC22-14 from i-ccb9ab23 at 20160412T231840Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Hypervisor: xen
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.ImageId: ami-8cbdaee6
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.ImageLocation: 309600995652/taws-it-2103-i-ccb9ab23-20160412T231840Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.ImageOwnerAlias: null
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.ImageType: machine
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.KernelId: null
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Name: taws-it-2103-i-ccb9ab23-20160412T231840Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.OwnerId: 309600995652
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Platform: null
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.Public: false
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.RamdiskId: null
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.RootDeviceName: /dev/xvda
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.RootDeviceType: ebs
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.SriovNetSupport: simple
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.State: available
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.StateReason: null
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.VirtualizationType: hvm
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags: basicDate;basicTimeMilliseconds;basicTime;basicDateTimeMilliseconds;buildResultKey;instanceId;basicDateTime
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.basicDate: 20160412
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.basicTimeMilliseconds: 231840.876Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.basicTime: 231840Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.basicDateTimeMilliseconds: 20160412T231840.876Z
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.buildResultKey: TAWS-IT2103-EC22-14
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.instanceId: i-ccb9ab23
... bamboo.custom.aws.ec2.image.resources.ami-8cbdaee6.tags.basicDateTime: 20160412T231840Z
...
Creating common variables for first resource affected by task:
Creating resource variables for image 'ami-8cbdaee6':
... bamboo.custom.aws.ec2.image.first.Architecture: x86_64
... bamboo.custom.aws.ec2.image.first.CreationDate: 2016-04-12T23:18:41.000Z
... bamboo.custom.aws.ec2.image.first.Description: Image created by TAWS-IT2103-EC22-14 from i-ccb9ab23 at 20160412T231840Z
... bamboo.custom.aws.ec2.image.first.Hypervisor: xen
... bamboo.custom.aws.ec2.image.first.ImageId: ami-8cbdaee6
... bamboo.custom.aws.ec2.image.first.ImageLocation: 309600995652/taws-it-2103-i-ccb9ab23-20160412T231840Z
... bamboo.custom.aws.ec2.image.first.ImageOwnerAlias: null
... bamboo.custom.aws.ec2.image.first.ImageType: machine
... bamboo.custom.aws.ec2.image.first.KernelId: null
... bamboo.custom.aws.ec2.image.first.Name: taws-it-2103-i-ccb9ab23-20160412T231840Z
... bamboo.custom.aws.ec2.image.first.OwnerId: 309600995652
... bamboo.custom.aws.ec2.image.first.Platform: null
... bamboo.custom.aws.ec2.image.first.Public: false
... bamboo.custom.aws.ec2.image.first.RamdiskId: null
... bamboo.custom.aws.ec2.image.first.RootDeviceName: /dev/xvda
... bamboo.custom.aws.ec2.image.first.RootDeviceType: ebs
... bamboo.custom.aws.ec2.image.first.SriovNetSupport: simple
... bamboo.custom.aws.ec2.image.first.State: available
... bamboo.custom.aws.ec2.image.first.StateReason: null
... bamboo.custom.aws.ec2.image.first.VirtualizationType: hvm
... bamboo.custom.aws.ec2.image.first.tags: basicDate;basicTimeMilliseconds;basicTime;basicDateTimeMilliseconds;buildResultKey;instanceId;basicDateTime
... bamboo.custom.aws.ec2.image.first.tags.basicDate: 20160412
... bamboo.custom.aws.ec2.image.first.tags.basicTimeMilliseconds: 231840.876Z
... bamboo.custom.aws.ec2.image.first.tags.basicTime: 231840Z
... bamboo.custom.aws.ec2.image.first.tags.basicDateTimeMilliseconds: 20160412T231840.876Z
... bamboo.custom.aws.ec2.image.first.tags.buildResultKey: TAWS-IT2103-EC22-14
... bamboo.custom.aws.ec2.image.first.tags.instanceId: i-ccb9ab23
... bamboo.custom.aws.ec2.image.first.tags.basicDateTime: 20160412T231840Z

Delete Image(s)

N/A

Grow Image Backup Set

Creating common variables for 2 resources affected by task:
... bamboo.custom.aws.ec2.image.resources: ami-a5bfaccf;ami-e5bead8f
Creating resource variables for image 'ami-a5bfaccf':
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Architecture: x86_64
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.CreationDate: 2016-04-12T23:21:30.000Z
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Description: Created by Bamboo EC2 Image Task from i-cdb9ab22
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Hypervisor: xen
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.ImageId: ami-a5bfaccf
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.ImageLocation: 309600995652/i-cdb9ab22.20160412T232130Z
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.ImageOwnerAlias: null
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.ImageType: machine
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.KernelId: null
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Name: i-cdb9ab22.20160412T232130Z
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.OwnerId: 309600995652
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Platform: null
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.Public: false
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.RamdiskId: null
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.RootDeviceName: /dev/xvda
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.RootDeviceType: ebs
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.SriovNetSupport: simple
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.State: available
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.StateReason: null
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.VirtualizationType: hvm
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.tags: Name;Backup Policy
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.tags.Name: taws-it-245-1.20160412T232130Z
... bamboo.custom.aws.ec2.image.resources.ami-a5bfaccf.tags.Backup Policy: taws-it-245
...
Creating common variables for first resource affected by task:
Creating resource variables for image 'ami-a5bfaccf':
... bamboo.custom.aws.ec2.image.first.Architecture: x86_64
... bamboo.custom.aws.ec2.image.first.CreationDate: 2016-04-12T23:21:30.000Z
... bamboo.custom.aws.ec2.image.first.Description: Created by Bamboo EC2 Image Task from i-cdb9ab22
... bamboo.custom.aws.ec2.image.first.Hypervisor: xen
... bamboo.custom.aws.ec2.image.first.ImageId: ami-a5bfaccf
... bamboo.custom.aws.ec2.image.first.ImageLocation: 309600995652/i-cdb9ab22.20160412T232130Z
... bamboo.custom.aws.ec2.image.first.ImageOwnerAlias: null
... bamboo.custom.aws.ec2.image.first.ImageType: machine
... bamboo.custom.aws.ec2.image.first.KernelId: null
... bamboo.custom.aws.ec2.image.first.Name: i-cdb9ab22.20160412T232130Z
... bamboo.custom.aws.ec2.image.first.OwnerId: 309600995652
... bamboo.custom.aws.ec2.image.first.Platform: null
... bamboo.custom.aws.ec2.image.first.Public: false
... bamboo.custom.aws.ec2.image.first.RamdiskId: null
... bamboo.custom.aws.ec2.image.first.RootDeviceName: /dev/xvda
... bamboo.custom.aws.ec2.image.first.RootDeviceType: ebs
... bamboo.custom.aws.ec2.image.first.SriovNetSupport: simple
... bamboo.custom.aws.ec2.image.first.State: available
... bamboo.custom.aws.ec2.image.first.StateReason: null
... bamboo.custom.aws.ec2.image.first.VirtualizationType: hvm
... bamboo.custom.aws.ec2.image.first.tags: Name;Backup Policy
... bamboo.custom.aws.ec2.image.first.tags.Name: taws-it-245-1.20160412T232130Z
... bamboo.custom.aws.ec2.image.first.tags.Backup Policy: taws-it-245

Prune Image Backup Set

N/A

Grow & Prune Image Backup Set

See Grow above.

How-to Articles

Frequently Asked Questions (FAQ)

Atlassian account required

Due to a regression within Questions for Confluence Cloud, you need to log in with your Atlassian ID (or sign up for a new account) to access these automatically curated FAQs (refer to UAA-312 for the background).

  • No labels