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 ''
我正在尝试获取一个 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 ''