Ansible不会询问用户提示

时间:2016-12-01 22:58:08

标签: ansible ansible-playbook

我试图获取一个ansible脚本来提示用户。我有以下脚本:

   - name: Generate a new SSH Key
     shell: ssh-keygen -t rsa -b 4096 -C {{email_address}}

当我从命令行运行时,它要求输入密码和文件位置。当我从ansible运行时,它使用默认值。如何让它暂停,以便它询问用户。

1 个答案:

答案 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 ''