使数组提示用户提示

时间:2018-11-09 21:07:43

标签: ansible ansible-facts

我希望在ansible中创建一个数组,以便用户也可以输入项目。

例如:

用户应该能够一个一个地输入应用程序,并且我想将应用程序保存在一个数组中。

尝试了以下剧本,但不起作用

- hosts: TestServer
  vars_prompt:
  - name: "application_list"
    prompt: "Please specify the applications"
    private: "No"
    loop: '{{application_lists|length}}'
  tasks:
  - set_fact:
    application_list: "{{ application_lists | default([])"
  - name:
    with_items : '{{application_lists}}'
    debug :
    msg: "{{application_list}}"

我对ansible很陌生,请帮忙。预先感谢。

1 个答案:

答案 0 :(得分:0)

如果您确实需要提示用户输入此信息,则可以 要求以逗号分隔的列表:

- hosts: TestServer
  vars_prompt:
    - name: application_list_csv
      prompt: "Please specify the applications, separated by commas"

然后将其在任务中拆分为实际列表:

  tasks:
    - set_fact:
        application_list: "{{ application_list_csv.split(',') }}"

然后您可以使用loop遍历值,如下所示:

    - debug:
        msg: "{{item}}"
      loop: "{{application_list}}"

话虽如此,我仍然认为您最好让用户将信息放入文件中,如下所示:

application_list:
  - app1
  - app2
  - app3

然后将其包含在您的游戏中:

ansible-playbook playbook.yml -e @applist.yml