Ansible:库存中的ansible_user和playbook中的remote_user

时间:2015-10-11 04:31:13

标签: ansible ansible-2.x ansible-inventory

我正在尝试使用除我登录控制计算机之外的帐户对服务器运行Ansible playbook。我根据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没有观察清单中的设置?

2 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:2)

我通常在/etc/ansible/ansible.cfg中添加我的远程用户名,如下所示:

remote_user = MY_REMOTE_USERNAME

这样就不需要在每个主机条目的库存文件中配置ansible_user。