有没有一种方法可以运行shell脚本,提示从Ansible剧本输入值?

时间:2019-04-29 05:35:30

标签: shell ansible

我有一本Ansible剧本,它调用了一个现有的shell脚本。单独触发时,Shell脚本会提示用户输入。我也希望从Ansible剧本获得相同的功能(通过从Ansible剧本进行提示来调用shell脚本)。

我在Ansible剧本中尝试了shell / command / raw选项(没有运气)。

 - hosts: localhost
   gather_facts: false

   become: true
   become_user: oracle
   become_flags: 'content-ansible'

   pre_tasks:
    - include_vars: vars.yml
   tasks:
    - name: Do Create Users....
      shell: cd "{{v_dir}}" && yes | sh script.sh

1 个答案:

答案 0 :(得分:0)

Ansible无法让您访问交互式命令。

您必须复制用户交互。首先,您必须使用Prompts要求输入,其次您必须使用expect将值提供给交互式程序。

但这不是Ansible的生活方式,因为它是不可复制的。使用Ansible的主要原因是创建幂等作业,这些作业每次都做相同的事情。如果您要求用户输入,则该作业取决于输入,这意味着每次调用时它可能会执行不同的操作。