我试图获取一个ansible脚本来提示用户。我有以下脚本:
- name: Generate a new SSH Key
shell: ssh-keygen -t rsa -b 4096 -C {{email_address}}
当我从命令行运行时,它要求输入密码和文件位置。当我从ansible运行时,它使用默认值。如何让它暂停,以便它询问用户。
答案 0 :(得分:3)
您有几个选择:
编写Expect脚本,将其复制到目标计算机并执行
或
使用Ansible的Expect模块
- expect:
command: ssh-keygen -t rsa -b 4096 -C {{email_address}}
responses:
'Enter file in which .*': '/home/gibson/.ssh/id_rsa'
或
指定非交互式ssl-keygen
- shell: ssh-keygen -f myfile.rsa -t rsa -b 4096 -C {{email_address}} -N ''
或
使用Ansible的vars_prompt提示输入值并将其传递给命令
vars_prompt:
- name: "key_file_name"
prompt: "Enter file in which to save the key: "
...
...
tasks:
- shell: ssh-keygen -f {{key_file_name}} -t rsa -b 4096 -C {{email_address}} -N ''