我想使用Ansible运行一个shell脚本,但是shell脚本要求用户输入成功执行,
例如:我的shell脚本询问 ossec agent
的唯一ID,通过Ansible我能够预先定义我的unique id (user input
(。
您需要使用预期模块:https://docs.ansible.com/ansible/latest/modules/expect_module.html
- name: Case insensitive unique id string match
expect:
command: ./myscript.sh
responses:
"Please enter your uniqueid": "myID"
# Your input in myscript.sh
no_log: true
要求
在执行此模块的主机上需要以下要求。
python> = 2.6
pexpect> = 3.3
这可以帮助您作为起点:
- hosts: localhost
connection: local
vars_prompt:
- name: your_name
prompt: "Enter your name"
private: no
tasks:
- name: print name
assert: that="your_name.strip()"
args:
msg: "The your_name argument shouldn't be empty!"
- debug:
var: your_name
在此处查看有关prompts
,vars_prompt