如果你需要为每个 IP 地址指定多个用户,请确保只有一个用户是有效的,或者使用其他方法来实现你的需求。具体点
时间: 2024-03-21 12:40:32 浏览: 89
如果你需要为每个 IP 地址指定多个用户,但是只想让其中一个用户生效,可以使用 Ansible 的 `ansible_ssh_user` 参数来指定登录用户。该参数可以在任务级别或主机级别指定,可以覆盖 inventory 文件中指定的登录用户。例如:
```
- name: Example playbook
hosts: web
vars:
ansible_ssh_user: user2 # 指定登录用户为 user2
tasks:
- name: Example task
command: whoami
```
在上述示例中,我们在 playbook 中使用 `ansible_ssh_user` 参数指定登录用户为 `user2`,这将覆盖 inventory 文件中指定的登录用户。当执行 `whoami` 命令时,Ansible 将使用 `user2` 登录到远程主机上。
如果你需要为每个 IP 地址指定多个用户,但是想要根据情况动态选择登录用户,可以使用 Ansible 的 `delegate_to` 参数将任务委托给另一台主机执行。你可以在 `delegate_to` 参数中指定登录用户,并在任务执行前动态确定要委托给哪台主机执行。例如:
```
- name: Example playbook
hosts: web
tasks:
- name: Example task
command: whoami
delegate_to: "{{ delegate_host }}"
vars:
delegate_host: 192.168.1.101
ansible_ssh_user: user2
```
在上述示例中,我们使用 `delegate_to` 参数将任务委托给 IP 地址为 `192.168.1.101` 的主机执行。我们还在任务中使用 `ansible_ssh_user` 参数指定登录用户为 `user2`。你可以在 playbook 执行前动态确定要委托给哪台主机执行,从而动态选择登录用户。
阅读全文