Ansible 不要求用户提示

Ansible does not ask user for prompts

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

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

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

您有几个选择:

写一个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 ''