community.hrobot.robot 清单 – Hetzner Robot 清单源
注意
此清单插件是 community.hrobot 集合(版本 2.0.2)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.hrobot
。
要在 playbook 中使用它,请指定:community.hrobot.robot
。
community.hrobot 1.1.0 中的新增功能
概要
从 Hetzner Robot API 读取服务器。
使用以
robot.yml
或robot.yaml
结尾的 YAML 配置文件。清单插件将 https://robot.your-server.de/doc/webservice/en.html#get-server 中的所有值前缀为
hrobot_
添加到服务器的清单中。例如,变量hrobot_dc
包含服务器所在的数据中心。
参数
参数 |
注释 |
---|---|
切换以启用/禁用清单源数据的缓存,需要设置缓存插件才能工作。 选项
配置
|
|
缓存连接数据或路径,请阅读缓存插件文档了解具体信息。 配置
|
|
用于清单源数据的缓存插件。 默认值: 配置
|
|
用于缓存插件文件/表的前缀 默认值: 配置
|
|
缓存持续时间(秒) 默认值: 配置
|
|
从 jinja2 表达式创建变量。 默认值: |
|
一个包含/排除筛选器的列表,允许为此清单选择/取消选择主机。 筛选器按顺序处理,直到找到第一个匹配 |
|
Jinja2 条件。如果它与主机匹配,则该主机将被排除。 只能指定 |
|
一个 Jinja2 条件。如果主机满足该条件,则该主机将被包含。 只能指定 |
|
根据 Jinja2 条件将主机添加到组。 默认值: |
|
根据变量的值将主机添加到组。 默认值: |
|
当主机变量的值为空字符串时的默认值。 此选项与 |
|
用于生成组的输入字典中的键。 |
|
键分组的父组。 |
|
键分组名称将以此前缀开头。 默认值: |
|
用于构建键分组名称的分隔符。 默认值: |
|
将此选项设置为 此选项与 选项
|
|
与 keyed_groups 结合使用。 默认情况下,没有提供前缀或分隔符的键分组的名称将以下划线开头。 这是因为默认前缀为 "",默认分隔符为 "_"。 如果没有给定前缀,将此选项设置为 False 可以省略前导下划线(或其他分隔符)。 如果组名称是从映射派生的,则仍使用分隔符连接各项。 要完全不在组名称中使用分隔符,请将键分组的分隔符设置为空字符串。 选项
|
|
确保这是插件的源文件的令牌。 选项
|
|
过滤器值对的字典。 此处列出的可用过滤器是服务器的键,例如 有关可以使用的所有值,请参阅 https://robot.your-server.de/doc/webservice/en.html#get-server。 此选项在 community.hrobot 2.0.0 之前被称为 默认值: |
|
如果 由于可以在表达式中使用事实,因此它们可能并不总是可用,并且我们默认忽略这些错误。 选项
|
|
将额外变量合并到可用于组合的变量中(优先级最高)。 选项
配置
|
说明
注意
hetzner_user
和hetzner_password
选项可以模板化。
示例
# Fetch all hosts in Hetzner Robot
plugin: community.hrobot.robot
# Filters all servers in ready state
filters:
status: ready
# Example showing encrypted credentials and using filters
# (This assumes that Mozilla sops was used to encrypt keys/hetzner.sops.yaml, which contains two values
# hetzner_username and hetzner_password. Needs the community.sops collection to decode that file.)
plugin: community.hrobot.robot
hetzner_user: '{{ (lookup("community.sops.sops", "keys/hetzner.sops.yaml") | from_yaml).hetzner_username }}'
hetzner_password: '{{ (lookup("community.sops.sops", "keys/hetzner.sops.yaml") | from_yaml).hetzner_password }}'
filters:
# Accept all servers in FSN1-DC1 and FSN1-DC2
- include: >-
hrobot_dc in ["FSN1-DC1", "FSN1-DC2"]
# Exclude all servers that didn't match any of the above filters
- exclude: true
# Example using constructed features to create groups
plugin: community.hrobot.robot
simple_filters:
status: ready
traffic: unlimited
# keyed_groups may be used to create custom groups
strict: false
keyed_groups:
# Add e.g. groups for every data center
- key: hrobot_dc
separator: ""
# Use the IP address to connect to the host
compose:
server_name_ip: hrobot_server_name ~ '-' ~ hrobot_server_ip