【发布时间】:2016-04-19 15:20:17
【问题描述】:
场景:
根据 hosts 文件的 [clients] 部分执行以下操作:
- 检查用户“foo”的SSH登录是否失败,如果失败
- 使用 authorized_key 模块为用户“foo”添加 SSH 密钥
- 假设远程机器上已经存在用户“foo”并且已经在本地(ansible)主机上创建了 SSH 公钥
我知道 this solution 使用 Ansible 命令行,但我希望能够将其放入剧本中。可以让脚本与用户输入密码(包括 sudo)交互。
现在我想出了如何使用 3-rd 方角色 GROG.authorized-key 来做我想做的事,但它仍然需要我使用 -K 开关运行剧本。 Ansible 中是否有一些东西(除了命令行开关)只会在需要时提示输入密码?
- hosts: clients
vars:
authorized_key_list:
- name: pdo
authorized_keys:
- key: "{{ lookup('file', '/home/pdo/.ssh/id_rsa.pub') }}"
state: present
roles:
- { role: GROG.authorized-key }
【问题讨论】:
-
authorized_key 没有密码参数。密码应该有什么用?也许我可以帮助你。
-
我需要提示用户输入密码,这样“authorized_key”才能完成工作。我也不想使用 ask-pass 作为命令行参数
-
好的,所以您需要用户或 sudo 权限?试试 become 和 become_user 选项。
-
如果我“成为”它会提示我输入 root 密码吗?看起来我被命令行“ask-pass”和“ask-become-pass”开关卡住了,我想避免这种情况
标签: python ssh ansible ansible-playbook authorized-keys