如何使用Ansible运行要求用户输入的脚本?

时间:2019-05-13 10:37:57

标签: shell ansible user-input

我想使用ansible运行shell脚本,但是该shell脚本需要用户输入才能成功执行,

例如:我的shell脚本通过ansible询问ossec agent的唯一ID,就可以预定义我的unique id (user input)。

2 个答案:

答案 0 :(得分:0)

这可以帮助您作为起点:

- hosts: localhost
  connection: local

  vars_prompt:
  - name: your_name
    prompt: "Enter your name"
    private: no

  tasks:
  - name: print name
    assert: that="your_name.strip()"
    args:
      msg: "The your_name argument shouldn't be empty!"

  - debug:
        var: your_name

https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html

上查看有关promptsvars_prompt的更多信息

答案 1 :(得分:0)

您需要使用EXPECT模块: https://docs.ansible.com/ansible/latest/modules/expect_module.html

- name: Case insensitive unique id string match
  expect:
    command: ./myscript.sh
    responses:
      "Please enter your uniqueid": "myID"
      # Your input in myscript.sh
  no_log: true

要求

执行此模块的主机需要满足以下要求。

python> = 2.6

pexpect> = 3.3