Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
161 views
in Technique[技术] by (71.8m points)

unix - How to pass input to interactive command using ansible?

I have a command to execute on Unix server. The command expect user input at two points and then proceed further. The command is like follows:

$ abc_1.2_udate.bin /tmp/log

  Do you want to proceed y/n?
  y

  Please provide the credentials:
  1234

From ansible tried as follows:

  - name: execute the cmnd

    expect:

       Command: abc_1.2_udate.bin /tmp/log

       responses:

          Do you want to proceed y/n? "y"

          'Please provide the credentials:' "1234"

But the above piece does not work. Also I want to use expect module only for this.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. Change Command to command (C is not caps)
  2. Responses should be given in quotes with the format 'Enter': "y"
expect:
 command: abc_1.2_udate.bin /tmp/log
 responses:
  'Do you want to proceed y/n?': "y"
  'Please provide the credentials': "1234"

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...