我希望在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很陌生,请帮忙。预先感谢。
答案 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