我正在尝试在Ansible剧本中处理以下情况:
我可以使用authorized_key
和user
模块进行第4步。我有一个模块(自建)用于步骤1和2.我如何处理第3步?是否存在使用用户名/密码以编程方式登录的现有解决方案?我不想通过命令行给他们。
基本上我也可以为此构建一个模块。理想情况下,我想要类似于:
- task: setup SSH place_ssh_with_passwd: state: present key: /path/to/local/key path: /root/.ssh/authorized_keys user: "{{ server.username }}" password: "{{ server.password }}"
答案 0 :(得分:0)
使用add_host
操作将主机添加到新组,并使用Jinja模板将来自云提供商的响应设置为ansible_ssh_host,ansible_ssh_user和ansible_ssh_pass(请参阅docs中的示例)。然后开始一个针对新组的新游戏,以执行您的键位置以及您想要针对新主机的任何其他设置任务。
答案 1 :(得分:0)
我找到了一种在服务器创建后在同一个游戏中完成此任务的方法:
- name: create server ...use module, create server and grap password from output... - name: add SSH key to server shell: "./scp_ssh_key.sh /path/to/key user@host:/path/ {{ passwd }}
shell脚本的位置如下: https://gist.github.com/elnygren/965a6db4f3fd8e242e90
在此之后,可以使用Ansible的内置模块来设置用户,其他密钥等。