有没有办法运行shell脚本,提示Ansible playbook的输入值?

问题描述 投票:0回答:1

我有一个Ansible playbook,它调用现有的shell脚本。 Shell脚本在单独触发时,会提示输入一些用户。我也希望Ansible playbook具有相同的功能(使用Ansible playbook提示调用shell脚本)。

我在Ansible playbook中尝试了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
shell ansible
1个回答
0
投票

Ansible不允许您访问交互式命令。

您必须复制用户交互。首先,您必须使用Prompts请求输入,然后您必须使用expect将值提供给您的交互式程序。

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

© www.soinside.com 2019 - 2024. All rights reserved.