我想使用ansible运行shell脚本,但是该shell脚本需要用户输入才能成功执行,
例如:我的shell脚本通过ansible询问ossec agent
的唯一ID,就可以预定义我的unique id (user input
)。
答案 0 :(得分:0)
这可以帮助您作为起点:
- 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
在https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html
上查看有关prompts
,vars_prompt
的更多信息
答案 1 :(得分:0)
您需要使用EXPECT模块: 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