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