【发布时间】:2021-02-04 21:33:11
【问题描述】:
我发现很容易描述我想要做什么来展示我如何尝试实现它,如下所示。
在一个 playbook1.yml 中,我有:
- name: set facts with ssh connecton details
set_fact:
ssh_user: "user01"
ssh_pass: "passw0rd"
在我的 playbook2.yml 中,我想做类似的事情:
import_playbook: playbook1.yml
Vars:
ansible_user: "{{ ssh_user }}"
ansible_ssh_pass: "{{ ssh_pass }}"
在此之后,我在 playbook2.yml 中的任务应该在连接到我的远程主机时尝试使用 sshpass,获取用户并为上面的“ansible_*”变量传递。
可以吗?显然这不起作用,我无法找到解决方案。
为 ssh Vars 设置 Ansible 事实确实有效 - 显然它需要 Vars 来触发 sshpass 并使用密码进行远程访问。
我知道 ssh 密钥是可行的方法,并且正在涵盖,但是我还需要针对此特定用例的解决方案。
提前感谢您的帮助。
【问题讨论】:
-
Delcare
ansible_user和ansible_ssh_pass在例如group_vars/all.yml。它们将应用于每个主持人的每场比赛。有关更多信息和想法,请参阅docs.ansible.com/ansible/latest/user_guide/intro_inventory.html。注意:你应该考虑用ansible-vault加密你的密码