语法 – 如果使用尾随逗号给出值,Ansible中的–inventory选项如何工作?

ansible和ansible-playbook的man页面将-i选项定义为:

-i PATH, --inventory=PATH
       The PATH to the inventory hosts file, which defaults to
       /etc/ansible/hosts.

然而,要在本地系统上运行,示例中使用以下语法:

ansible -i "localhost," -c local -m ping localhost

这个“localhost”究竟是什么,最后用逗号(否则它被视为文件名)以及它与PATH有什么关系?

最佳答案 这(现在,至少)是一个记录的功能.从
man page

-i, –inventory, –inventory-file
specify inventory host path or comma separated host list. –inventory-file is deprecated

(重点补充)

手册中还没有的是“逗号分隔的主机列表”意味着即使“列表”是单个项目也需要添加逗号,以区分“目标单个主机名为hostname”:

$ansible -i 'hostname,' ...

和“从名为hostname的文件加载库存”:

$ansible -i 'hostname,' ...

如果有人有时间,也许你可以提交一个拉取请求来改变the help text解释这个(并在“逗号分隔”中添加一个连字符,但也许这只是我…)

点赞