运行shell脚本时的Ansible用户交互模块

运行shell脚本时的Ansible用户交互模块,ansible,Ansible,我对ansible还不太熟悉,正在努力学习一些基本的东西 我正在尝试使用ansible执行一个shell脚本…此脚本包含需要用户输入的case条件。但在ansible中运行时,它并没有要求任何东西,也没有完成任何任务。我希望我的ansible在执行期间请求I/p,并相应地执行脚本 - hosts: localhost tasks: - name: Execute the script shell: /usr/bin/sh /root/ansible_testing/testing

我对ansible还不太熟悉,正在努力学习一些基本的东西

我正在尝试使用ansible执行一个shell脚本…此脚本包含需要用户输入的case条件。但在ansible中运行时,它并没有要求任何东西,也没有完成任何任务。我希望我的ansible在执行期间请求I/p,并相应地执行脚本

- hosts: localhost
  tasks:
  - name: Execute the script
    shell: /usr/bin/sh /root/ansible_testing/testing.sh
shell脚本的片段是

 echo "Press 1 for Backup"
 echo "Press 2 for MakeChange"
 echo "Press 3 for Keepsafe"
 echo "*******************************************"

 echo -n "Enter your choice : "
 read choice2

 case $choice2 in
 1)

   echo "Hello"

使用justbash有很多方法可以做到这一点(有一个非常好的答案)。然而,如果您想以可行的方式实现这一点,您可以使用

在本例中,
输入您的选择
是将匹配的正则表达式,以输入“1”。如果有多个提示使用
输入您的选择
Ansible将为所有提示输入一个“1”

- name: Execute the script
  expect:
    command: /usr/bin/sh /root/ansible_testing/testing.sh
    responses:
      "Enter your choice": "1"