2016-12-01 10 views
0

私は、ユーザにプロンプ​​トを出すためのスクリプトを手に入れようとしています。私は次のスクリプトを持っています:私はユーザーにプロンプ​​トを要求しません

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

私はコマンドラインから実行すると、パスフレーズとファイルの場所を尋ねます。私が無能な人から走ったとき、それはデフォルト値を使用します。それをユーザーに聞くように、どうやって一時停止するのですか?

答えて

3

あなたは、いくつかのオプションがあります。

、期待スクリプトを書く先のマシンにコピーし、それ

または

使用AnsibleのExpectモジュール

- expect: 
    command: ssh-keygen -t rsa -b 4096 -C {{email_address}} 
    responses: 
    'Enter file in which .*': '/home/gibson/.ssh/id_rsa' 

または

実行を

非インタラクティブなSSを指定するL-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 '' 
にそれを渡すために
関連する問題