我有下面的shell脚本,需要用户输入:
read -e -p "Enter any string:" varible
echo 'Entered value is ::' $varible > abc.txt
我想运行这个脚本,需要用户在多个服务器上输入,并使用下面的yml实现:
- name: Here we start
hosts: all
tasks: # is a list
- name: Execute the user interactive script
expect:
command: /usr/bin/sh /home/ansible/test.sh
responses:
"Enter any string:": "Success Script Executed"
但如果我尝试使用下面的命令,它不会促进用户输入:
ansible all -a 'sh /home/ansible/test.sh'
1)请分享正确的ansible命令,询问上面我脚本的用户输入。
2)同样对于我上面的脚本,请分享代表用户默认值的正确ansible命令。
您可以使用ansible
命令运行任何单个Ansible模块:
--module-name=MODULE_NAME
(-m
)的值--args=MODULE_ARGS
(-a
)的值在上述任务的情况下:
ansible all -m expect -a "command='/usr/bin/sh /home/ansible/test.sh' responses='{\"Enter any string:\": \"Success Script Executed\"}'"