我正在尝试使用除我在控制机器上登录的帐户以外的帐户对服务器运行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_user
。 ansible_user
在2.0中有效(ansible_ssh_user
也是如此-为其别名)。