单个会话中的Ansible npm安装列表
我有一个很长的Ansible npm安装项目列表,使用“with_items”非常慢。我希望在单个会话中使用列表,例如:单个会话中的Ansible npm安装列表,npm,ansible,Npm,Ansible,我有一个很长的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" n
- 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?如果是这样,我做错了什么?在组/all下,将您的数组定义为顶级
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
这是否适用于npm
没有
只要尝试使用name:package1 package2
,您就会看到原因:
cmd: /bin/npm install --global 'package1 package2'
name
参数需要一个字符串,并将给定值视为字符串,从而对其进行转义/引用
--
作为旁注,Ansible中的一些其他包管理模块会自动将项(包)组合到单个执行调用中(尽管主要是为了避免依赖性问题,而不是为了优化)<代码>npm模块没有。谢谢您的回答,但我仍然收到相同的错误。也许npm名称只能接受一个参数?嗯,你可能是对的。我在ansible npm文档中没有看到任何多个安装示例