cloudscale_ch.cloud.load_balancer 模块 – 管理 cloudscale.ch IaaS 服务上的负载均衡器

注意

此模块是 cloudscale_ch.cloud 集合(版本 2.4.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install cloudscale_ch.cloud

要在 playbook 中使用它,请指定:cloudscale_ch.cloud.load_balancer

cloudscale_ch.cloud 2.3.0 中的新功能

概要

  • 在 cloudscale.ch IaaS 服务上获取、创建、更新、删除负载均衡器。

参数

参数

注释

api_timeout

整数

调用 cloudscale.ch API 的超时时间(以秒为单位)。

也可以在 CLOUDSCALE_API_TIMEOUT 环境变量中传递此值。

默认值: 45

api_token

字符串 / 必需

cloudscale.ch API 令牌。

也可以在 CLOUDSCALE_API_TOKEN 环境变量中传递此值。

api_url

字符串

在 cloudscale_ch.cloud 1.3.0 中添加

cloudscale.ch API URL。

也可以在 CLOUDSCALE_API_URL 环境变量中传递此值。

默认值: "https://api.cloudscale.ch/v1"

flavor

字符串

负载均衡器的类型。

默认值: "lb-standard"

name

字符串

负载均衡器的名称。

必须提供 nameuuid

state

字符串

负载均衡器的状态。

选项

  • "present" ←(默认)

  • "absent"

tags

字典

与负载均衡器关联的标签。将此项设置为 {} 可清除所有标签。

uuid

字符串

负载均衡器的 UUID。

必须提供 nameuuid

vip_addresses

列表 / 元素=字典

有关此参数的详细信息,请参阅 [API 文档](https://www.cloudscale.ch/en/api/v1#vip_addresses-attribute-specification)。

address

字符串

使用此地址。

必须与子网在同一范围内。

如果为空,将使用一个随机地址。

subnet

字符串

在由此 UUID 标识的子网上创建 VIP 地址。

zone

字符串

负载均衡器所在的区域(例如,lpg1rma1)。

备注

注意

  • 如果提供了 uuid 选项,它将优先于 name 来选择负载均衡器。这允许更新负载均衡器的名称。

  • 如果没有提供 uuid 选项,则使用 name 来选择负载均衡器。如果存在多个同名的负载均衡器,执行将中止。

  • 所有操作都使用 cloudscale.ch 公共 API v1 执行。

  • 有关详细信息,请参阅完整的 API 文档:https://www.cloudscale.ch/en/api/v1

  • 所有操作都需要有效的 API 令牌。您可以使用 cloudscale.ch 控制面板在 https://control.cloudscale.ch 上创建任意数量的令牌。

示例

# Create and start a load balancer
- name: Start cloudscale.ch load balancer
  cloudscale_ch.cloud.load_balancer:
    name: my-shiny-cloudscale-load-balancer
    flavor: lb-standard
    zone: rma1
    tags:
      project: my project
    api_token: xxxxxx

# Create and start a load balancer with specific subnet
- name: Start cloudscale.ch load balancer
  cloudscale_ch.cloud.load_balancer:
    name: my-shiny-cloudscale-load-balancer
    flavor: lb-standard
    vip_addresses:
      - subnet: d7b82c9b-5900-436c-9296-e94dca01c7a0
        address: 172.25.12.1
    zone: lpg1
    tags:
      project: my project
    api_token: xxxxxx

# Get load balancer facts by name
- name: Get facts of a load balancer
  cloudscale_ch.cloud.load_balancer:
    name: my-shiny-cloudscale-load-balancer
    api_token: xxxxxx

返回值

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

描述

created_at

字符串

负载均衡器的创建日期和时间

返回:当 state != absent 时成功

示例: "2023-02-07T15:32:02.308041Z"

flavor

列表 / 元素=字符串

已用于此负载均衡器的类型

返回:当 state != absent 时成功

示例: {"name": "LB-Standard", "slug": "lb-standard"}

href

字符串

获取有关此负载均衡器详细信息的 API URL

返回:当 state != absent 时成功

示例: "https://api.cloudscale.ch/v1/load-balancers/0f62e0a7-f459-4fc4-9c25-9e57b6cb4b2f"

name

字符串

负载均衡器的显示名称

返回:成功

示例: "web-lb"

state

字符串

负载均衡器的当前状态

返回:成功

示例: "present"

status

字符串

负载均衡器的当前运行状态

返回:成功

示例: "running"

tags

字典

与负载均衡器关联的标签

返回:成功

示例: {"project": "my project"}

uuid

字符串

此负载均衡器的唯一标识符

返回:成功

示例: "cfde831a-4e87-4a75-960f-89b0148aa2cc"

vip_addresses

字典

此负载均衡器的 vip_addresses 列表

返回:当 state != absent 时成功

示例: [{"address": "192.0.2.110", "subnet": [{"href": "https://api.cloudscale.ch/v1/subnets/92c70b2f-99cb-4811-8823-3d46572006e4"}, {"uuid": "92c70b2f-99cb-4811-8823-3d46572006e4"}, {"cidr": "192.0.2.0/24"}], "version": "4"}]

zone

字典

此负载均衡器使用的区域

返回:当 state != absent 时成功

示例: {"slug": "lpg1"}

作者

  • Gaudenz Steinlin (@gaudenz)

  • Kenneth Joss (@k-304)