我正在尝试使用除我在控制机器上登录的帐户以外的帐户对服务器运行Ansible剧本。我试图根据Inventory上的文档在清单文件中指定ansible_user

[srv1]
192.168.1.146 ansible_connection=ssh ansible_user=user1


但是,使用ansible-playbook -i inventory playbook.yml -vvvv调用的Ansible将打印以下内容:

GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: techraf


对我有用的是在剧本中添加remote_user参数:

- hosts: srv1
  remote_user: user1


现在,相同的Ansible命令作为user1连接:

GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: user1


还向remote_user添加ansible.cfg变量使Ansible使用目标用户而不是已登录的用户。

清单文件中的ansible_user和playbook / remote_user中的ansible.cfg是否用于不同目的?

ansible_user的作用是什么?还是Ansible为什么不遵守库存中的设置?

最佳答案

您可能会遇到一个常见问题:已发布的ansible文档适用于开发版本(目前为2.0),我们不会保留旧文档。这是一个很大的争论点...假设您使用的是2.0之前的版本,则所需的库存变量名称为ansible_ssh_useransible_user在2.0中有效(ansible_ssh_user也是如此-为其别名)。

10-01 11:41