我正在使用Ansible Galaxy的PM2角色。角色看起来像这样:
roles:
- role: weareinteractive.pm2
vars:
pm2_apps:
- run: pm2.json
path: "{{ project_root }}/auth"
cmd: startOrGracefulReload
- run: pm2.json
path: "{{ project_root }}/graphql"
cmd ...
etc..
在pm2_apps下,我可以分配多个要运行的模块。如何用以下项目填充此结构:
app_modules:
- { module: "auth", "run": 1 },
- { module: "graphql", "run": 2 },
- { module: "upload", "run": 3 }
我只想将pm2_apps的路径更改为:
path: "{{ project_root }}/{{ item.module }}"
在许多事情中,我尝试过:
pm2_apps:
- run: pm2.json
path: "{{ project_root }}/{{ item.module }}"
cmd: startOrGracefulReload
with_items: "{{ app_modules }}"
由于它是角色,所以我不想重写其任务。
答案 0 :(得分:1)
由于pm2_apps
是一个变量,而不是一个动作,所以我很确定您只需要使用for
循环或jinja的map
和{{ 1}}玩具:
combine