community.aws.redshift 模块 – 创建、删除或修改 Amazon Redshift 实例

注意

此模块是 community.aws 集合 (版本 9.0.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.aws。您需要满足其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定: community.aws.redshift

community.aws 1.0.0 中的新增功能

概要

  • 创建、删除或修改 Amazon Redshift 集群实例。

要求

在执行此模块的主机上需要以下要求。

  • python >= 3.6

  • boto3 >= 1.28.0

  • botocore >= 1.31.0

参数

参数

注释

access_key

别名:aws_access_key_id、aws_access_key、ec2_access_key

字符串

AWS 访问密钥 ID。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以按优先级递减的顺序使用 AWS_ACCESS_KEY_IDAWS_ACCESS_KEYEC2_ACCESS_KEY 环境变量。

aws_access_keyprofile 选项是互斥的。

为与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。

ec2_access_key 别名已弃用,将在 2024-12-01 之后的某个版本中删除。

EC2_ACCESS_KEY 环境变量的支持已弃用,将在 2024-12-01 之后的某个版本中删除。

allow_version_upgrade

别名:version_upgrade

布尔值

allow_version_upgrade=true 时,集群可以在维护期间自动升级。

选项

  • false

  • true ← (默认)

automated_snapshot_retention_period

别名:retention_period

整数

保留自动快照的天数。

availability_zone

别名:zone、aws_zone

字符串

启动集群的可用区。

aws_ca_bundle

路径

验证 SSL 证书时要使用的 CA 捆绑包的位置。

也可以使用 AWS_CA_BUNDLE 环境变量。

aws_config

字典

修改 botocore 配置的字典。

参数可在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config

cluster_parameter_group_name

别名:param_group_name

字符串

集群参数组的名称。

cluster_security_groups

别名:security_groups

列表 / 元素=字符串

集群所属的安全组。

cluster_subnet_group_name

别名:subnet

字符串

放置集群的子网。

cluster_type

字符串

集群的类型。

选项

  • "multi-node"

  • "single-node" ← (默认)

cluster_version

别名:version

字符串

集群应具有的版本。

选项

  • "1.0"

command

字符串 / 必需

指定要执行的操作。

选项

  • "create"

  • "facts"

  • "delete"

  • "modify"

db_name

字符串

数据库的名称。

debug_botocore_endpoint_logs

布尔值

使用 botocore.endpoint 记录器来解析任务期间执行的唯一(而不是全部)"resource:action" API 调用,并将集合输出到任务结果中的 resource_actions 密钥。使用 aws_resource_action 回调函数将输出到 playbook 期间执行的全部列表。

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

elastic_ip

字符串

要用于集群的弹性 IP。

encrypted

布尔值

集群是否已加密。

选项

  • false ← (默认)

  • true

endpoint_url

别名:ec2_url、aws_endpoint_url、s3_url

字符串

连接到非默认 AWS 端点的 URL。虽然这可用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行测试。

也可以按优先级递减的顺序使用 AWS_URLEC2_URL 环境变量。

ec2_urls3_url 别名已弃用,将在 2024-12-01 之后的某个版本中删除。

EC2_URL 环境变量的支持已弃用,将在 2024-12-01 之后的某个版本中删除。

enhanced_vpc_routing

布尔值

集群是否应启用增强的 VPC 路由。

选项

  • false ← (默认)

  • true

final_cluster_snapshot_identifier

别名: final_snapshot_id

字符串

删除集群前创建的最终快照的标识符。

如果提供此参数,则skip_final_cluster_snapshot必须为false

仅在command=delete时使用。

标识符

字符串 / 必需

Redshift集群标识符。

new_cluster_identifier

别名: new_identifier

字符串

仅在command=modify时使用。

节点类型

字符串

集群的节点类型。

command=create时必需。

选项

  • "ds1.xlarge"

  • "ds1.8xlarge"

  • "ds2.xlarge"

  • "ds2.8xlarge"

  • "dc1.large"

  • "dc2.large"

  • "dc1.8xlarge"

  • "dw1.xlarge"

  • "dw1.8xlarge"

  • "dw2.large"

  • "dw2.8xlarge"

节点数

整数

节点数量。

仅在cluster_type=multi-node时使用。

密码

字符串

主数据库密码。

仅在command=create时使用。

端口

整数

集群监听的端口。

preferred_maintenance_window

别名: maintance_window, maint_window

字符串

维护窗口,格式为ddd:hh24:mi-ddd:hh24:mi。(例如:Mon:22:00-Mon:23:15)

时间以UTC表示。

如果未指定,则分配一个随机的30分钟维护窗口。

profile

别名: aws_profile

字符串

用于身份验证的命名AWS配置文件。

有关命名配置文件的更多信息,请参见AWS文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

也可以使用AWS_PROFILE环境变量。

profile选项与aws_access_keyaws_secret_keysecurity_token选项互斥。

公网访问

布尔值

集群是否可公开访问。

选项

  • false ← (默认)

  • true

清除标签

布尔值

如果purge_tags=truetags已设置,则将从资源中清除现有标签,以完全匹配tags参数定义的内容。

如果未设置tags参数,则即使purge_tags=True,也不会修改标签。

aws:开头的标签键由Amazon保留,不能修改。因此,在purge_tags参数中将忽略它们。有关更多信息,请参见Amazon文档 https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions

选项

  • false

  • true ← (默认)

region

别名: aws_region, ec2_region

字符串

要使用的AWS区域。

对于IAM、Route53和CloudFront等全局服务,将忽略region

也可以使用AWS_REGIONEC2_REGION环境变量。

有关更多信息,请参见Amazon AWS文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

别名ec2_region已被弃用,将在2024-12-01之后的发行版中删除。

EC2_REGION环境变量的支持已被弃用,将在2024-12-01之后的发行版中删除。

secret_key

别名: aws_secret_access_key, aws_secret_key, ec2_secret_key

字符串

AWS密钥访问密钥。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以按优先级递减的顺序使用AWS_SECRET_ACCESS_KEYAWS_SECRET_KEYEC2_SECRET_KEY环境变量。

secret_keyprofile选项互斥。

为了与AWS botocore SDK保持一致,在5.1.0版本中添加了aws_secret_access_key别名。

别名ec2_secret_key已被弃用,将在2024-12-01之后的发行版中删除。

EC2_SECRET_KEY环境变量的支持已被弃用,将在2024-12-01之后的发行版中删除。

session_token

别名: aws_session_token, security_token, aws_security_token, access_token

字符串

与临时凭据一起使用的AWS STS会话令牌。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以按优先级递减的顺序使用AWS_SESSION_TOKENAWS_SECURITY_TOKENEC2_SECURITY_TOKEN环境变量。

security_tokenprofile选项互斥。

别名aws_session_tokensession_token是在3.2.0版本中添加的,参数在6.0.0版本中从security_token重命名为session_token

别名security_tokenaws_security_tokenaccess_token已被弃用,将在2024-12-01之后的发行版中删除。

EC2_SECRET_KEYAWS_SECURITY_TOKEN环境变量的支持已被弃用,将在2024-12-01之后的发行版中删除。

skip_final_cluster_snapshot

别名: skip_final_snapshot

布尔值

跳过删除集群之前的最终快照。

仅在command=delete时使用。

选项

  • false ← (默认)

  • true

tags

别名: resource_tags

字典

表示要应用于资源的标签的字典。

如果未设置tags参数,则不会修改标签。

用户名

字符串

主数据库用户名。

仅在command=create时使用。

验证证书

布尔值

设置为false时,不会验证与AWS API通信的SSL证书。

强烈建议不要设置validate_certs=false,作为替代方案,请考虑改用aws_ca_bundle

选项

  • false

  • true ← (默认)

vpc_security_group_ids

别名: vpc_security_groups

列表 / 元素=字符串

VPC安全组

等待

布尔值

command=createcommand=modifycommand=restore时,等待数据库进入“可用”状态。

command=delete时,等待数据库终止。

选项

  • false ← (默认)

  • true

等待超时

整数

wait=true时,定义在放弃之前等待的秒数。

默认值:300

备注

注意

  • 在1.3.0版本中添加了对tagspurge_tags的支持。

  • 注意:对于模块,环境变量和配置文件是从Ansible的“主机”上下文而不是“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从Ansible的“控制器”上下文而不是“主机”上下文读取的。

  • Ansible使用的AWS SDK (boto3)也可能从其在Ansible“主机”上下文中的配置文件(通常为~/.aws/credentials)读取凭据和其他设置的默认值,例如区域。有关更多信息,请参见 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

示例

- name: Basic cluster provisioning example
  community.aws.redshift:
    command: create
    node_type: ds1.xlarge
    identifier: new_cluster
    username: cluster_admin
    password: 1nsecure

- name: Cluster delete example
  community.aws.redshift:
    command: delete
    identifier: new_cluster
    skip_final_cluster_snapshot: true
    wait: true

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

描述

集群

复杂

包含所有集群信息的字典

返回:成功

可用区

字符串

集群所在的Amazon可用区。“可用”之前为“无”。

返回:成功

示例:"us-east-1b"

创建时间

浮点数

集群创建的时间戳。

返回:成功

示例:1430158536.308

db_name

字符串

数据库的名称。

返回:成功

示例:"new_db_name"

enhanced_vpc_routing

布尔值

增强型VPC路由功能的状态。

返回:成功

标识符

字符串

集群ID。

返回:成功

示例:"new_redshift_cluster"

维护窗口

字符串

执行维护/升级的时间范围。

返回:成功

示例: "sun:09:30-sun:10:00"

端口

整数

集群端口。“None” 表示集群不可用。

返回:成功

示例: 5439

私有IP地址

字符串

主节点的私有IP地址。

返回:成功

示例: "10.10.10.10"

公有IP地址

字符串

主节点的公有IP地址。启用 enhanced_vpc_routing 时为“None”。

返回:成功

示例: "0.0.0.0"

状态

字符串

集群的状态。

返回:成功

示例: "available"

标签

字典

集群的AWS标签。

返回:成功

URL

字符串

主集群节点的FQDN。“None” 表示集群不可用。

返回:成功

示例: "new-redshift_cluster.jfkdjfdkj.us-east-1.redshift.amazonaws.com"

作者

  • Jens Carl (@j-carl), Hothead Games Inc.

  • Rafael Driutti (@rafaeldriutti)