ansible 用户变量被本地机器用户覆盖

ansible 用户变量被本地机器用户覆盖

因此我正在进行 ansible 设置并通过我的 ansible_hosts 文件成功设置了主机配置:

104.236.59.171  ansible_connection=ssh  ansible_user=root

检查主机的配置状态我得到:

104.236.59.171 | success >> { "var": { "hostvars['104.236.xx.xxx']": { "ansible_connection": "ssh", "ansible_user": "root", "group_names": [ "ungrouped" ], "inventory_hostname": "104.236.xx.xxx", "inventory_hostname_short": "104" } } }

但是,我本地机器上的用户/名称优先于ansible_user成功登录所需使用的变量。

我可以使用 ansible 命令中的选项覆盖此-u功能,但是当我在多个服务器实例上有多个不同的用户并且我正在对所有用户进行迭代时,这将不是一个选项。

我该如何覆盖从本地机器获取的默认用户?

谢谢你的帮助!

答案1

查看 Ansible 文档变量优先级

如果您提供ansible_user带有参数的变量,-u它将始终覆盖其他每个变量定义。

由于inventory vars几乎位于链接列表的顶部,因此您需要检查其他级别的变量定义。我会检查grep其他变量定义并将其删除。

相关内容