我们有Ansible命令来运行用户交互式shell脚本而不使用playbook吗?

问题描述 投票:-2回答:1

我有下面的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-ad-hoc
1个回答
1
投票

您可以使用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\"}'"
© www.soinside.com 2019 - 2024. All rights reserved.