community.docker.docker_machine inventory – Docker Machine 清单源

注意

此清单插件是 community.docker 集合(版本 4.1.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install community.docker。您需要进一步的要求才能使用此清单插件,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:community.docker.docker_machine

概要

  • 从 Docker Machine 获取清单主机。

  • 使用以 docker_machine.(yml|yaml) 结尾的 YAML 配置文件。

  • 该插件设置标准主机变量 ansible_hostansible_portansible_useransible_ssh_private_key

  • 该插件将 Docker Machine 的“env”输出变量存储在以 dm_ 为前缀的主机变量中。

要求

在执行此清单的本地控制器节点上需要以下要求。

参数

参数

注释

compose

字典

从 jinja2 表达式创建变量。

默认值: {}

daemon_env

字符串

是否应获取 docker 守护程序连接环境变量,以及如果无法获取它们时应如何操作。

对于 requirerequire-silently,获取它们并跳过任何无法获取它们的主机。如果选择 require,则会为任何跳过的主机发出警告。

对于 optionaloptional-silently,获取它们,而不是跳过无法获取它们的主机。如果选择 optional,则会为无法获取它们的主机发出警告。

使用 skip,不尝试获取 docker 守护程序连接环境变量。

如果成功获取,变量将以 dm_ 为前缀并存储为主机变量。

选择

  • "require" ← (默认)

  • "require-silently"

  • "optional"

  • "optional-silently"

  • "skip"

filters

列表 / 元素=字典

在 community.docker 3.5.0 中添加

允许为此清单选择/取消选择主机的包含/排除过滤器列表。

过滤器按顺序处理,直到找到第一个 filters[].excludefilters[].include 匹配的过滤器。如果 filters[].exclude 匹配,则排除该主机;如果 filters[].include 匹配,则包含该主机。如果没有任何过滤器匹配,则包含该主机。

exclude

字符串

Jinja2 条件。如果它与主机匹配,则该主机将被排除

只能指定 filters[].excludefilters[].include 中的一个。

include

字符串

Jinja2 条件。如果它与主机匹配,则该主机将被包含

只能指定 filters[].excludefilters[].include 中的一个。

groups

字典

根据 Jinja2 条件将主机添加到组。

默认值: {}

keyed_groups

列表 / 元素=字典

根据变量的值将主机添加到组。

默认值: []

默认值

字符串

在 ansible-core 2.12 中添加

当主机变量的值为空字符串时的默认值。

此选项与 keyed_groups[].trailing_separator 互斥。

字符串

用于生成组的输入字典中的键。

父组

字符串

键组的父组。

前缀

字符串

键组的名称将以此前缀开头。

默认值: ""

分隔符

字符串

用于构建键组名称的分隔符。

默认值: "_"

尾部分隔符

布尔值

在 ansible-core 2.12 中添加

将此选项设置为 false 以在值为空字符串时省略主机变量后的 keyed_groups[].separator

此选项与 keyed_groups[].default_value 互斥。

选择

  • true ← (默认)

前导分隔符

布尔值

在 ansible-core 2.11 中添加

keyed_groups 结合使用。

默认情况下,没有提供前缀或分隔符的键组的名称将以下划线开头。

这是因为默认前缀为 "",默认分隔符为 "_"

如果未提供前缀,请将此选项设置为 false 以省略前导下划线(或其他分隔符)。

如果组名是从映射派生的,则仍然使用分隔符连接项目。

要完全不在组名中使用分隔符,请将键组的分隔符设置为空字符串。

选择

  • true ← (默认)

插件

字符串 / 必需

确保这是 docker_machine 插件的源文件的令牌。

选择

  • "docker_machine"

  • "community.docker.docker_machine"

running_required

布尔值

当为 true 时,Docker Machine 指示状态不是 running 的主机将被跳过。

选择

  • true ← (默认)

严格

布尔值

如果为 yes,则将无效条目视为致命错误,否则跳过并继续。

由于可以在表达式中使用事实,因此它们可能并非始终可用,默认情况下我们会忽略这些错误。

选择

  • false ← (默认)

use_extra_vars

布尔值

在 ansible-core 2.11 中添加

将额外的变量合并到可用于组合的变量中(优先级最高)。

选择

  • false ← (默认)

配置

verbose_output

布尔值

当为 true 时,将所有可用的节点元数据(例如 ImageRegionSize)作为名为 docker_machine_node_attributes 的 JSON 对象包含在内。

选择

  • true ← (默认)

注意

注意

  • 配置文件必须是 YAML 文件,其文件名以 docker_machine.ymldocker_machine.yaml 结尾。其他文件名将不被接受。

示例

# Minimal example
plugin: community.docker.docker_machine

# Example using constructed features to create a group per Docker Machine driver
# (https://docs.docker.net.cn/machine/drivers/), for example:
#   $ docker-machine create --driver digitalocean ... mymachine
#   $ ansible-inventory -i ./path/to/docker-machine.yml --host=mymachine
#   {
#     ...
#     "digitalocean": {
#       "hosts": [
#           "mymachine"
#       ]
#     ...
#   }
strict: false
keyed_groups:
  - separator: ''
    key: docker_machine_node_attributes.DriverName

# Example grouping hosts by Digital Machine tag
strict: false
keyed_groups:
  - prefix: tag
    key: 'dm_tags'

# Example using compose to override the default SSH behaviour of asking the user to accept the remote host key
compose:
  ansible_ssh_common_args: '"-o StrictHostKeyChecking=accept-new"'

作者

  • Ximon Eighteen (@ximon18)

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。