ansible.builtin.s3_lifecycle (v2.3.3.0-1) — module

Manage s3 bucket lifecycle rules in AWS

| "added in version" 2.0 of ansible.builtin"

Authors: Rob White (@wimnat)

stableinterface | supported by curated

Install Ansible via pip

Install with pip install ansible==2.3.3.0.post1

Description

Manage s3 bucket lifecycle rules in AWS


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Note: These examples do not set authentication details, see the AWS Guide for details.

# Configure a lifecycle rule on a bucket to expire (delete) items with a prefix of /logs/ after 30 days
- s3_lifecycle:
    name: mybucket
    expiration_days: 30
    prefix: /logs/
    status: enabled
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Configure a lifecycle rule to transition all items with a prefix of /logs/ to glacier after 7 days and then delete after 90 days
- s3_lifecycle:
    name: mybucket
    transition_days: 7
    expiration_days: 90
    prefix: /logs/
    status: enabled
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Configure a lifecycle rule to transition all items with a prefix of /logs/ to glacier on 31 Dec 2020 and then delete on 31 Dec 2030. Note that midnight GMT must be specified.
# Be sure to quote your date strings
- s3_lifecycle:
    name: mybucket
    transition_date: "2020-12-30T00:00:00.000Z"
    expiration_date: "2030-12-30T00:00:00.000Z"
    prefix: /logs/
    status: enabled
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Disable the rule created above
- s3_lifecycle:
    name: mybucket
    prefix: /logs/
    status: disabled
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Delete the lifecycle rule created above
- s3_lifecycle:
    name: mybucket
    prefix: /logs/
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Configure a lifecycle rule to transition all backup files older than 31 days in /backups/ to standard infrequent access class.
- s3_lifecycle:
    name: mybucket
    prefix: /backups/
    storage_class: standard_ia
    transition_days: 31
    state: present
    status: enabled

Inputs

    
name:
    description:
    - Name of the s3 bucket
    required: true

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Create or remove the lifecycle rule
    required: false

prefix:
    default: null
    description:
    - Prefix identifying one or more objects to which the rule applies.  If no prefix
      is specified, the rule will apply to the whole bucket.
    required: false

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION
      environment variable, if any, is used. See U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)
    type: str

status:
    choices:
    - enabled
    - disabled
    default: enabled
    description:
    - If 'enabled', the rule is currently being applied. If 'disabled', the rule is not
      currently being applied.
    required: false

ec2_url:
    aliases:
    - aws_endpoint_url
    - endpoint_url
    description:
    - URL to use to connect to EC2 or your Eucalyptus cloud (by default the module will
      use EC2 endpoints). Ignored for modules where region is required. Must be specified
      for all other modules if region is not used. If not set then the value of the EC2_URL
      environment variable, if any, is used.
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - The I(profile) option is mutually exclusive with the I(aws_access_key), I(aws_secret_key)
      and I(security_token) options.
    type: str

rule_id:
    default: null
    description:
    - Unique identifier for the rule. The value cannot be longer than 255 characters.
      A unique value for the rule will be generated if no value is provided.
    required: false

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found at U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    type: dict

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - 'Note: The CA Bundle is read ''module'' side and may need to be explicitly copied
      from the controller if not run locally.'
    type: path

storage_class:
    choices:
    - glacier
    - standard_ia
    default: glacier
    description:
    - The storage class to transition to. Currently there are two supported values - 'glacier'
      or 'standard_ia'.
    - The 'standard_ia' class is only being available from Ansible version 2.2.
    required: false

aws_access_key:
    aliases:
    - ec2_access_key
    - access_key
    description:
    - C(AWS access key). If not set then the value of the C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY)
      or C(EC2_ACCESS_KEY) environment variable is used.
    - The I(aws_access_key) and I(profile) options are mutually exclusive.
    type: str

aws_secret_key:
    aliases:
    - ec2_secret_key
    - secret_key
    description:
    - C(AWS secret key). If not set then the value of the C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY),
      or C(EC2_SECRET_KEY) environment variable is used.
    - The I(aws_secret_key) and I(profile) options are mutually exclusive.
    type: str

security_token:
    aliases:
    - aws_session_token
    - session_token
    - aws_security_token
    - access_token
    description:
    - C(AWS STS security token). If not set then the value of the C(AWS_SECURITY_TOKEN)
      or C(EC2_SECURITY_TOKEN) environment variable is used.
    - The I(security_token) and I(profile) options are mutually exclusive.
    - Aliases I(aws_session_token) and I(session_token) have been added in version 3.2.0.
    type: str

validate_certs:
    default: true
    description:
    - When set to "no", SSL certificates will not be validated for communication with
      the AWS APIs.
    type: bool

expiration_date:
    default: null
    description:
    - Indicates the lifetime of the objects that are subject to the rule by the date they
      will expire. The value must be ISO-8601 format, the time must be midnight and a
      GMT timezone must be specified.
    required: false

expiration_days:
    default: null
    description:
    - Indicates the lifetime, in days, of the objects that are subject to the rule. The
      value must be a non-zero positive integer.
    required: false

transition_date:
    default: null
    description:
    - Indicates the lifetime of the objects that are subject to the rule by the date they
      will transition to a different storage class. The value must be ISO-8601 format,
      the time must be midnight and a GMT timezone must be specified. If transition_days
      is not specified, this parameter is required.
    required: false

transition_days:
    default: null
    description:
    - Indicates when, in days, an object transitions to a different storage class. If
      transition_date is not specified, this parameter is required.
    required: false

debug_botocore_endpoint_logs:
    default: 'no'
    description:
    - Use a botocore.endpoint logger to parse the unique (rather than total) "resource:action"
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the aws_resource_action callback to output to total list made
      during a playbook. The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also
      be used.
    type: bool