Ansible:库存中 ansible_user vs 剧本中 remote_user
Ansible: ansible_user in inventory vs remote_user in playbook
我正在尝试 运行 使用我在控制机器上登录的帐户以外的帐户对服务器执行 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
和剧本中的 remote_user
/ansible.cfg
是否有不同的用途?
ansible_user
有什么用?或者为什么 Ansible 不观察清单中的设置?
您可能 运行 遇到了一个常见问题:已发布的 ansible 文档适用于开发版本(目前为 2.0),我们不会保留旧版本。这是一个很大的争论点...假设您使用的是 2.0 之前的东西,您需要的库存变量名称是 ansible_ssh_user
。 ansible_user
在 2.0 中工作(和 ansible_ssh_user
一样 - 它在其中有别名)。
我通常在/etc/ansible/ansible.cfg
中添加我的远程用户名如下:
remote_user = MY_REMOTE_USERNAME
这样就不需要在清单文件中为每个主机条目配置 ansible_user。
我正在尝试 运行 使用我在控制机器上登录的帐户以外的帐户对服务器执行 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
和剧本中的 remote_user
/ansible.cfg
是否有不同的用途?
ansible_user
有什么用?或者为什么 Ansible 不观察清单中的设置?
您可能 运行 遇到了一个常见问题:已发布的 ansible 文档适用于开发版本(目前为 2.0),我们不会保留旧版本。这是一个很大的争论点...假设您使用的是 2.0 之前的东西,您需要的库存变量名称是 ansible_ssh_user
。 ansible_user
在 2.0 中工作(和 ansible_ssh_user
一样 - 它在其中有别名)。
我通常在/etc/ansible/ansible.cfg
中添加我的远程用户名如下:
remote_user = MY_REMOTE_USERNAME
这样就不需要在清单文件中为每个主机条目配置 ansible_user。