amazon.aws.elb_classic_lb 模块 – 创建、更新或销毁 Amazon ELB
注意
此模块是 amazon.aws 集合(版本 9.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:amazon.aws.elb_classic_lb
。
amazon.aws 1.0.0 中的新增功能
概要
创建、更新或销毁 Amazon Elastic Load Balancer (ELB)。
此模块已从 amazon.aws.ec2_elb_lb 重命名为 amazon.aws.elb_classic_lb 在 amazon.aws 集合的 2.1.0 版本中。
别名:ec2_elb_lb
要求
执行此模块的主机需要满足以下要求。
python >= 3.6
boto3 >= 1.28.0
botocore >= 1.31.0
参数
参数 |
说明 |
---|---|
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 和 profile 选项是互斥的。 为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。 ec2_access_key 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
访问日志配置设置的字典(请参阅示例)。 |
|
设置为 设置为 选项
|
|
将访问日志发布到 S3 的间隔。 选项
|
|
用于传递访问日志的 S3 存储桶。 有关必要的 S3 存储桶策略的更多信息,请参阅 https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html。 当 |
|
在 S3 存储桶中传递日志的位置。 如果未提供前缀或将其设置为 默认值: |
|
用于验证 SSL 证书的 CA 捆绑包的位置。 也可以使用 |
|
用于修改 botocore 配置的字典。 参数可以在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config。 |
|
等待指定的超时时间,以便在终止实例之前允许连接耗尽。 设置为 |
|
在所有配置的可用区之间分配负载。 默认为 选项
|
|
使用 也可以使用 选项
|
|
连接的 URL,用于替代默认的 AWS 端点。虽然它可以用于连接其他兼容 AWS 的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。 也可以使用 ec2_url 和 s3_url 别名已被弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
健康检查配置设置的字典(请参阅示例)。 |
|
将实例移动到“健康”状态所需的连续健康检查成功的次数。 |
|
单个实例健康检查之间的大概间隔(以秒为单位)。 |
|
执行健康检查时,ELB 健康检查将查询的 URI 路径。 当 |
|
执行健康检查时,ELB 将连接到的 TCP 端口。 |
|
执行健康检查时,ELB 健康检查将使用的协议。 有效值为 |
|
在此时间(以秒为单位)之后,没有响应表示健康检查失败。 |
|
将实例移动到“不健康”状态所需的连续健康检查失败的次数。 |
|
在此时间之后,来自客户端和到服务器的 ELB 连接将超时。 |
|
要附加到此 ELB 的实例 ID 列表。 |
|
此 ELB 要侦听的端口/协议列表(请参阅示例)。 当 |
|
实例正在侦听的端口。 |
|
用于将流量路由到实例的协议。 有效值为 |
|
负载均衡器将侦听的端口。 |
|
用于路由的传输协议。 有效值为 |
|
为侦听器启用代理协议。 注意,代理协议的 ELB 控制基于 选项
|
|
SSL 证书的 Amazon 资源名称 (ARN)。 |
|
ELB 的名称。 ELB 的名称必须少于 32 个字符,并且在每个账户的每个区域中都是唯一的。 |
|
用于身份验证的命名 AWS 配置文件。 有关命名配置文件的详细信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
清除 ELB 上存在但在 listeners 中未找到的现有侦听器。 选项
|
|
清除 ELB 上存在但在 由于不允许从同一可用区添加多个子网,因此在添加新子网之前,将删除要清除的子网。如果你尝试一次替换所有子网,这可能会导致短暂的中断。 选项
|
|
如果 如果未设置 以 选项
|
|
要使用的 AWS 区域。 对于 IAM、Route53 和 CloudFront 等全局服务,将忽略 region。 也可以使用 有关详细信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region。
对 |
|
创建 ELB 时要使用的方案。 对于私有 VPC 可见的 ELB,请使用 如果你选择使用不同的值更新方案,则将销毁 ELB 并创建一个新的 ELB。 选项
|
|
AWS secret access key。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以按优先级递减的顺序使用 secret_key 和 profile 选项互斥。 aws_secret_access_key 别名在 5.1.0 版本中添加,以便与 AWS botocore SDK 保持一致。 ec2_secret_key 别名已被弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
要应用于 ELB 的安全组列表。 |
|
要应用于 ELB 的安全组名称列表。 |
|
用于临时凭证的 AWS STS 会话令牌。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以按优先级降序使用 security_token 和 profile 选项是互斥的。 别名 aws_session_token 和 session_token 在 3.2.0 版本中添加,参数在 6.0.0 版本中从 security_token 重命名为 session_token。 别名 security_token、aws_security_token 和 access_token 已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
创建或销毁 ELB。 选项
|
|
粘性策略设置的字典。 策略将应用于所有监听器(请参见示例)。 |
|
用于粘性的应用程序 cookie 的名称。 如果 如果 |
|
要应用的粘性策略的类型。 如果 如果 选项
|
|
创建 ELB 时要使用的 VPC 子网列表。 与 |
|
表示要应用于资源的标签的字典。 如果未设置 |
|
如果设置为 强烈建议不要设置 *validate_certs=false*,作为替代方案,请考虑设置 *aws_ca_bundle*。 选项
|
|
在创建、删除或向 ELB 添加实例时,如果 *wait=true*,Ansible 将等待负载均衡器和相关网络接口完成创建/删除。 在 2.1.0 版本中添加了添加实例时等待的支持。 选项
|
|
与 wait 结合使用。等待 ELB 终止的秒数。 最多允许 600 秒(10 分钟)。 默认值: |
|
要在此 ELB 上启用的可用区列表。 与 |
说明
注意
此模块之前设置的 *ec2_elb* 事实在 2.1.0 版本中已弃用,并且自 4.0.0 版本起不再设置。
在 2.1.0 版本中添加了对
purge_tags
的支持。注意:对于模块,环境变量和配置文件是从 Ansible “主机” 上下文而不是“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible “控制器” 上下文而不是“主机”上下文读取的。
Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机” 上下文(通常是
~/.aws/credentials
)中的配置文件中读取凭据和其他设置(例如区域)的默认值。有关更多信息,请参见 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html。
示例
# Note: None of these examples set aws_access_key, aws_secret_key, or region.
# It is assumed that their matching environment variables are set.
# Basic provisioning example (non-VPC)
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http # options are http, https, ssl, tcp
load_balancer_port: 80
instance_port: 80
proxy_protocol: true
- protocol: https
load_balancer_port: 443
instance_protocol: http # optional, defaults to value of protocol setting
instance_port: 80
# ssl certificate required for https or ssl
ssl_certificate_id: "arn:aws:iam::123456789012:server-certificate/company/servercerts/ProdServerCert"
# Internal ELB example
- amazon.aws.elb_classic_lb:
name: "test-vpc"
scheme: internal
state: present
instance_ids:
- i-abcd1234
purge_instance_ids: true
subnets:
- subnet-abcd1234
- subnet-1a2b3c4d
listeners:
- protocol: http # options are http, https, ssl, tcp
load_balancer_port: 80
instance_port: 80
# Configure a health check and the access logs
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: present
zones:
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
health_check:
ping_protocol: http # options are http, https, ssl, tcp
ping_port: 80
ping_path: "/index.html" # not required for tcp or ssl
response_timeout: 5 # seconds
interval: 30 # seconds
unhealthy_threshold: 2
healthy_threshold: 10
access_logs:
interval: 5 # minutes (defaults to 60)
s3_location: "my-bucket" # This value is required if access_logs is set
s3_prefix: "logs"
# Ensure ELB is gone
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: absent
# Ensure ELB is gone and wait for check (for default timeout)
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: absent
wait: true
# Ensure ELB is gone and wait for check with timeout value
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: absent
wait: true
wait_timeout: 600
# Normally, this module will purge any listeners that exist on the ELB
# but aren't specified in the listeners parameter. If purge_listeners is
# false it leaves them alone
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
purge_listeners: false
# Normally, this module will leave availability zones that are enabled
# on the ELB alone. If purge_zones is true, then any extraneous zones
# will be removed
- amazon.aws.elb_classic_lb:
name: "test-please-delete"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
purge_zones: true
# Creates a ELB and assigns a list of subnets to it.
- amazon.aws.elb_classic_lb:
state: present
name: 'New ELB'
security_group_ids: 'sg-123456, sg-67890'
subnets: 'subnet-123456,subnet-67890'
purge_subnets: true
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
# Create an ELB with connection draining, increased idle timeout and cross availability
# zone load balancing
- amazon.aws.elb_classic_lb:
name: "New ELB"
state: present
connection_draining_timeout: 60
idle_timeout: 300
cross_az_load_balancing: "yes"
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
# Create an ELB with load balancer stickiness enabled
- amazon.aws.elb_classic_lb:
name: "New ELB"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
stickiness:
type: loadbalancer
enabled: true
expiration: 300
# Create an ELB with application stickiness enabled
- amazon.aws.elb_classic_lb:
name: "New ELB"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
stickiness:
type: application
enabled: true
cookie: SESSIONID
# Create an ELB and add tags
- amazon.aws.elb_classic_lb:
name: "New ELB"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
tags:
Name: "New ELB"
stack: "production"
client: "Bob"
# Delete all tags from an ELB
- amazon.aws.elb_classic_lb:
name: "New ELB"
state: present
zones:
- us-east-1a
- us-east-1d
listeners:
- protocol: http
load_balancer_port: 80
instance_port: 80
tags: {}
返回值
常见返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
原始的 boto 样式负载均衡器属性。 返回:始终 |
|
用于控制 ELB 是否使用应用程序 cookie 粘性策略的策略名称。 返回: 当 示例: |
|
ELB 的 DNS 名称。 返回: 当 示例: |
|
描述用于 ELB 的运行状况检查的字典。 返回: 当 |
|
在将实例标记为正常之前,连续成功的运行状况检查次数。 返回:成功 示例: |
|
每次运行状况检查之间的间隔时间(以秒为单位)。 返回:成功 示例: |
|
协议、端口,对于 HTTP(S) 运行状况检查,则是运行状况检查测试的路径。 返回:成功 示例: |
|
由于超时,将正在进行的运行状况检查视为失败的时间(以秒为单位)。 返回:成功 示例: |
|
在将实例标记为不正常之前,连续失败的运行状况检查次数。 返回:成功 示例: |
|
描述附加到 ELB 的每个实例的运行状况的字典列表。 返回: 当 |
|
描述附加到 ELB 的监听器的列表的列表。 嵌套列表包含监听器端口、实例端口、监听器协议、实例端口,以及在适当情况下包含端口的 SSL 证书 ID。 返回: 当 示例: |
|
用于控制 ELB 是否使用代理协议运行的策略名称。 返回:当代理协议策略存在时。 示例: |
|
ELB 运行所在的 AWS 区域。 返回:始终 示例: |
|
ELB 当前状态的简要描述。有效值为 返回:始终 示例: |
|
附加到 ELB 的子网 ID 列表。 返回: 当 示例: |
|
描述附加到 ELB 的标签的字典。 返回: 当 示例: |
|
Boto3 风格的负载均衡器属性。 返回:始终 |
|
EC2 实例正在监听的端口。 返回: 当 |
|
为 EC2 实例启用的策略名称。 返回: 当 |
|
ELB 的 DNS 名称。 返回: 当 示例: |
|
有关在负载均衡器上执行的运行状况检查的信息。 返回: 当 |
|
在将实例标记为正常之前,连续成功的运行状况检查次数。 返回:成功 示例: |
|
每次运行状况检查之间的间隔时间(以秒为单位)。 返回:成功 示例: |
|
协议、端口,对于 HTTP(S) 运行状况检查,则是运行状况检查测试的路径。 返回:成功 示例: |
|
由于超时,将正在进行的运行状况检查视为失败的时间(以秒为单位)。 返回:成功 示例: |
|
在将实例标记为不正常之前,连续失败的运行状况检查次数。 返回:成功 示例: |
|
实例 ID。 返回:成功 |
|
负载均衡器的侦听器。 返回: 当 示例: |
|
侦听器。 返回: 当 |
|
实例正在侦听的端口。 返回: 当 |
|
用于将流量路由到实例的协议。 返回: 当 |
|
负载均衡器正在监听的端口。 返回: 当 |
|
用于路由的负载均衡器传输协议:HTTP、HTTPS、TCP 或 SSL。 返回: 当 |
|
策略。如果未启用任何策略,则列表为空。 返回: 当 |
|
负载均衡器的侦听器。 返回: 当 |
|
如果启用,负载均衡器会捕获所有请求的详细信息,并将信息传送到您指定的 Amazon S3 存储桶。 返回: 当 |
|
发布访问日志的间隔。 返回:成功 示例: |
|
指定是否为负载均衡器启用访问日志。 返回:成功 示例: |
|
存储访问日志的 Amazon S3 存储桶的名称。 返回:成功 示例: |
|
为您的 Amazon S3 存储桶创建的逻辑层次结构。 返回:成功 示例: |
|
如果启用,负载均衡器允许现有请求完成,然后再将流量从已注销或不健康的实例转移开。 返回: 当 示例: |
|
指定是否为负载均衡器启用连接耗尽。 返回:成功 |
|
在取消注册实例之前保持现有连接打开的最大时间(以秒为单位)。 返回:成功 |
|
连接在被负载均衡器关闭之前允许空闲(没有数据通过连接发送)的时间,以秒为单位。 返回:成功 |
|
指定是否为负载均衡器启用跨区域负载均衡。 返回: 当 |
|
有关策略属性的信息。 返回: 当 |
|
属性的名称。 返回: 当 |
|
属性的值。 返回: 当 |
|
策略的名称。 返回: 当 |
|
策略类型的名称。 返回: 当 |
|
为负载均衡器定义的策略。 返回: 当 |
|
使用 CreateAppCookieStickinessPolicy 创建的粘性策略。 返回: 当 |
|
使用 CreateLBCookieStickinessPolicy 创建的粘性策略。 返回: 当 |
|
负载均衡器的安全组,您可以使用该安全组作为已注册实例的入站规则的一部分。 返回: 当 示例: |
|
安全组的名称。 返回:成功 |
|
安全组的所有者。 返回:成功 |
|
附加到 ELB 的子网 ID 列表。 返回: 当 示例: |
|
描述附加到 ELB 的标签的字典。 返回: 当 示例: |
|