通过用户提示在 ansible 中创建一个数组

Make a Array in ansible by user Prompt

我想在 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很陌生,请帮忙。提前致谢。

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

- 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