我有一长串Ansible npm安装项目,并使用" with_items"非常慢我想在单个会话中使用列表,例如:
- name: "define list for npm install"
set_fact:
npm_install_list:
- 'mkdirp'
- 'request'
- 'extend'
... lots more ...
- name: "npm install a list at once"
npm:
name: "{{ npm_install_list | join(' ') }}"
registry: 'http://path.to.private.registry'
global: yes
state: present
我收到此错误:
no JSON object could be decoded
这可以与npm一起使用吗?如果是这样,我做错了什么?
答案 0 :(得分:0)
这可以与npm一起使用吗?
没有
尝试使用name: package1 package2
,您会看到原因:
cmd: /bin/npm install --global 'package1 package2'
name
参数需要一个字符串,并将给定值视为字符串,从而转义/引用它。
-
作为旁注,Ansible中的一些其他包管理模块会自动将项(包)组合到一个执行调用中(尽管主要是为了避免依赖性问题,而不是优化)。 npm
模块没有。
答案 1 :(得分:-1)
将您的数组定义为顶级
npm_install_list:
- 'mkdirp'
- 'request'
- 'extend'
... lots more ...
现在在角色中使用此数组
- name: "npm install a list at once"
npm:
name: "{{ npm_install_list | join(' ') }}"
registry: 'http://path.to.private.registry'
global: yes
state: present