关于 `ansible.cfg` 中 `%(something)` 扩展的文档在哪里?

关于 `ansible.cfg` 中 `%(something)` 扩展的文档在哪里?

标题基本上说明了一切。

我认为任何工作都是control_path设置文档

这是保存 ControlPath 套接字的位置。默认为:

control_path=%(directory)s/ansible-ssh-%%h-%%p-%%r

在某些主机名或路径名非常长的系统上(由长用户名或深层嵌套的主目录引起),这可能会超出文件套接字名称的字符限制(大多数平台为 108 个字符)。在这种情况下,您可能希望将字符串缩短为如下所示的内容:

control_path = %(directory)s/%%h-%%r

Ansible 1.4 及更高版本将指示用户在遇到此问题的情况下使用“-vvvv”运行,如果是这样,很容易判断控制路径文件名太长。这在 EC2 上可能经常遇到。如果在 ssh_args 中设置了 -o ControlPath,则此设置将被忽略。

文档从未指定值directory是什么,或者这里可以放什么其他东西。有地方指定吗?

答案1

ANSIBLE_SSH_CONTROL_PATH 的较新文档(出于某种原因,Google 喜欢旧版本)提到%(directory)并省略了不少关于路径长度限制的词。

这是保存 ssh 的 ControlPath 套接字的位置,它使用 ssh 的变量替换。自 2.3 起,如果为空,ansible 将生成唯一的哈希值。使用%(directory)s 来指示在何处使用控制目录路径设置。在 2.3 之前,它默认为 control_path=%(directory)s/ansible-ssh-%%h-%%p-%%r。请注意,如果-o ControlPath在 ssh args 中设置了 ,则此设置将被忽略。

ANSIBLE_SSH_CONTROL_PATH_DIR 是配置定义中的下一个。

如果控制路径设置为空,则设置用于 ssh 控制路径的目录。此外,还%(directory)为控制路径设置提供 s 变量。

替换是使用 ssh 连接插件中的自定义代码实现的,执行 Python(不是 Jinja)字符串模板。ssh 连接代码是 Ansible 中最古老的代码之一,这是一种从未流行的遗留模式。

一般来说,Ansible 插件或模块会列出您可以提供的值的任何特殊内容。

相关内容