Ansible 如何为每个用户创建用户字典列表和文件夹列表?

Ansible 如何为每个用户创建用户字典列表和文件夹列表?,ansible,jinja2,Ansible,Jinja2,我想创建一个包含文件夹列表的用户词典 users: name: user1 folders: - user1-1 - user1-2 name: user2 folders: - user2-1 - user2-2 name: userN folders: - userN-1 - userN-2 我正在尝试动态创建此用户词典列表 - hosts: localhost gather_facts: no

我想创建一个包含文件夹列表的用户词典

users:
  name: user1
  folders:
    - user1-1
    - user1-2
  name: user2
  folders:
    - user2-1
    - user2-2
  name: userN
  folders:
    - userN-1
    - userN-2
我正在尝试动态创建此用户词典列表

  - hosts: localhost   
    gather_facts: no   
    vars: 
      userCount: 5
      folderCount: 5
    tasks:
    - set_fact:
        user_lists: []        
    - name: creating list of users
      set_fact:
        user_lists: "{{ user_lists + [ 'user-' ~ item ] }}"
      with_sequence: count="{{userCount|int}}"
    - debug:
        var: user_lists      

     - set_fact:
        usersObj: []
        userDict: {}
 
    - name: add each user to dict
      set_fact:
         usersObj: "{{ usersObj + [userDict| combine({'name': item})] }}"
      with_items: "{{user_lists}}"

    - debug: var=usersObj

我在dictionary中创建了5个用户。现在,每个用户都应该根据folderCount创建文件夹列表。如何解决这个问题?Jinja2模板可以用来简化这一过程吗?

下面的任务完成了这项工作

-设置事实:
用户列表:[]
-名称:使用文件夹列表创建用户字典
设定事实:
用户列表:{{user_列表}组合({key:val}}}}
使用_序列:start=1 end=“{{userCount}”
变量:
文件夹范围:{range(1,folderCount | int+1)| list}
键:“{{'user-'~item}}”
val:“{{[键]|
产品(文件夹范围)|
映射('连接','-')|
列表}”
-调试:
var:用户列表
给出(节略)

“用户列表”:{
“用户1”:[
“用户1-1”,
“用户1-2”,
“用户1-3”,
“用户1-4”,
“用户1-5”
],
“用户2”:[
“用户2-1”,
“用户2-2”,
“用户2-3”,
“用户2-4”,
“用户2-5”
],
“用户-3”:[
“用户-3-1”,
“用户-3-2”,
“用户-3-3”,
“用户-3-4”,
“用户-3-5”
],
“用户-4”:[
“用户-4-1”,
“用户-4-2”,
“用户-4-3”,
“用户-4-4”,
“用户-4-5”
],
“用户-5”:[
“用户-5-1”,
“用户-5-2”,
“用户-5-3”,
“用户-5-4”,
“用户-5-5”
]
}

似乎是一种魔力。要做到这一点需要学习什么(Python或jinja2)?