通过用户提示使数组可解析



我想在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

最新更新