23

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

[srv1]
192.168.1.146 ansible_connection=ssh ansible_user=user1

但是 Ansible 调用 with 会ansible-playbook -i inventory playbook.yml -vvvv打印以下内容:

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库存文件和remote_user剧本/ansible.cfg用于不同目的吗?

是干什么ansible_user用的?或者为什么 Ansible 不观察清单中的设置?

4

2 回答 2

25

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

于 2015-10-14T07:30:50.880 回答
6

我通常/etc/ansible/ansible.cfg按​​如下方式添加我的远程用户名:

remote_user = MY_REMOTE_USERNAME

这样就不需要在清单文件中为每个主机条目配置 ansible_user。

于 2017-05-16T16:15:42.913 回答