1
我想在Ansible中運行一個循環,其中定義了在變量中的次數。這可能以某種方式嗎?
想象一下服務器列表,我們希望在每臺服務器上創建一些編號的文件。這些值在vars.yml定義:
server_list:
server1:
name: server1
os: Linux
num_files: 3
server2:
name: server2
os: Linux
num_files: 2
我想要的輸出是文件/tmp/1
,/tmp/2
和/tmp/3
都在Server1上,/tmp/1
創建和/tmp/2
的Server2上創建的。我曾嘗試使用with_nested
,with_dict
和with_subelements
寫一個劇本,但我似乎無法找到任何方式,以這樣的:
- hosts: "{{ target }}"
tasks:
- name: Load vars
include_vars: vars.yml
- name: Create files
command: touch /tmp/{{ loop_index? }}
with_dict: {{ server_list[target] }}
loop_control:
loop_var: {{ item.value.num_files }}
如果我需要每個服務器上創建50個文件,我可以看到我怎麼可能如果我要爲每個有50個項目的服務器列出一個列表變量,這個列表變量只是數字1到50,那麼這樣做,但這是對Ansible的一種自我失敗的使用。