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 弹性负载均衡器 (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_access_key_id 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。 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。 |
|
等待指定的超时时间,允许连接在终止实例之前耗尽。 设置为 |
|
将负载分配到所有已配置的可用区。 默认为 选项
|
|
使用 也可以使用 选项
|
|
连接到非默认 AWS 端点的 URL。虽然这可以用于连接到其他与 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。 ec2_region 别名已弃用,将在 2024-12-01 后的版本中移除。 对 |
|
创建 ELB 时要使用的方案。 对于私有 VPC 可见的 ELB,请使用 如果您选择使用不同的值更新方案,则 ELB 将被销毁并创建一个新的 ELB。 选项
|
|
AWS 密钥。 有关访问令牌的更多信息,请参阅 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的DNS名称。 返回:当 示例: |
|
描述ELB使用的健康检查的字典。 返回:当 |
|
在将实例标记为健康之前,连续成功的健康检查次数。 返回:成功 示例: |
|
每次健康检查之间的时间(秒)。 返回:成功 示例: |
|
协议、端口以及HTTP(S)健康检查测试的路径。 返回:成功 示例: |
|
正在进行的健康检查由于超时而被认为失败的时间(秒)。 返回:成功 示例: |
|
在将实例标记为不健康之前,连续失败的健康检查次数。 返回:成功 示例: |
|
描述连接到ELB的每个实例的运行状况的字典列表。 返回:当 |
|
描述附加到 ELB 的侦听器的列表。 嵌套列表包含侦听器端口、实例端口、侦听器协议、实例端口,以及适用的端口的 SSL 证书 ID。 返回:当 示例: |
|
用于控制 ELB 是否使用 Proxy 协议的策略名称。 返回:当存在 Proxy 协议策略时。 示例: |
|
ELB 运行的 AWS 区域。 返回:始终 示例: |
|
ELB 当前状态的简要描述。有效值为 返回:始终 示例: |
|
描述附加到 ELB 的标签的字典。 返回:当 示例: |
|
Boto3 样式的负载均衡器属性。 返回:始终 |
|
EC2 实例正在监听的端口。 返回:当 |
|
为 EC2 实例启用的策略名称。 返回:当 |
|
ELB的DNS名称。 返回:当 示例: |
|
关于对负载均衡器进行的运行状况检查的信息。 返回:当 |
|
在将实例标记为健康之前,连续成功的健康检查次数。 返回:成功 示例: |
|
每次健康检查之间的时间(秒)。 返回:成功 示例: |
|
协议、端口以及HTTP(S)健康检查测试的路径。 返回:成功 示例: |
|
正在进行的健康检查由于超时而被认为失败的时间(秒)。 返回:成功 示例: |
|
在将实例标记为不健康之前,连续失败的健康检查次数。 返回:成功 示例: |
|
实例 ID。 返回:成功 |
|
负载均衡器的侦听器。 返回:当 示例: |
|
侦听器。 返回:当 |
|
实例正在侦听的端口。 返回:当 |
|
用于将流量路由到实例的协议。 返回:当 |
|
负载均衡器正在监听的端口。 返回:当 |
|
用于路由的负载均衡器传输协议:HTTP、HTTPS、TCP 或 SSL。 返回:当 |
|
策略。如果未启用任何策略,则列表为空。 返回:当 |
|
负载均衡器的侦听器。 返回:当 |
|
如果启用,负载均衡器将捕获所有请求的详细信息,并将信息传递到您指定的 Amazon S3 存储桶。 返回:当 |
|
发布访问日志的间隔。 返回:成功 示例: |
|
指定是否为负载均衡器启用了访问日志。 返回:成功 示例: |
|
存储访问日志的 Amazon S3 存储桶的名称。 返回:成功 示例: |
|
为 Amazon S3 存储桶创建的逻辑层次结构。 返回:成功 示例: |
|
如果启用,负载均衡器允许现有请求在负载均衡器将流量从已注销或不正常的实例转移开之前完成。 返回:当 示例: |
|
指定是否为负载均衡器启用了连接耗尽。 返回:成功 |
|
在注销实例之前保持现有连接打开的最大时间(秒)。 返回:成功 |
|
连接允许空闲(连接上没有发送数据)的时间(以秒为单位),然后由负载均衡器关闭。 返回:成功 |
|
指定是否为负载均衡器启用了跨区域负载均衡。 返回:当 |
|
关于策略属性的信息。 返回:当 |
|
属性的名称。 返回:当 |
|
属性的值。 返回:当 |
|
策略的名称。 返回:当 |
|
策略类型的名称。 返回:当 |
|
为负载均衡器定义的策略。 返回:当 |
|
使用 CreateAppCookieStickinessPolicy 创建的粘性策略。 返回:当 |
|
使用 CreateLBCookieStickinessPolicy 创建的粘性策略。 返回:当 |
|
负载均衡器的安全组,您可以将其用作已注册实例的入站规则的一部分。 返回:当 示例: |
|
安全组的名称。 返回:成功 |
|
安全组的所有者。 返回:成功 |
|
描述附加到 ELB 的标签的字典。 返回:当 示例: |
|